インスタンス プロバイダーの作成

インスタンス プロバイダーは、指定された 1 つ以上のクラスのインスタンスを提供します。 たとえば、インスタンス プロバイダーは、CPU やその他の種類のハードウェアに関する情報を提供できます。 インスタンス プロバイダーによって管理されるオブジェクトは定期的に変更される傾向があるため、すべてのインスタンス プロバイダーはプル プロバイダーと見なされます。つまり、WMI が情報の要求を行うたびに、マネージド オブジェクトに関する情報を動的に取得するプロバイダーです。 この名前は、WMI がクライアント要求の代わりにプロバイダーから情報を "プル" するという考えに由来しています。 プル テクノロジを使用すると、インスタンス プロバイダーは、特定のインスタンスの取得、列挙、変更、削除、およびクエリ処理をサポートできます。

高パフォーマンス プロバイダーを使用すると、インスタンス プロバイダーの効率向上や、システム モニターに表示されるデータへのプログラムでのアクセスができます。 詳細については、「インスタンス プロバイダーを高パフォーマンス プロバイダーに変換する」を参照してください。

インスタンス プロバイダーを記述する方法について次の手順で説明します。

インスタンス プロバイダーを記述するには

  1. WMI にプロバイダーを登録します

    インスタンス プロバイダーは、__Win32Provider インスタンスと __InstanceProviderRegistration クラスを作成することで WMI に登録されます。

  2. プロバイダーを初期化します

    WMI は IWbemProviderInit を使用してプロバイダーを読み込んで初期化します。 これはすべてのプロバイダーに共通するタスクです。

    注意

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

     

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

    IWbemServices インターフェイスは、インスタンス プロバイダーのプライマリ インターフェイスです。

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

    プロバイダーを設計するときは、ほとんどの場合、WMI インターフェイスを呼び出す必要があります。 詳細については、「WMI を呼び出す」を参照してください。

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

  5. 必要に応じて、高パフォーマンス インターフェイスを実装します

    高パフォーマンス インターフェイスにより、プロバイダーが WMI からの要求に対応できる速度が向上します。

  6. 必要に応じて、部分インスタンス更新のサポートを実装します

    名前が示すように、部分インスタンス更新は、インスタンスの一部のみを更新するために使用する手法です。 クライアントから部分インスタンスを呼び出す方法の詳細については、「インスタンスの一部を更新する」および「WMI インスタンスの一部の取得」を参照してください。

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

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