IWbemContext インターフェイス (wbemcli.h)

IWbemContext インターフェイスは、必要に応じて、IWbemServices 呼び出しを WMI に送信するときに、プロバイダーに追加のコンテキスト情報を通信するために使用されます。 IWbemServices のすべてのプライマリ呼び出しは、この型のオブジェクトを指す省略可能なパラメーターを受け取ります。

継承

IWbemContext インターフェイスは、IUnknown インターフェイスから継承されます。 IWbemContext には、次の種類のメンバーもあります。

メソッド

IWbemContext インターフェイスには、これらのメソッドがあります。

 
IWbemContext::BeginEnumeration

IWbemContext::BeginEnumeration メソッドは、オブジェクト内のすべてのコンテキスト値の列挙をリセットします。
IWbemContext::Clone

IWbemContext::Clone メソッドは、現在の IWbemContext オブジェクトの論理コピーを作成します。 このメソッドは、ほぼ同じ IWbemContext オブジェクトを持つ多数の呼び出しを行う必要がある場合に便利です。
IWbemContext::D eleteAll

IWbemContext::D eleteAll メソッドは、現在のオブジェクトからすべての名前付きコンテキスト値を削除し、オブジェクトを空にします。
IWbemContext::D eleteValue

IWbemContext::D eleteValue メソッドは、IWbemContext::SetValue によって作成された名前付きコンテキスト値を削除します。
IWbemContext::EndEnumeration

IWbemContext::EndEnumeration メソッドは、IWbemContext::BeginEnumeration で始まる列挙シーケンスを終了します。 この呼び出しは必須ではありませんが、列挙型に関連付けられているシステム リソースをできるだけ早く解放します。
IWbemContext::GetNames

IWbemContext::GetNames メソッドは、名前付きコンテキスト値のすべての名前の SAFEARRAY 構造体を返します。
IWbemContext::GetValue

IWbemContext::GetValue メソッドは、特定の名前付きコンテキスト値を名前で取得するために使用されます。
IWbemContext::Next

IWbemContext::Next メソッドは、IWbemContext::BeginEnumeration で始まるすべてのコンテキスト値の列挙で次の値を取得します。
IWbemContext::SetValue

IWbemContext::SetValue メソッドは、名前付きコンテキスト値を作成または上書きします。

注釈

多くの場合、動的プロバイダーでは、 IWbemServices メソッドの通常のパラメーターで指定されているよりも多くの情報が必要です。 たとえば、提供される WMI スキーマ オブジェクトを操作するには、プロバイダーが簡易ネットワーク管理プロトコル (SNMP) コミュニティ名、または構造化照会言語 (SQL) データベースとテーブル名を知る必要がある場合があります。 クライアントは、この情報を IWbemContext オブジェクトに追加し、 IWbemContext オブジェクトをパラメーターの 1 つとして呼び出しと共に送信できます。

プロバイダーは、コンテンツ オブジェクトを慎重に使用する必要があります。 必須でないことをお勧めします。 プロバイダーが要求に応答するために大量の高度に固有のコンテキスト情報を必要とする場合は、この情報を提供するためにすべてのクライアントをコーディングする必要があるため、WMI の基礎となる均一なアクセス モデルが損なわれます。 ただし、場合によっては回避できない場合があります。 したがって、このようなプロバイダーにアクセスできるようにするために、このメカニズムが提供されます。 このようなプロバイダーの開発者は、クライアント ソフトウェアの開発者がこのような CIM オブジェクトを正常に操作できるように、適切なドキュメントを提供する必要があります。

IWbemContext を使用してクライアントが要求の詳細情報を指定できるようにするプロバイダーは、サポートする値の種類を次の一覧の型に制限する必要があります。

  • VT_I4
  • VT_R8
  • VT_BOOL
  • VT_BSTR
  • VT_UNKNOWN
  • 上記のいずれかをVT_ARRAYと組み合わせて使用します
メモIWbemClassObject をサポートするオブジェクトのみが、VT_UNKNOWN型のバリアントを使用して IWbemContext インスタンス内の IUnknown メソッドをマーシャリングできます。
 
CoCreateInstanceEx を使用して作成される IWbemContext オブジェクトは、名前付き値の単純なコンテナーです。 これらのメソッドにアクセスして、動的プロバイダーに必要なコンテキスト情報を入力します。 IWbemServices メソッドの 1 つを呼び出した後、IWbemContext オブジェクトを別の呼び出しに再利用するか、ReleaseIWbemServices メソッドの他の呼び出し用に作成された別のオブジェクトを使用して割り当てを解除できます。

IWbemContext オブジェクトに含まれる情報は、基になるプロバイダーによって完全に決定されます。 WMI は情報を使用せず、プロバイダーに転送します。 プロバイダーは、これらのサービス要求に必要なコンテキスト情報を公開する必要があります。

クライアント アプリケーションは CoCreateInstanceEx を呼び出して、単一のコンテキスト オブジェクトを作成します。 次に、 SetValue を 1 回以上呼び出して、プロバイダーのコンテキスト値を設定します。 最後に、 IWbemServices メソッドのいずれかにオブジェクトを送信します。このメソッドは、呼び出しが返された後、コンテキスト オブジェクトで Release を 直ちに呼び出します。 その他のメソッドは、主にコンテキスト オブジェクトを受け取り、情報を抽出する必要があるプロバイダーによって使用されます。

要件

要件
サポートされている最小のクライアント Windows Vista
サポートされている最小のサーバー Windows Server 2008
対象プラットフォーム Windows
ヘッダー wbemcli.h (Wbemidl.h を含む)

関連項目

WMI 用 COM API

C++ を使用したインスタンスの作成と宣言

WMI に対する呼び出しの実行

64 ビット プラットフォームでの WMI データの要求

WMI インスタンスの一部の取得