Een klasseprovider schrijven
Een klasseprovider beheert een klasse of reeks klassen voor WMI. Een klasseprovider kan push of pull zijn; dat wil zeggen dat het ofwel zijn eigen gegevens opslaat, of WMI toestaat om gegevens voor hem op te slaan in de Windows Management-service. Hoewel een klasseprovider op een specifieke computer is geïnstalleerd, kunnen de klassedefinities in een hele onderneming worden gewijzigd. Daarom maken de meeste ontwikkelaars niet vaak klasseproviders.
Voordat u een klasseprovider maakt, moet u controleren of de ondersteunde klassen dynamisch moeten worden gegenereerd. In de meeste gevallen is de lijst met klassen langzaam veranderend en eindig. Als dit het geval is, hoeft u geen klasseprovider te maken. In plaats daarvan kunt u uw klassedefinities in de WMI-opslagplaats plaatsen met behulp van de WMI-API of een MOF-bestand.
In de volgende procedure wordt beschreven hoe u een klasseprovider implementeert.
Een klasseprovider implementeren
Bepaal of uw provider een push- of pull-provider is.
Een pull-provider levert dynamisch gegevens als reactie op een toepassingsaanvraag, terwijl pushproviders hun gegevens eenmaal opslaan in de WMI-opslagplaats. Zie Push- of Pull-status bepalenvoor meer informatie.
Ontwerp en registreer uw klasseprovider bij WMI.
Klasseproviders registreren zich bij WMI door een __Win32Provider exemplaar en een __ClassProviderRegistration-exemplaar te maken. Zie Een klasseprovider registrerenvoor meer informatie.
Implementeer de IWbemProviderInit-interface voor uw provider.
WMI maakt gebruik van IWbemProviderInit- om een provider te laden en te initialiseren. Als u een pushprovider ontwerpt, is IWbemProviderInit de enige interface die u gaat implementeren. Zie Initialiseren van een providervoor meer informatie.
Notitie
Klasseproviders worden sterk aangemoedigd om het multithreadingmodel 'Beide' te gebruiken.
Voeg eventuele extra code toe die nodig is voor uw provider.
Bij het ontwerpen van uw provider moet u waarschijnlijk WMI-interfaces aanroepen. Zie Een methode aanroepen en Beveiligingsniveaus onderhouden in een Provider-voor meer informatie.
Bij het ophalen van informatie voor een client moet u mogelijk toegang krijgen tot de beveiligingsniveaus voor die client. Zie Een client-imiteren voor meer informatie.
Implementeer de IWbemServices-interface voor uw provider.
De interface IWbemServices is de primaire interface voor een pull-klasseprovider. Zie De primaire interface voor een klasseprovider implementerenvoor meer informatie.
Vervang de bestaande provider door uw nieuwe code.
U hoeft deze stap niet uit te voeren als u geen bestaande provider hebt om deze te kopiëren. Zie Een provider bijwerkenvoor meer informatie.