Skriva en klassprovider
En klassprovider hanterar en klass eller serie klasser för WMI. En klassprovider kan antingen använda push eller pull-metoden. Den kan antingen lagra sina egna data eller tillåta WMI att lagra data för den i Windows Management Service. Även om en klassprovider är installerad på en specifik dator kan den ändra klassdefinitionerna i ett helt företag. Därför skapar de flesta utvecklare inte ofta klassprovidrar.
Innan du skapar en klassprovider kontrollerar du att klasserna som stöds måste genereras dynamiskt. I de flesta fall är listan över klasser långsamt föränderlig och begränsad. Om så är fallet bör du inte behöva skapa en klassleverantör. I stället kan du placera dina klassdefinitioner på WMI-lagringsplatsen med hjälp av WMI-API:et eller en MOF-fil.
Följande procedur beskriver hur du implementerar en klassprovider.
Att implementera en klassleverantör
Kontrollera om din leverantör är en push- eller pull-provider.
En pull-provider levererar data dynamiskt som svar på en programbegäran, medan push-leverantörer lagrar sina data en gång på WMI-lagringsplatsen. För mer information, se fastställande av push- eller pull-status.
Utforma och registrera din klassprovider med WMI.
Klassprovidrar registrerar sig med WMI genom att skapa en __Win32Provider instans och en __ClassProviderRegistration instans. Mer information finns i Registrering av en klassleverantör.
Implementera IWbemProviderInit--gränssnittet för din provider.
WMI använder IWbemProviderInit för att läsa in och initiera en provider. Om du utformar en push-provider är IWbemProviderInit det enda gränssnitt som du ska implementera. Mer information finns i Initiera en provider.
Notera
Klassprovidrar uppmanas starkt att använda multitrådningsmodellen "Båda".
Lägg till eventuell ytterligare kod som krävs för din provider.
När du utformar din leverantör behöver du förmodligen anropa WMI-gränssnitt. Mer information finns i Anropa en metod och Upprätthålla säkerhetsnivåer i en tjänstleverantör.
När du hämtar information för en klient kan du behöva komma åt säkerhetsnivåerna för klienten. Mer information finns i Personifiera en klient.
Implementera IWbemServices-gränssnittet för din provider.
Gränssnittet IWbemServices är det primära gränssnittet för en pull-klassprovider. Mer information finns i Implementera det primära gränssnittet för en klassprovider.
Ersätt den befintliga providern med din nya kod.
Du behöver inte utföra det här steget om du inte har någon befintlig provider att kopiera över. För mer information, se Uppdatering av en leverantör.