Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
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.
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[];
};
Tematy pokrewne