Freigeben über


Registrieren eines Hochleistungsanbieters

Wie bei anderen Instanzenanbietern registrieren Sie einen Hochleistungsanbieter bei der Microsoft Windows-Verwaltungsinstrumentation (Windows Management Instrumentation, WMI) durch Erstellen einer Instanz der Klassen __Win32Provider und __InstanceProviderRegistration. Die Instanz__Win32Provider definiert die physische Implementierung des Anbieters, und die Instanz __InstanceProviderRegistration definiert den Funktionsumfang des Anbieters. Weitere Informationen finden Sie unter Registrieren eines Anbieters.

Im folgenden Verfahren wird beschrieben, wie Sie einen Hochleistungs-Instanzenanbieter registrieren.

So registrieren Sie einen Hochleistungs-Instanzenanbieter

  1. Erstellen Sie eine Instanz der Klasse __Win32Provider, die den Anbieter beschreibt.

    Fügen Sie der Instanz __Win32Provider unbedingt eine Eigenschaft ClientLoadableCLSID hinzu. Wenn sich sowohl der Anbieter als auch der Client auf demselben Computer befinden, lädt WMI den Anbieter während des Prozesses mithilfe von ClientLoadableCLSID als Klassenbezeichner auf den Client. Wenn sich der Anbieter und der Client auf verschiedenen Computern befinden, lädt WMI den Anbieter prozessintern in WMI. WMI verwendet auch ClientLoadableCLSID, um Aktualisierungsvorgänge zu unterstützen.

  2. Erstellen Sie eine Instanz der Klasse __InstanceProviderRegistration, die den Funktionsumfang des Anbieters beschreibt.

    Achten Sie darauf, dass Sie die Klasse sowohl mit dem Qualifizier Dynamisch als auch dem Qualifizier Anbieter markieren. Der Qualifizierer Dynamic signalisiert, dass WMI einen Anbieter verwenden sollte, um die Klasseninstanzen abzurufen. Der Qualifizierer Anbieter gibt den Namen des Anbieters an, den WMI verwenden soll.

    Ein Hochleistungsanbieter muss auch Unterstützung für Vorgänge, Enumerationsvorgänge oder beides angeben. Stellen Sie sicher, dass Sie die Eigenschaften SupportsGet und SupportsEnumeration in Ihrer Implementierung verwenden.

Das folgende Codebeispiel zeigt, wie Sie die Klassen __Win32Provider und __InstanceProviderRegistration für einen Hochleistungsanbieter implementieren.

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

Umwandeln eines Instanzanbieters in einen Hochleistungsanbieter