クラス プロバイダーの作成

クラス プロバイダーは、WMI のクラスまたは一連のクラスを管理します。 クラス プロバイダーは、プッシュまたはプルのいずれかです。つまり、独自のデータを格納できるか、それを WMI が Windows 管理サービスに格納できるようにします。 クラス プロバイダーは特定のマシンにインストールされますが、エンタープライズ全体のクラス定義を変更できます。 そのため、ほとんどの開発者はクラス プロバイダーを作成する頻度が高くありません。

クラス プロバイダーを構築する前に、サポートされているクラスを本当に動的に生成する必要があるかどうかを確認します。 ほとんどの場合、クラスの一覧の変化は緩やかで、有限です。 この場合、クラス プロバイダーを作成する必要はありません。 代わりに、WMI API または MOF ファイルを使用して、WMI リポジトリにクラス定義を配置できます。

クラス プロバイダーを実装する方法について、次の手順で説明します。

クラス プロバイダーを実装するには

  1. プロバイダーがプッシュとプルのいずれのプロバイダーかを判断します。

    プル プロバイダーは、アプリケーション要求に応答してデータを動的に提供しますが、プッシュ プロバイダーは WMI リポジトリにデータを 1 回格納します。 詳細については、「プッシュまたはプルの状態の決定」を参照してください。

  2. クラス プロバイダーを設計して WMI に登録します。

    クラス プロバイダーは、__Win32Provider インスタンスと __ClassProviderRegistration インスタンスを作成して WMI に登録します。 詳細については、「クラス プロバイダーの登録」を参照してください。

  3. ご使用のプロバイダー用の IWbemProviderInit インターフェイスを実装します。

    WMI は IWbemProviderInit を使用してプロバイダーを読み込んで初期化します。 プッシュ プロバイダーを設計する場合、実装するインターフェイスは IWbemProviderInit のみです。 詳細については、「プロバイダーの初期化」を参照してください。

    注意

    クラス プロバイダーでマルチスレッド モデル "Both" を使用することを強くお勧めします。

     

  4. プロバイダーに必要なコードを追加します。

    プロバイダーを設計するときは、ほとんどの場合、WMI インターフェイスを呼び出す必要があります。 詳細については、メソッドの呼び出しに関する記事と、「プロバイダーでのセキュリティ レベルの維持」を参照してください。

    クライアントの情報を取得するときに、そのクライアントのセキュリティ レベルにアクセスすることが必要になる場合があります。 詳細については、「クライアントの偽装」を参照してください。

  5. ご使用のプロバイダー用の IWbemServices インターフェイスを実装します。

    IWbemServices インターフェイスは、プル クラス プロバイダーのプライマリ インターフェイスです。 詳細については、「クラス プロバイダーのプライマリ インターフェイスの実装」を参照してください。

  6. 既存のプロバイダーを新しいコードに置き換えます。

    コピーする既存のプロバイダーがない場合は、この手順を実行する必要はありません。 詳しくは、「プロバイダーの更新」を参照してください。