注册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提供程序