Plug and Play Vendor IDs and Device IDs
All non-BIOS enumerated devices must not use "PNP" in their Vendor and Device codes. The vendor must register with EISA and have a vendor code assigned (for example, CTL for Creative Labs). The "PNP" vendor code is reserved for Microsoft and can only be used when defining a device's CompatibleID after indicating the device's HardwareID in the Plug and Play header.
Use of CompatibleIDs is strongly recommended for devices that use device drivers provided with Microsoft Windows 95, such as a "Standard PC COM Port" (PNP0500) or "Sound Blaster 16-compatible Sound Device" (PNPB003).
The following example output from ISOLATE.EXE of a Plug and Play header is provided for your reference:
Vendor ID: XXXFFFF
Serial Number: 00000001
Checksum (reported): 0x5E
PNP Version: 1.0
Vendor Ver.: 10
Device Description: IDE Port
Device ID: XXX0001
Doesn't Support I/O Range Checking
Vendor Defined Logical Device Control Registers: None
Compatible Device ID: PNP0600
Device Description: IDE
Dependent Function 0
Dependent Function 1
End of Dependent Functions
When the user is installing devices that use this method, a dialog box appears at the beginning of the enumeration sequence to suggest use of the default driver provided with Windows 95. Windows 95 also provides the option for using a disk from the manufacturer, in case the user wants to choose a manufacturer-supplied driver.
For multifunction adapters, you should supply an INF file that chooses the appropriate drivers (including default drivers) for all the adapter's devices. This prevents additional dialog boxes from again requesting the default driver or a manufacture's disk for the rest of the devices on the adapter. When an INF file is used in this manner for default driver selection, it must link the HardwareID (XXX0000) to the appropriate compatible device driver from the Windows 95 distribution compact disc or installation disks. If this is not done, Windows 95 will continue to query the user for either the default driver or a new driver, thus defeating the purpose of using the INF file in this way.