Problembehandlung bei der Installation von KMDF- und UMDF-Treibern

Das Co-Installationsprogramm des Frameworks erstellt Debugmeldungen. Sie können diese Meldungen in einem Debugger anzeigen.

Darüber hinaus schreibt der Co-Installer seine Debugmeldungen in die Setupaktionsprotokolldatei (%windir%\setupact.log). Das Setupaktionsprotokoll enthält die Version des Co-Installers und den treiber, der in der INF-Datei des Treibers angegeben ist. Sie sollten überprüfen, ob diese erwartungsgemäß sind.

Untersuchen der KMDF-Installation

Die folgende Ausgabe im Setupaktionsprotokoll stammt aus der erfolgreichen Installation eines KMDF-Treibers:

WdfCoInstaller: DIF_INSTALLDEVICE: Pre-Processing
WdfCoInstaller: ReadComponents:  WdfSection for Driver Service ECHO using KMDF lib version Major 0x1, minor 0x9 
WdfCoInstaller: DIF_INSTALLDEVICE: Coinstaller version: 1.9.7100
WdfCoInstaller: DIF_INSTALLDEVICE: KMDF in-memory version: 1.9.7100
WdfCoInstaller: DIF_INSTALLDEVICE: KMDF on-disk version: 1.9.7100
WdfCoInstaller: Service Wdf01000 is running
WdfCoInstaller: DIF_INSTALLDEVICE: Update is not required. The on-disk KMDF version is newer than or same as the version of the coinstaller
WdfCoInstaller: DIF_INSTALLDEVICE: Post-Processing

Im obigen Szenario war kein Update erforderlich, da die Version auf dem Datenträger und die In-Memory-Framework-Version KMDF 1.9 ist. Dies ist die gleiche Version des Co-Installers.

Sehen Sie sich die folgende Ausgabe an, in der eine nicht erfolgreiche Installation beschrieben wird:

WdfCoInstaller: ReadComponents:  WdfSection for Driver Service ECHO using KMDF lib version Major 0x1, minor 0x9  
WdfCoInstaller: DIF_INSTALLDEVICE: Coinstaller version: 1.9.7100
WdfCoInstaller: DIF_INSTALLDEVICE: KMDF in-memory version: 1.7.6000
WdfCoInstaller: DIF_INSTALLDEVICE: KMDF on-disk version: 1.7.6000
WdfCoInstaller: Service Wdf01000 is running
WdfCoInstaller: DIF_INSTALLDEVICE: Reboot is required, because the in-memory KMDF version is older than the coinstaller's version.
WdfCoInstaller: DIF_INSTALLDEVICE: Update is required, because the on-disk KMDF version is older than the coinstaller
WdfCoInstaller: VerifyMSRoot: exit: error(0) The operation completed successfully.
WdfCoInstaller: Invoking "D:\Windows\system32\wusa.exe "D:\Windows\Temp\WdfTemp\Microsoft Kernel-Mode Driver Framework Install-v1.9-Vista.msu" /quiet /norestart".
WdfCoInstaller: The update process returned error code :error(265) <no error text>. 
WdfCoInstaller: For additional information please look at the log files %windir%\windowsupdate.log and %windir%\Logs\CBS\CBS.log

In diesem Szenario waren sowohl ein Update als auch ein Neustart erforderlich, da die In-Memory-Version und die Version auf dem Datenträger der KMDF-Runtime älter als die Version des Co-Installers waren. Das Update war jedoch nicht erfolgreich. Das Co-Installationsprogramm verweist auf zusätzliche Protokolldateien, in denen Sie weitere Informationen zum Fehler finden.

Sie können auch das Systemereignisprotokoll auf Fehler im Zusammenhang mit der dynamischen Bindung des KMDF-Treibers an die Laufzeitbibliothek überprüfen. Ein solcher Fehler kann einen Wdf<MajorVersionNumber><MinorVersionNumber-Eintrag> im Systemereignisprotokoll generieren. Starten Sie in diesem Fall den Computer neu. Sie können auch eine Neuinstallation der KMDF-Laufzeit erzwingen, indem Sie Wdf<MajorVersionNumber><MinorVersionNumber>.sys aus dem Ordner %windir%\system32\drivers löschen.

