After loading the class installers and co-installers, the next stage of driver installation involves selecting the best compatible driver. In this stage, the class installer processes the DIF_SELECTBESTCOMPATDRV request, and some class co-installers also process it. The following example illustrates what the subsection that is associated with this stage looks like for an Oven device, if the default logging level is set.
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#I063 Selected driver installs from section [Oven_Install_Section_Name_2] in "c:\windows\inf\Oven_INF_File_Name_2.inf".
#I320 Class GUID of device remains {Device_Setup_Class_GUID}.
#I060 Set selected driver.
#I058 Selected best compatible driver.
In the previous example, the #-166 message indicates that SetupAPI initiated the processing of the DIF_SELECTBESTCOMPATDRV request for the device. The #I320 message indicates that SetupAPI did not change the device-setup class. However, note that SetupAPI will change the class and log this fact if the device-setup class GUID of the best compatible driver is different than that of the currently installed class. Lastly, the #I058 message indicates that the best compatible driver was selected.
For more information about how SetupAPI selects the best compatible driver for a device, see “How Setup Selects Drivers” in the Windows DDK documentation.
Share with your friends: |