次の方法で共有


WMI ドライバーのサポートをテストするための一般的な手法

WMI クライアント ツール

ドライバーで WMI サポートをテストするために使用できるツールがいくつかあります。

Wbemtest
オペレーティング システムには Wbemtest ツールが含まれており、WMI クラスとクラス インスタンスのクエリ、プロパティ値の変更、メソッドの実行、イベント通知の受信に使用できる GUI を提供します。 "root\wmi" 名前空間に接続し、ドライバーのサポートをテストします。

Wmic
Microsoft Windows XP 以降のオペレーティング システムには、WMI 関連のコマンドを発行してドライバーをテストするために使用できるコマンド シェルを提供する Wmic ツールが含まれています。

Wmimofck
wmimofck コマンドを使用して、バイナリ MOF ファイルの構文をチェックできます。 wmimofck -t コマンドを使用して、VBScript ファイルを生成することもできます。 このスクリプトを使用して、WMI クラス インスタンス クエリのドライバーの処理をテストできます。 wmimofck -w コマンドは、クラスのクエリと設定、メソッドの実行、およびイベントの受信をテストできる Web ページを生成します。 Web ページでは、複雑なパラメーターや戻り値 (埋め込みクラスの配列など) を使用するメソッドの実行はサポートされていない点に注意してください。 そのような場合、代わりに Wbemtest を使用できます。 Wmimofck について詳しくは、「wmimofck.exe の使用」をご覧ください。

WMI ユーザー モード API を使用して、カスタム WMI クライアント アプリケーションを作成することにより、ドライバーの WMI サポートをテストすることもできます。

アプリケーションが WMI 情報を提供または使用可能にするこのユーザー モード API について詳しくは、Microsoft Windows SDK ドキュメントの Windows Management Instrumentation の情報をご覧ください。

WMI クライアント アプリケーションは、次のタスクを実行してドライバーをテストします。

  • WMI に接続します。

    WMI に接続するため、アプリケーションはコンポーネント オブジェクト モデル (COM) 関数 CoCreateInstance を呼び出して、IWbemLocator インターフェイスへのポインターを取得できます。 その後、アプリケーションは IWbemLocator::ConnectServer メソッドを呼び出して WMI に接続します。 この呼び出しから、アプリケーションは IWbemServices インターフェイスへのポインターを受け取ります。

  • ドライバーで情報にアクセスします。

    情報にアクセスし、イベントに登録するため、アプリケーションは IWbemServices インターフェイスのメソッドを使用します。

WMI IRP とシステム イベント ログ

厳密にカーネル モードで発生した WMI エラーは、システム イベント ログに記録されます。 イベント ビューアーを使用して、システム イベント ログを調べることができます。 (詳しくは、「エラーのログ記録」をご覧ください)。

このようなエラーの 2 つの主な原因は、WMI 要求に対する応答の形式に誤りがあることと、イベント通知に対するパラメーターが正しくないことです。 たとえば、ドライバーが、IRP_MN_REGINFO または IRP_MN_REGINFO_EX 要求に応答して、形式が正しくない WMIREGINFO データ構造を返す場合、システムはシステム イベント ログに記録します。 さらに、システムは、IoWMIWriteEventWmiFireEvent への無効な呼び出しをログに記録して、WMI イベント通知を発行します。

WMI WDM プロバイダー ログ

WMI WDM プロバイダー (Wmiprov.dll) によって処理されているときに発生した WMI エラーは、WMI WDM プロバイダーのログ ファイル Wmiprov.log に記録されます。 これは、%windir%\system32\wbem\logs\wmiprov.log にあるテキスト ファイルです。 ドライバーの不適切または不足している MOF リソースなどのエラーは、ここに記録されます。 MOF リソースが正しくない場合、ファイル %windir%\system32\mofcomp.log に、エラーに関連する追加情報が含まれている可能性があります。

Windows Vista より前のバージョンの Windows では、Wmimgmt.msc アプリケーションを使用することにより、すべての WMI プロバイダーのログ設定を変更できます。 (Windows 98/Me では、代わりに Wbemcntl を使用してください)。ログ記録を無効または再有効化したり、WMI ログ ファイルを保持するディレクトリを変更したり、そのようなファイルの最大サイズを設定したりできます。 詳しくは、「WMI ログ ファイル」をご覧ください。