註冊High-Performance提供者

就像其他執行個體提供者一樣,您會藉由建立 __Win32Provider__InstanceProviderRegistration 類別的實例,向 Microsoft Windows Management Instrumentation (WMI) 註冊高效能提供者。 __Win32Provider實例會定義提供者的實體實作,而__InstanceProviderRegistration實例會定義提供者的功能集。 如需詳細資訊,請參閱 註冊提供者

下列程式描述如何註冊高效能執行個體提供者。

註冊高效能執行個體提供者

  1. 建立 描述提供者之__Win32Provider 類別的實例。

    請務必將 ClientLoadableCLSID 屬性新增至 __Win32Provider 實例。 如果提供者和用戶端都位於相同的電腦上,WMI 會使用 ClientLoadableCLSID 做為類別識別碼,將提供者同進程載入至用戶端。 當提供者和用戶端位於不同的電腦上時,WMI 會將提供者同進程載入至 WMI。 WMI 也會使用 ClientLoadableCLSID 來支援重新整理作業。

  2. 建立描述提供者功能集 的 __InstanceProviderRegistration 類別實例。

    請務必使用 動態提供者 限定詞標記 類別。 動態限定詞表示 WMI 應該使用提供者來擷取類別實例。 提供者限定詞會指定 WMI 應該使用的提供者名稱。

    高效能提供者也需要狀態支援作業、列舉作業或兩者。 請確定您在實作中使用 SupportsGetSupportsEnumeration 屬性。

下列程式碼範例示範如何實作高效能提供者的__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[];
};

將執行個體提供者變成High-Performance提供者