Patent ID: 7437738

Claim:
A method for interfacing with device hardware supporting a plurality of devices included in the device hardware, comprising: initializing a device interface driver to represent the device hardware as a virtual bus to an operating system and to represent to the operating system each device supported in the device hardware as a device attached to the virtual bus; initializing the device hardware; accessing the device hardware to determine the devices included in the device hardware; generating one device object for each determined device in the device hardware, wherein each generated device object represents the determined device to the operating system; and reporting the determined devices to the operating system, wherein the operating system loads a device driver for each of the reported devices supported by the device hardware; reporting to the operating system that the determined devices are dependent on the virtual bus, wherein in response to being notified that the determined devices and virtual bus are dependent, the operating system will not remove the device interface driver representing the virtual bus until the device drivers associated with the determined devices are removed; and reporting to the operating system that a power state of the virtual bus represented by the device interface driver cannot be altered until all the device drivers representing devices attached to the virtual bus have their power state similarly altered.