次の方法で共有


プロバイダーの初期化

プロバイダーに対してコーディングする必要がある最初のタスクの 1 つは初期化プロセスです。これは、WMI からの情報の送受信、マネージド オブジェクトの制御、およびその他のタスクの実行を可能にする、プロバイダーが実行する必要があるタスクを対象としています。 プロバイダーの種類ごとに、実行する必要がある異なる一連のタスクがあり、それに付随する一意のインターフェイスのセットがあります。

ただし、すべてのプロバイダーは IWbemProviderInit インターフェイスを使用して初期化し、 IWbemProviderInitSink インターフェイスを介して WMI に初期化状態を通知します。

次の手順では、プロバイダーを初期化する方法について説明します。

プロバイダーを初期化するには

  1. プロバイダーの IWbemProviderInit::Initialize を実装します。

    クライアントがプロバイダーのサービスを必要とすると WMI が判断すると、WMI は IWbemProviderInit::Initialize メソッドを呼び出してプロバイダーを読み込みます。

  2. プロバイダーの種類に固有のインターフェイスを実装します。

  3. IWbemProviderInitSink::SetStatus を呼び出して、プロバイダーの初期化が完了したことを WMI に通知します。

    IWbemProviderInit::Initialize のすべての実装は、初期化状態を WMI に報告するために IWbemProviderInitSink::SetStatus を呼び出す必要があります。 SetStatus メソッドを使用すると、WMI はプロバイダーが要求を受信する準備ができているかどうか、およびプロバイダーが受信する準備ができている要求の種類を判断できます。

次の手順では、初期化が成功したことを報告する方法について説明します。

初期化が成功したことを報告するには

  • SetStatusIStatus パラメーターをWBEM_S_INITIALIZEDに設定します

    WBEM_S_INITIALIZEDを返すことによって、プロバイダーは、アプリケーション、WMI、およびその他のプロバイダーからの要求を処理する準備を示します。 WBEM_S_INITIALIZEDを受信すると、WMI はプロバイダーの IWbemProviderInit::QueryInterface メソッドを呼び出します。 このクエリは、プロバイダーのプライマリ インターフェイスへのポインターを取得します。

次の手順では、初期化中にエラーを報告する方法について説明します。

初期化中にエラーを報告するには

  • SetStatusIStatus パラメーターを WBEM_E_FAILED に設定しますWBEM_E_FAILEDを返す WMI ビュー プロバイダーは機能しません。

    WMI は、WMI がプロバイダーのプライマリ インターフェイスへのポインターを取得した後、または初期化に失敗した後に 、IWbemProviderInit ポインターを解放します。

WMI プロバイダーの開発

名前空間のセキュリティ記述子の設定

プロバイダーのセキュリティ保護