高パフォーマンス プロバイダーの登録
他のインスタンス プロバイダーと同様に、__Win32Provider と __InstanceProviderRegistration クラスのインスタンスを作成して高パフォーマンス プロバイダーを Microsoft Windows Management Instrumentation (WMI) に登録します。 __Win32Provider インスタンスはプロバイダーの物理実装を定義し、__InstanceProviderRegistration インスタンスはプロバイダーの機能セットを定義します。 詳細については、「プロバイダーの登録」を参照してください。
次の手順では、高パフォーマンス インスタンス プロバイダーを登録する方法について説明します。
高パフォーマンス インスタンス プロバイダーを登録するには
プロバイダーを記述する __Win32Provider クラスのインスタンスを作成します。
ClientLoadableCLSID プロパティを __Win32Provider インスタンスに追加してください。 プロバイダーとクライアントの両方が同じコンピューター上にある場合、WMI は ClientLoadableCLSID をクラス識別子として使用して、プロバイダーのインプロセスをクライアントに読み込みます。 プロバイダーとクライアントが異なるコンピューターにあるとき、WMI はプロバイダーのインプロセスを WMI に読み込みます。 WMI は、更新操作をサポートするために ClientLoadableCLSID も使用します。
プロバイダーの機能セットを記述する __InstanceProviderRegistration クラスのインスタンスを作成します。
忘れずに Dynamic 修飾子と Provider 修飾子の両方でクラスにタグを付けます。 Dynamic 修飾子は、WMI がプロバイダーを使用してクラス インスタンスを取得する必要があることを通知します。 Provider 修飾子は、WMI で使用するプロバイダーの名前を指定します。
高パフォーマンス プロバイダーでは、操作、列挙操作、またはその両方のサポートも指定する必要があります。 実装で SupportsGet プロパティと SupportsEnumeration プロパティを使用していることを確認します。
次のコード例では、高パフォーマンス プロバイダーの __Win32Provider と __InstanceProviderRegistration クラスを実装する方法を示します。
instance of __Win32Provider as $P
{
Name="TestProv";
CLSID="{A41602A4-C038-11d1-AEB6-00C04FB68820}";
ClientLoadableCLSID="{423B32C9-B033-4242-EFB6-55C044242821}";
};
instance of __InstanceProviderRegistration
{
Provider = $P;
SupportsGet = TRUE;
SupportsEnumeration = TRUE;
};
[ dynamic,
provider("TestProv")
]
class TestClass
{
[key] string KeyVal;
string StrVal1;
sint32 IntVal1;
sint32 IntVal2;
sint32 IntArray2[];
};
関連トピック