Allgemeine Techniken zum Testen der WMI-Treiberunterstützung

WMI-Clienttools

Es gibt mehrere Tools, mit denen Sie die WMI-Unterstützung in Ihrem Treiber testen können.

Wbemtest
Das Betriebssystem enthält das Wbemtest-Tool, das eine GUI bereitstellt, mit der Sie WMI-Klassen und -Klasseninstanzen abfragen, Eigenschaftswerte ändern, Methoden ausführen und Ereignisbenachrichtigungen empfangen können. Stellen Sie eine Verbindung mit dem Namespace "root\wmi" her, um die Unterstützung Ihres Treibers zu testen.

Wmic
Microsoft Windows XP und höhere Betriebssysteme enthalten das Wmic-Tool, das eine Befehlsshell bereitstellt, mit der Sie WMI-bezogene Befehle ausgeben können, um Ihren Treiber zu testen.

Wmimofck
Mit dem Befehl wmimofck können Sie die Syntax Ihrer binären MOF-Dateien überprüfen. Sie können auch den Befehl wmimofck -t verwenden, um eine VBScript-Datei zu generieren. Sie können dieses Skript verwenden, um die Verarbeitung der WMI-Klasse instance Abfragen ihres Treibers zu testen. Der Befehl wmimofck -w generiert Webseiten, die Abfragen und Festlegen von Klassen testen, Methoden ausführen und Ereignisse empfangen können. Beachten Sie, dass die Webseiten keine Ausführungsmethoden unterstützen, die komplexe Parameter verwenden oder Werte zurückgeben (z. B. ein Array eingebetteter Klassen). In solchen Fällen können Sie stattdessen Wbemtest verwenden. Weitere Informationen zu Wmimofck finden Sie unter Verwenden von wmimofck.exe .

Sie können auch die WMI-Unterstützung Ihres Treibers testen, indem Sie mithilfe der WMI-Benutzermodus-API eine benutzerdefinierte WMI-Clientanwendung schreiben.

Weitere Informationen zu dieser Benutzermodus-API, mit der Anwendungen WMI-Informationen bereitstellen oder nutzen können, finden Sie in den Informationen zur Windows-Verwaltungsinstrumentation in der Microsoft Windows SDK-Dokumentation.

Eine WMI-Clientanwendung führt die folgenden Aufgaben aus, um einen Treiber zu testen:

  • Stellt eine Verbindung mit WMI her.

    Um eine Verbindung mit WMI herzustellen, kann die Anwendung die Com-Funktion (Component Object Model, ComCreateInstance) aufrufen, um einen Zeiger auf die IWbemLocator-Schnittstelle abzurufen. Die Anwendung ruft dann die IWbemLocator::ConnectServer-Methode auf, um eine Verbindung mit WMI herzustellen. Von diesem Aufruf erhält die Anwendung einen Zeiger auf die IWbemServices-Schnittstelle .

  • Greift auf Informationen im Treiber zu.

    Um auf Informationen zuzugreifen und sich für Ereignisse zu registrieren, verwendet die Anwendung die Methoden der IWbemServices-Schnittstelle .

WMI-IRPs und das Systemereignisprotokoll

WMI-Fehler, die streng im Kernelmodus auftreten, werden im Systemereignisprotokoll protokolliert. Sie können die Ereignisanzeige verwenden, um das Systemereignisprotokoll zu untersuchen. (Weitere Informationen finden Sie unter Protokollierungsfehler .)

Die beiden Standard Quellen solcher Fehler sind falsch formatierte Antworten auf WMI-Anforderungen und falsche Parameter für Ereignisbenachrichtigungen. Wenn der Treiber beispielsweise eine fehlerhafte WMIREGINFO-Datenstruktur als Reaktion auf eine IRP_MN_REGINFO - oder IRP_MN_REGINFO_EX-Anforderung zurückgibt, protokolliert das System dies im Systemereignisprotokoll. Das System würde auch einen ungültigen Aufruf von IoWMIWriteEvent und WmiFireEvent protokollieren, um eine WMI-Ereignisbenachrichtigung auszurufen.

WMI WDM-Anbieterprotokoll

WMI-Fehler, die beim Behandeln durch den WMI-WDM-Anbieter (Wmiprov.dll) auftreten, werden in der Protokolldatei für den WMI-WDM-Anbieter Wmiprov.log protokolliert. Dies ist eine Textdatei unter %windir%\system32\wbem\logs\wmiprov.log. Fehler, z. B. eine fehlerhafte oder fehlende MOF-Ressource für den Treiber, werden hier protokolliert. Im Fall einer fehlerhaften MOF-Ressource enthält die Datei %windir%\system32\mofcomp.log möglicherweise zusätzliche Informationen im Zusammenhang mit dem Fehler.

In Versionen vor Windows Vista können Sie die Protokollierungseinstellungen für alle WMI-Anbieter mithilfe der Anwendung Wmimgmt.msc ändern. (Verwenden Sie in Windows 98/Me stattdessen Wbemcntl.) Sie können die Protokollierung deaktivieren oder wieder aktivieren, das Verzeichnis ändern, in dem WMI-Protokolldateien gespeichert werden, und die maximale Größe für solche Dateien festlegen. Weitere Informationen finden Sie unter WMI-Protokolldateien.