注册高性能提供程序

与其他实例提供程序一样,你通过创建 __Win32Provider__InstanceProviderRegistration 类的实例将高性能提供程序注册到 Microsoft Windows&\#160;Management Instrumentation (WMI)。 __Win32Provider 实例定义提供程序的物理实现,__InstanceProviderRegistration 实例定义提供程序的功能集。 有关详细信息,请参阅注册提供程序

以下过程介绍了如何注册高性能实例提供程序。

注册高性能实例提供程序

  1. 创建 __Win32Provider 类的实例来描述提供程序。

    请务必将 ClientLoadableCLSID 属性添加到 __Win32Provider 实例。 如果提供程序和客户端驻留在同一台计算机上,则 WMI 使用 ClientLoadableCLSID 作为类标识符将进程内提供程序加载到客户端。 当提供程序和客户端驻留在不同的计算机上时,WMI 会将进程内提供程序加载到 WMI。 WMI 还使用 ClientLoadableCLSID 来支持刷新操作。

  2. 创建 __InstanceProviderRegistration 类实例来描述提供程序的功能集。

    请务必使用 DynamicProvider 限定符标记该类。 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[];
};

将实例提供程序转换为高性能提供程序