Share via


デバイス ドライバーからデータにアクセスする

Windows ドライバー モデル (WDM) プロバイダーは、WDM モデルに準拠するハードウェア ドライバーのクラス、インスタンス、メソッド、およびイベントへのアクセスを提供します。 ハードウェア ドライバーのクラスは、\\root\wmi 名前空間にあります。

WDM プロバイダーは、デバイス ドライバーを作成するユーザーと、デバイス ドライバー データに関心がある管理者にとって関心の対象となります。

このトピックでは、以下のセクションについて説明します。

デバイス ドライバー作成者のための情報

WDM プロバイダーがデバイス ドライバーの実行可能ファイルからバイナリ MOF を抽出するときに、特定のデバイス ドライバーに関連する WMI クラスが作成されます。 これは、WMI が開始されたとき、新しいデバイス ドライバーがインストールされたとき、または特定のドライバーの WMIBinaryMofResource のインスタンスが削除されるたびに行われます。 Wmiprov.log を確認すると、バイナリ MOF ファイルの抽出中にエラーが発生したかどうかを確認できます。 mofcomp エラーの詳細は、Mofcomp.log で報告されます。 詳細については、WMI ログ ファイルに関するページを参照してください。 パフォーマンス上の理由から、WDM プロバイダーは、WDM プロバイダーの起動または停止によるクラスの作成または削除中にイベントを生成しません。

WDM プロバイダーは、すべての WNODE データをクラス情報に変換します。 WNODE からクラス データへのデータの変換中にエラーが発生した場合は、これは Wmiprov.log で報告され、ヘッダーは書式設定され、バイトはメモリ ダンプと同じ形式でレンダリングされます。

ドライバーのセキュリティ設定に加えられた変更は、WDM プロバイダーがアンロードされて再読み込みされるまで有効になりません。 詳細については、「プロバイダーのアンロード」を参照してください。

WMI を使用すると、ハードウェア ドライバーのハイパフォーマンス カウンターを使用することもできます。 ハイパフォーマンス クラスの作成と Perfmon システム モニターでのデータの表示の詳細については、「インスタンス プロバイダーの効率の向上」を参照してください。 WMI 対応デバイス ドライバー作成の詳細については、https://www.microsoft.com/ddk をご覧ください。 MOF ファイル内の WDM 固有の修飾子の詳細については、「WDM プロバイダーに固有の修飾子」を参照してください。

ドライバー データの管理者とユーザーのための情報

WMIBinaryMofResource クラスのインスタンスを一覧表示すると、システム内のドライバーの一覧と、WDM プロバイダーが各ドライバーの MOF のコンパイルに成功したかどうかに関する情報が提供されます。 ドライバーを表す WMIBinaryMofResource のインスタンスを削除することで、プロバイダーにそのドライバーのクラスを強制的に再コンパイルおよび再生成させることができます。 mofcomp エラーの詳細は、Mofcomp.log で報告されます。

WMI 名前空間が破損している場合は、削除して再度開くことで、WDM でドライバー クラスを強制的に再構築できます。 名前空間を開くことの詳細については、WMI 内での階層の作成に関する記事を参照してください。

ドライバーの読み込みが中断されたり、その他の異常な操作が発生したりすると、ドライバー クラスが "孤立" することがあります。 WDM プロバイダーは、新しいドライバーがインストールされた場合、または Software\Microsoft\WBEM\WDMProvider レジストリ キー値 ProcessStrandedClassesTRUE に設定されている場合にのみ、"孤立" クラスを検索してクリーンアップします。 この値を TRUE に設定すると、クリーンアップ操作のために WMI の起動パフォーマンスが低下します。 既定値は FALSE です。 WDM プロバイダーは、"Root\Wmi" 名前空間が初めて開かれた場合にのみ、このレジストリ値をチェックします。

WDM デバイス ドライバーに対してセキュリティの変更が加えられた場合、WDM プロバイダーがアンロードされて再読み込みされるまで、変更は有効になりません。 これを実現するには、Windows 管理サービスを停止して再起動する必要があります。

WMI の使用