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 の実装。
- メモリ管理
- 参照カウントの処理。
関連トピック