Een WMI-provider ontwikkelen
Een provider is een COM-object (Component Object Model) dat fungeert als intermediair tussen WMI en een beheerd object. Wanneer een toepassing of script bijvoorbeeld schijfgegevens aanvraagt met behulp van de klasse WMI Win32_LogicalDisk, worden de gegevens dynamisch verkregen via de vooraf geïnstalleerde Win32-provider.
Als u gegevens via WMI wilt opgeven voor andere toepassingen, kunt u een niet-beheerde codeprovider maken door een COM-server te schrijven of via de WMI ATL-wizards in Visual Studio. U kunt een beheerde codeprovider schrijven met behulp van WMI in .NET Framework. In de onderwerpen in deze sectie wordt het schrijven van een onbeheerde COM-provider beschreven.
Notitie
Als u ervoor wilt zorgen dat alle WMI-klassedefinities voor beheerde objecten worden hersteld naar de WMI-opslagplaats als WMI een fout heeft en opnieuw wordt opgestart, gebruikt u de #pragma autoherstel-instructie preprocessorinstructie in uw MOF-bestand (Managed Object Format).
Een provider bestaat uit klassen die zijn gedefinieerd in het Managed Object Format (MOF) schema en een DLL-bestand dat de functies van de provider uitvoert. De MOF die de klassen van de Win32-provider definieert, is bijvoorbeeld CIMWin32.mof en het DLL-bestand is CIMWin32.dll, beide zijn te vinden in %windir%\System32\Wbem.
Het MOF-schema voor de provider kan verschillende providertypen bevatten. De Gebeurtenislogboekprovider bijvoorbeeld instantie-, methode- en gebeurtenisprovidertypen heeft in één MOF-bestand met de naam Ntevt.mof. Het wordt aanbevolen om alle klassen en het registratieschema voor gerelateerde providers in één bestand samen te stellen in plaats van één bestand per klasse te maken.
Naast het gebruik van vooraf geïnstalleerde providers kunt u uw eigen provider maken om informatie over een hardwareapparaat of de werking van software op te geven.
De volgende tabel bevat de basistaken die een provider maken.
Taak | Beschrijving |
---|---|
MOF-klassen (Managed Object Format) ontwerpen | Ontwikkel een model voor de entiteiten die u wilt beheren via WMI en maak een MOF-bestand (Managed Object Format) om het schema te beschrijven. |
gegevens aan WMI leveren door een provider te schrijven | Maak de meest eenvoudige provider die is gekoppeld aan WMI. |
Een provider opnemen in een applicatie | Neem de provider op als onderdeel in een toepassing als deze niet alle tijd wordt uitgevoerd. |
een provider registreren | Registreer de provider bij COM en WMI. |
Een Provider Initialiseren | Implementeer de IWbemProviderInit en IWbemProviderInitSink interfaces. |
Oproepen maken naar WMI | WMI-interfaces aanroepen van een provider. |
Een klant imiteren | Stel beveiliging in voor toegang tot een clienttoepassing. |
een provider bijwerken | Verbeter de provider indien nodig. |
Het loskoppelen van een provider | Verwijder de provider uit het geheugen tijdens het afsluiten of wanneer de provider inactief is. |
Debuggen van Leveranciers en Leverancier Configuratie en Probleemoplossing Klassen | Fouten opsporen in uw provider met behulp van faciliteiten die worden geleverd door WMI. |
gegevens ophalen en leveren op een 64-bits computer | Evalueer of u een 32-bits toepassingscompatibiliteitsprovider nodig hebt of of de 64-bits provider gegevens kan leveren aan beide clients. |
In de volgende onderwerpen worden de stappen besproken die nodig zijn om verschillende typen providers te schrijven: