Controller Objects and Device Objects

hi all,
I am not clear about controller objects and device objects. I have a
Imaginary device with a USB, a Network Controller and a firewire controller.
All these three functionalities and different PCI functions of the device so
Say for Example:

For USB device - PCI BUS = 0 / PCI Device 0/PCI function=0.
For Network device - PCI BUS = 0 / PCI Device 0/PCI function=1.
For FireWire device - PCI BUS = 0 / PCI Device 0/PCI function=2.


  1. I suppose that three device objects will be created. Is this correct??
  2. How many controller objects will be created for this device??
  3. How does (or what should be the correct way) the Controller Objects and
    device objects should be mapped to PCI’s BUS/DEVICE/FUNCTION fields??

any information is highly appriciated??