Udostępnij przez


Rejestrowanie dostawcy High-Performance

Podobnie jak inni dostawcy wystąpień, rejestrujesz dostawcę wysokiej wydajności w Windows Management Instrumentation (WMI), tworząc wystąpienie klas __Win32Provider i __InstanceProviderRegistration. Wystąpienie __Win32Provider definiuje fizyczną implementację dostawcy, a wystąpienie __InstanceProviderRegistration definiuje zestaw funkcji dostawcy. Aby uzyskać więcej informacji, zobacz Rejestrowanie dostawcy.

Poniższa procedura opisuje sposób rejestrowania dostawcy instancji wysokiej wydajności.

Aby zarejestrować dostawcę wystąpienia o wysokiej wydajności

  1. Utwórz wystąpienie klasy __Win32Provider opisującej dostawcę.

    Pamiętaj, aby dodać właściwość ClientLoadableCLSID do wystąpienia __Win32Provider. Jeśli zarówno dostawca, jak i klient znajdują się na tym samym komputerze, usługa WMI ładuje dostawcę w procesie do klienta przy użyciu ClientLoadableCLSID jako identyfikator klasy. Gdy dostawca i klient znajdują się na różnych komputerach, usługa WMI ładuje dostawcę w procesie do usługi WMI. WMI używa również ClientLoadableCLSID do obsługi operacji odświeżania.

  2. Utwórz wystąpienie klasy __InstanceProviderRegistration opisujące zestaw funkcji dostawcy.

    Pamiętaj, aby oznaczyć klasę kwalifikatorami zarówno dynamiczne, jak i Dostawca. Kwalifikator dynamiczny wskazuje, że usługa WMI powinna używać dostawcy do pobierania wystąpień klasy. Kwalifikator dostawcy określa nazwę dostawcy, którego należy użyć w usłudze WMI.

    Dostawca o wysokiej wydajności musi także deklarować wsparcie dla operacji, operacji enumeracyjnych lub obu tych operacji. Upewnij się, że w implementacji użyto właściwości SupportsGet i SupportsEnumeration.

W poniższym przykładzie kodu pokazano, jak zaimplementować klasy __Win32Provider i __InstanceProviderRegistration dla dostawcy o wysokiej wydajności.

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[];
};

przekształcenie dostawcy wystąpień w High-Performance dostawcę