17
Both FDOs and PDOs use exactly the same DEVICE_OBJECT structure.
18
I don't know for sure because I don't know how they work. And I don't care!
19
For ACPI systems, the ACPI bus driver implements the root device.
20
However, note that the USB OpenHCI driver accesses hardware directly, once it has its configuration information from the PCI bus driver.
21
Non-WDM NT style drivers may use more than one full resource descriptor.
22
Obviously, this may well change in 64-bit systems.
23
BROADCAST_QUERY_DENY has a value of 0x424D5144, ASCII 'BMQD', which I presume stands for Broadcast Message Query Deny!
24
I think PDOs must be created with FILE_AUTOGENERATED_DEVICE_NAME as the DeviceCharacteristics parameter to
25
Note that there are various optional elements to the ACPI, but the PC99 specification makes several of these mandatory.
26
I think that this is because you are already processing a Power IRP and only one such IRP can be active at a time.
27
See the article on the Microsoft web site entitled 'USB Plug and Play IDs and Selecting Device Drivers to Load', http://www.microsoft.com/hwdev/busbios/usbpnp.htm.
28
NT style drivers may well work in Windows 98, as well. See the next section for details.
29
NT 4 driver writers can write an OEMSETUP.INF or TXTSETUP.OEM script to install their drivers. See the NT 4 DDK for details.
30
In Windows 98, select the Control Panel 'Add/Remove Programs' applet. Click the Windows Setup tab. Highlight the Internet Tools options. Click on Details. Check the 'Web-based Enterprise Mgmt' box. Click OK to proceed with the installation. You will need the WBEM core kit and possibly other components for NT 4 and Windows 95.
31
Since writing this chapter, the test driver
32
I.e., soon after the Gregorian calendar was introduced in 1582.