Untersuchen der UMDF-Installation

Die folgende Ausgabe im Setupaktionsprotokoll beschreibt eine erfolgreiche UMDF-Treiberinstallation.

WudfUpdate: installing version (1,9,0,7100).
WudfUpdate: Checking for presence of previous UMDF installation.
WudfUpdate: Found binary %WINDIR%\system32\drivers\wudfrd.sys version (1.9.0.7100)
WudfUpdate: Found binary %WINDIR%\system32\drivers\wudfpf.sys version (1.9.0.7100)
WudfUpdate: Found binary %WINDIR%\system32\wudfhost.exe version (1.9.0.7100)
WudfUpdate: Found binary %WINDIR%\system32\wudfsvc.dll version (1.9.0.7100)
WudfUpdate: Found binary %WINDIR%\system32\wudfx.dll version (1.9.0.7100)
WudfUpdate: Found binary %WINDIR%\system32\wudfplatform.dll version (1.9.0.7100)
WudfUpdate: Found binary %WINDIR%\system32\wudfcoinstaller.dll version (1.9.0.7100)
WudfUpdate: UMDF installation is same as update. WudfUpdate: Loading configuration coinstaller from D:\Windows\system32\wudfcoinstaller.dll.
WudfCoInstaller: ReadWdfSection: Checking WdfSection [Echo_Install.NT.Wdf]
WudfCoInstaller: Configuring UMDF Service  WUDFEchoDriver.
WudfCoInstaller: Service WudfSvc is already running.
WudfCoInstaller: Final status: error(0) The operation completed successfully.

Im obigen Szenario ist kein Update erforderlich, da die Version auf dem Datenträger der Laufzeit UMDF 1.9 ist, die mit der Version des Co-Installers identisch ist.

Sehen Sie sich die folgende Ausgabe an, in der eine nicht erfolgreiche Installation beschrieben wird.

WudfUpdate: installing version (1,9,0,7100).
WudfUpdate: Checking for presence of previous UMDF installation.
WudfUpdate: Found binary %WINDIR%\system32\drivers\wudfrd.sys version (1.5.0.6000)
WudfUpdate: Found binary %WINDIR%\system32\drivers\wudfpf.sys version (1.5.0.6000)
WudfUpdate: Found binary %WINDIR%\system32\wudfhost.exe version (1.5.0.6000)
WudfUpdate: Found binary %WINDIR%\system32\wudfsvc.dll version (1.5.0.6000)
WudfUpdate: Found binary %WINDIR%\system32\wudfx.dll version (1.5.0.6000)
WudfUpdate: Found binary %WINDIR%\system32\wudfplatform.dll version (1.5.0.6000)
WudfUpdate: Found binary %WINDIR%\system32\wudfcoinstaller.dll version (1.5.0.6000)
WudfUpdate: UMDF installation is older than current.
WudfUpdate: Locating resource stream WUDF_UPDATE_VISTA-RTM.
WudfUpdate: unpacking update from resource to Microsoft User-Mode Driver Framework Install-v1.9-Vista.msu.
WudfUpdate: Temporary path is D:\Windows\Temp\WDF7625.tmp.
WudfUpdate: Invoking update "%SYSTEMROOT%\system32\wusa.exe" with command line "D:\Windows\Temp\WDF7625.tmp\Microsoft User-Mode Driver Framework Install-v1.9-Vista.msu /quiet /norestart".
WudfUpdate: Waiting for update to terminate.
WudfUpdate: Update process returned 22.
WudfUpdate: update returned error 0x16 - error(22) The device does not recognize the command.
WudfUpdate: For additional information please look at the log files %windir%\windowsupdate.log and %windir%\Logs\CBS\CBS.log
WudfUpdate: Cleaning up update.
WudfUpdate: Error updating UMDF - error(22) The device does not recognize the command. Aborting installation.

In diesem Szenario war die Version auf dem Datenträger der UMDF-Runtime älter als die Version des Co-Installers. In diesem Fall war das Update jedoch nicht erfolgreich. Der Co-Installer verweist auf zusätzliche Protokolldateien, in denen Sie weitere Informationen zur Ursache des Fehlers finden.