i) A video controller is a device that receives information on what to display from the CPU and translates that to the output format (e.g. VGA or HDMI). These days, most video controllers are GPUs.
ii) The hard drive controller gets addresses to read/write from the CPU and e.g. rotates the disks and heads so that the data can be read/written at the right location.

The CPU sends data to be send to the network controller. The controller will than check whether or not it can send (and wait if that's not the case). When it can send, it'll output the data with the correct waveforms etc.
Almost all controller devices act as sort of an abstraction layer for the CPU, so the CPU does not have to deal with all the physical complications of devices.