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 では、オブジェクトを実装するもの (インターフェイス) により、メモリ管理、パラメーター管理、マルチスレッド処理などのタスクがどのように処理されるかが指定されます。 WMI 用 COM API では、COM に準拠することで、各 WMI オブジェクトのインターフェイスによって提供される機能が確実にサポートされます。

WMI へのアクセスは、以下に示す WMI 固有の COM インターフェイスを介して行われます。

インターフェイス 説明
IEnumWbemClassObject IWbemClassObject 型のオブジェクトを操作する列挙子。 これは、IEnumVariant などの標準的な COM 列挙子に似ています。
IMofCompiler Mofd.dll によって実装されているこのインターフェイスでは、MOF コンパイラや、MOF ファイルをコンパイルするその他のアプリケーションで使用される COM インターフェイスを提供します。
IUnsecuredApartment クライアント プロセスから非同期呼び出しを行うプロセスを簡略化するために使用されます。
IWbemBackupRestore WMI リポジトリの内容のバックアップと復元を行います。
IWbemCallResult IWbemServices インターフェイスの半同期呼び出しに使用されます。 このような呼び出しを行うと、IWbemCallResult オブジェクトと共に、呼び出された IWbemServices メソッドが直ちに返ります。
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 値を持つ複数の名前 (__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 プログラミングに関する以下のトピックの詳細については、「コンポーネント開発」を参照してください。

  • インターフェイスとオブジェクトの設計。
  • IUnknown の実装。
  • メモリ管理
  • 参照カウントの処理。

WMI リファレンス