WMI 用 COM API
WMI コンポーネント オブジェクト モデル (COM) API を使用して、管理クライアント アプリケーションを作成したり、新しい WMI プロバイダーを作成したりすることができます。 COM API リファレンスには、高度なシステム管理者、およびクライアントおよびプロバイダー アプリケーションを作成している開発者向けの情報が記載されています。
WMI エンタープライズ管理アプリケーションの作成の詳細については、「C++を使用した WMI アプリケーションの作成」を参照してください。 WMI プロバイダーの作成方法の詳細については、「WMIへのデータの提供」を参照してください。
手記
WMI では、Microsoft Visual C++ バージョン 6.0 以降の開発システムを使用した C++ 開発のみがサポートされます。 ただし、Borland や Watcom などの他のコンパイラを使用することもできます。
各 WMI オブジェクトは、最終的に IUnknownインターフェイスから継承インターフェイスから継承されます。 COM は、オブジェクト実装者 (インターフェイス) がメモリ管理、パラメーター管理、マルチスレッドなどのタスクを処理する方法を決定します。 COM に準拠することで、WMI 用の COM API は、各 WMI オブジェクトのインターフェイスによって提供される機能を確実にサポートします。
WMI には、次の WMI 固有の COM インターフェイスを介してアクセスします。
インターフェイス | 形容 |
---|---|
IEnumWbemClassObjectの | IWbemClassObject型のオブジェクトで動作する列挙子。 これは、IEnumVariantなど、標準の COM 列挙子に似ています。 |
IMofCompilerをする | Mofd.dllによって実装されるこのインターフェイスは、MOF コンパイラおよび MOF ファイルをコンパイルする他のアプリケーションで使用される COM インターフェイスを提供します。 |
IUnsecuredApartment | クライアント プロセスから非同期呼び出しを行うプロセスを簡略化するために使用されます。 |
IWbemBackupRestoreの | WMI リポジトリの内容をバックアップおよび復元します。 |
IWbemCallResultの | IWbemServices インターフェイスの 半同期 呼び出しに使用されます。 このような呼び出しを行うと、呼び出された IWbemServices メソッドは、IWbemCallResult オブジェクトと共に直ちに返されます。 |
IWbemCausalityAnalysisの | 親要求から生成された子要求を追跡します。 |
IWbemClassObjectの | クラス定義とクラス オブジェクト インスタンスの両方を格納および操作します。 開発者はこのインターフェイスを実装する必要はありません。WMI は、その実装を提供します。 |
IWbemConfigureRefresherの | 列挙子、オブジェクト、入れ子になったリフレッシャーを更新プログラムに追加または削除するためにクライアント コードによって使用されます。 |
IWbemContextの | 必要に応じて、IWbemServices Windows Management への呼び出しを送信するときに、プロバイダーに追加のコンテキスト情報を伝達するために使用されます。 |
IWbemDecoupledBasicEventProviderの | 切り離されたプロバイダーを WMI に登録します。 |
IWbemDecoupledRegistrarの | 切り離されたプロバイダーを WMI に関連付けます。 このインターフェイスを使用すると、プロセスでホストされるプロバイダーは、インターフェイスの相互運用性の有効期間を定義し、他のプロバイダーと共存できます。 |
IWbemEventConsumerProviderの | イベント コンシューマー プロバイダーのプライマリ インターフェイスを提供します。 このインターフェイスと FindConsumer メソッドを使用して、イベント コンシューマー プロバイダーは、特定のイベントを受信するイベント コンシューマーを示すことができます。 |
IWbemEventProviderをする | イベント プロバイダーとの通信を開始するために使用されます。 |
IWbemEventProviderQuerySinkの | 必要に応じて、パフォーマンスを最適化するために現在アクティブになっているイベント クエリ フィルターの種類を知りたいイベント プロバイダーによって実装されます。 |
IWbemEventProviderSecurityの | 必要に応じて、イベントへのコンシューマー アクセスを制限するイベント プロバイダーによって実装されます。 |
IWbemEventSinkをする | 制限された一連のクエリを使用して、イベント プロバイダーとの通信を開始します。 このインターフェイスは IWbemObjectSink拡張され、セキュリティとパフォーマンスを処理する新しい方法が提供されます。 |
IWbemHiPerfProviderをする | プロバイダーが更新可能なオブジェクトと列挙子を提供できるようにします。 |
IWbemHiPerfEnumをする | インスタンス オブジェクトの列挙体への迅速なアクセスを提供するために、リフレッシャー操作で使用されます。 |
IWbemLocatorの | 特定のホスト コンピューター上の WMI の IWbemServices インターフェイスへの初期名前空間ポインターを取得します。 |
IWbemObjectAccessをする | オブジェクトのメソッドとプロパティへのアクセスを提供します。 IWbemObjectAccess オブジェクトは、リフレッシャーによって更新されたインスタンスのコンテナーです。 |
IWbemObjectSinkをする | IWbemServices の結果と特定の種類のイベント通知の両方を受け取るために使用されます。 |
IWbemObjectTextSrcをする | IWbemClassObject インスタンスを異なるテキスト形式に変換するために使用されます。 |
IWbemPropertyProviderの | WMI クラスのインスタンス内の個々のプロパティの取得と更新をサポートします。 |
IWbemProviderIdentityの | 同じ CLSID 値を持つ複数の Name (__Win32Providerの複数のインスタンス) を使用してプロバイダーが自身を登録する場合に、イベント プロバイダーによって実装されます。 このクラスには、使用する名前付きプロバイダーを識別するためのメカニズムが用意されています。 |
IWbemProviderInitの | プロバイダーの初期化に使用されます。 |
IWbemProviderInitSinkの | WMI によって実装され、初期化状態を報告するためにプロバイダーによって呼び出されます。 |
IWbemQualifierSetの | 1 つのプロパティまたはオブジェクト全体 (クラスまたはインスタンス) の名前付き修飾子のセット全体のコンテナーとして機能します。 |
IWbemQueryをする | WMI クエリ言語 (WQL) クエリを解析できるエントリ ポイントを提供します。 |
IWbemRefresherをする | 列挙子やリフレッシャー オブジェクトなどの更新可能なオブジェクトを更新できるエントリ ポイントを提供します。 |
IWbemServices | WMI サービスにアクセスするためにクライアントとプロバイダーによって使用されます。 インターフェイスは WMI によってのみ実装され、プライマリ WMI インターフェイスです。 |
IWbemStatusCodeTextの | エラー コードまたはエラーが発生したサブシステムの名前のテキスト文字列の説明を抽出します。 |
IWbemUnboundObjectSinkの | すべての論理イベント コンシューマーによって実装されます。 イベント オブジェクトの配信を受け入れる単純なシンク インターフェイスです。 |
手記
WMI COM 関数の多くは、名前付き定数として文書化されている数値エラー コードを返します。 これらの定数は、PSDK WMI\Include フォルダーの Wbemcli.h で定義されています。 詳細については、「WMI リターン コードの」を参照してください。
COM プログラミングに関する次のトピックの詳細については、「コンポーネント開発を参照してください。
関連トピック