Troubleshooting Device Installation with the Setupapi log File




старонка8/11
Дата канвертавання22.04.2016
Памер227 Kb.
1   2   3   4   5   6   7   8   9   10   11

6.2Driver Not Found


If SetupAPI does not find a driver for a device, it installs a null driver. How it does so depends on whether the installation is occurring during the GUI-mode setup phase of Windows installation or after the Windows installation.

During the GUI-mode setup phase of Windows installation, SetupAPI first sends a DIF_INSTALLDEVICE request to install a null driver for devices that can be operated in raw mode. If the installers fail this request, SetupAPI sets the DI_FLAGSEX_SETFAILEDINSTALL flag for the device, and it sends another DIF_INSTALLDEVICE request to install a null driver. SetupAPI sends the second request so that the Plug and Play Manager will stop prompting the user to install a driver for the device. The installers must not fail the second request.

After the Windows installation, SetupAPI sets the DI_FLAGSEX_SETFAILEDINSTALL flag for the device, and it sends a single DIF_INSTALLDEVICE request to install a null driver. SetupAPI installs the null driver so that the Plug and Play Manager will stop prompting the user to install a driver for the device. The installers must not fail this request.

Note

For more information about installing null drivers, see “DIF_INSTALLDEVICE” and “SetupDiInstallDevice” in the Windows DDK documentation.


The following example contains the log-file messages that are associated with successfully installing a null driver:

@ 19:00:08.907 #V166 Device install function: DIF_SELECTBESTCOMPATDRV.

@ 19:00:08.937 #V155 Executing default installer.

@ 19:00:08.967 #W059 Selecting best compatible driver failed. Error 0xe0000228: There are no compatible drivers for this device.

@ 19:00:09.007 #W157 Default installer failed. Error 0xe0000228: There are no compatible drivers for this device.

@ 19:00:10.219 #I060 Set selected driver.

@ 19:00:10.259 #V166 Device install function: DIF_ALLOW_INSTALL.

@ 19:00:10.289 #V155 Executing default installer.

@ 19:00:10.329 #V156 Completed default installer.

@ 19:00:10.359 #V166 Device install function: DIF_INSTALLDEVICE.

@ 19:00:10.389 #V155 Executing default installer.

@ 19:00:10.429 #T200 Install Device: Begin.

@ 19:00:10.460 #I125 Installing NULL driver for "Blender_Device_Instance_ID".

@ 19:00:10.500 #T214 Install Device: Writing driver descriptive registry settings.

@ 19:00:10.530 #T396 Install Device: Restarting device "Blender_Device_Instance_ID".

@ 19:00:10.560 #T397 Install Device: Restarting device "Blender_Device_Instance_ID" completed.

@ 19:00:10.870 #I121 Device install of "Blender_Device_Instance_ID" finished successfully.

@ 19:00:10.900 #T201 Install Device: End.

@ 19:00:10.940 #V156 Completed default installer.
In the previous example, the #V166 messages indicate the sequence of DIF_XXX requests that are processed by the installers. Each pair of #V155 and #V156 messages indicates that the default installer processed the preceding DIF_XXX request. Finally, the #T200 through #T201 messages are associated with processing the DIF_INSTALLDEVICE request for a null driver.

6.3Rebooting Required


Problems that require rebooting are common. For example, an installation might appear to complete successfully but, when the Plug and Play Manager attempts to start the device, the device reports that it cannot start. The following example contains messages indicating that a resource conflict exists and that rebooting is required.

@ 13:45:17.176 #T396 Install Device: Restarting device "Blender_Device_Instance_ID".

@ 13:45:21.993 #T397 Install Device: Restarting device "Blender_Device_Instance_ID" completed.

@ 13:45:22.063 #W114 Device "Blender_Device_Instance_ID" required reboot: Device has problem: 0x0c: CM_PROB_NORMAL_CONFLICT.

@ 13:45:22.103 #T222 Install Device: Calling 'RUNONCE'/'GRPCONV' items.

@ 13:45:22.163 #I138 Executing 'RUNONCE' to process 26 'RUNONCE' entries.

@ 13:46:27.847 #I121 Device install of "Blender_Device_Instance_ID" finished successfully.
In the previous example, the #W114 message is the one that states that a resource conflict exists and that rebooting is required. The #T222 and #I138 messages then report that the system executed runonce.exe and grpconv.exe, which must run before the system is rebooted.

Note

Rebooting might not solve a problem, but it is the first thing to try. For help with troubleshooting device installation, see “Troubleshooting Device Installation” in the Windows DDK documentation.


Tip

To find all the messages that state that rebooting is required, search for the word reboot in an English-language SetupAPI log file.


Tip

No message explicitly identifies the fact that the system is being booted. However, you can infer that the system was rebooted if the time that elapses between sections or time-stamped messages indicates a delay that is consistent with rebooting.


6.4Device Vetoes Removal


SetupAPI must reboot the system before it can remove certain devices—for example, a storage device that is in the paging path. Additionally, if a device’s driver stack does not support Plug and Play, the Plug and Play manager will automatically veto the stopping and restarting of the device.

A veto results in a reboot request, which SetupAPI makes by setting the DI_NEEDREBOOT flag. If this request is made either during a client-side installation or during a server-side installation when an interactive user is logged on, SetupAPI displays a dialog box informing the user that rebooting is required. Otherwise, SetupAPI displays the dialog box the next time an interactive user logs on to the system.

The following example contains messages indicating that a storage device in the paging path vetoed its own removal.

@ 11:47:25.167 #W100 Query-removal during install of "Device_Instance_ID" was vetoed by "Device_Instance_ID" (veto type 6: PNP_VetoDevice).

@ 11:47:25.187 #W104 Device "Device_Instance_ID" required reboot: Query remove failed (install) CfgMgr32 returned: 0x17: CR_REMOVE_VETOED.

@ 11:47:25.207 #I121 Device install of "Device_Instance_ID" finished successfully.


In the previous example, the #W100 message indicates that the storage device vetoed its own removal. The message also indicates that the veto type is PNP_VetoDevice, which means that, although the device supports the specified operation, it rejected that operation for device-specific reasons.

Tip

Additional veto types exist. To locate all the veto messages in a SetupAPI log file, search for PNP_Veto to find all the PNP_Veto* words. For more information about veto types, see “PNP_VETO_TYPE” in the Windows DDK documentation.



1   2   3   4   5   6   7   8   9   10   11


База данных защищена авторским правом ©shkola.of.by 2016
звярнуцца да адміністрацыі

    Галоўная старонка