Dela via


COM API för WMI

Du kan använda COM-API:et (WMI Component Object Model) för att skriva klientprogram för hantering eller skapa en ny WMI--provider. COM API-referensen innehåller information för avancerade systemadministratörer samt utvecklare som skriver klient- och providerprogram.

Mer information om hur du skriver WMI-företagshanteringsprogram finns i Skapa ett WMI-program med C++. Mer information om hur du skriver en WMI-provider finns i Att tillhandahålla data till WMI-.

Not

WMI stöder endast C++-utveckling med hjälp av Microsoft Visual C++ version 6.0 och senare utvecklingssystem. Men du kan också använda andra kompilatorer som de från Borland och Watcom.

 

Vart och ett av de olika WMI-objekten ärver från ett gränssnitt som slutligen ärvs från IUnknown--gränssnittet. COM avgör hur objektimplementerare eller gränssnitt hanterar uppgifter som minneshantering, parameterhantering och multitrådning. Genom att följa COM säkerställer COM-API:et för WMI att det stöder de funktioner som tillhandahålls av gränssnitten för varje WMI-objekt.

WMI nås via följande WMI-specifika COM-gränssnitt.

Gränssnitt Beskrivning
IEnumWbemClassObject Uppräknare som fungerar med objekt av typen IWbemClassObject. Det liknar com-standarduppräknare, till exempel IEnumVariant.
IMofCompiler Det här gränssnittet implementeras av Mofd.dlloch tillhandahåller ett COM-gränssnitt som används av MOF-kompilatorn och andra program som kompilerar MOF-filer.
IUnsecuredApartment Används för att förenkla processen med att göra asynkrona anrop från en klientprocess.
IWbemBackupRestore Säkerhetskopierar och återställer innehållet i WMI-lagringsplatsen.
IWbemCallResult Används för semisynkrona-anrop för IWbemServices-gränssnittet. När du gör sådana anrop returnerar den anropade metoden IWbemServices omedelbart, tillsammans med ett IWbemCallResult--objekt.
IWbemCausalityAnalysis Spårar underordnade begäranden som genereras från en överordnad begäran.
IWbemClassObject Innehåller och manipulerar både klassdefinitioner och klassobjektinstanser. Utvecklare behöver inte implementera det här gränssnittet. WMI tillhandahåller dess implementering.
IWbemConfigureRefresher Används av klientkoden för att lägga till eller ta bort uppräknare, objekt och kapslade uppdateringsprogram i en uppdatering.
IWbemContext Du kan också använda för att kommunicera ytterligare kontextinformation till leverantörer när de skickar IWbemServices-anrop till Windows Management.
IWbemDecoupledBasicEventProvider Registrerar frikopplade leverantörer med WMI.
IWbemDecoupledRegistrar Associerar frikopplade leverantörer med WMI. Med det här gränssnittet kan en processhanterad leverantör definiera gränssnittets driftskompatibilitetslivstid och samexistera med andra leverantörer.
IWbemEventConsumerProvider Tillhandahåller det primära gränssnittet för en händelsekonsumentprovider. Via det här gränssnittet och metoden FindConsumer kan en händelsekonsumentprovider ange vilken händelse som konsumenter ska ta emot en viss händelse.
IWbemEventProvider Används för att initiera kommunikation med en händelseprovider.
IWbemEventProviderQuerySink Du kan också implementeras av händelseprovidrar som vill veta vilka typer av händelsefrågefilter som för närvarande är aktiva för att optimera prestanda.
IWbemEventProviderSecurity Eventuellt implementerad av händelseleverantörer som vill begränsa konsumenternas åtkomst till deras händelse.
IWbemEventSink Initierar kommunikation med en händelseprovider med hjälp av en begränsad uppsättning frågor. Det här gränssnittet utökar IWbemObjectSink, vilket ger nya metoder för säkerhet och prestanda.
IWbemHiPerfProvider Gör det möjligt för leverantörer att tillhandahålla uppdateringsbara objekt och uppräknare.
IWbemHiPerfEnum Används i uppdateringsåtgärder för att ge snabb åtkomst till uppräkningar av instansobjekt.
IWbemLocator Hämtar den första namnområdespekaren till IWbemServices-gränssnittet för WMI på en specifik värddator.
IWbemObjectAccess Ger åtkomst till metoder och egenskaper för ett objekt. Ett IWbemObjectAccess--objekt är en container för en instans som uppdateras av en -uppdatering.
IWbemObjectSink Används för att ta emot både resultatet av IWbemServices och vissa typer av händelsemeddelanden.
IWbemObjectTextSrc Används för att översätta IWbemClassObject instanser till och från olika textformat.
IWbemPropertyProvider Stöder hämtning och uppdatering av enskilda egenskaper i en instans av en WMI-klass.
IWbemProviderIdentity Implementerad av en händelseprovider om providern registrerar sig med mer än en Namn (flera instanser av __Win32Provider) med samma CLSID- värde. Klassen tillhandahåller en mekanism för att särskilja vilken namngiven provider som ska användas.
IWbemProviderInit Används för att initiera providers.
IWbemProviderInitSink Implementerad av WMI och anropas av leverantörer för att rapportera initieringsstatus.
IWbemQualifierSet Fungerar som en container för hela uppsättningen namngivna kvalificerare för en enda egenskap eller ett helt objekt (en klass eller instans).
IWbemQuery Tillhandahåller en startpunkt genom vilken en WMI Query Language-fråga (WQL) kan parsas.
IWbemRefresher Tillhandahåller en startpunkt genom vilken uppdateringsbara objekt som uppräknare eller uppdateringsobjekt kan uppdateras.
IWbemServices Används av klienter och leverantörer för åtkomst till WMI-tjänster. Gränssnittet implementeras endast av WMI och är det primära WMI-gränssnittet.
IWbemStatusCodeText Extraherar textsträngsbeskrivningar av felkoder eller namnet på det undersystem där felet inträffade.
IWbemUnboundObjectSink Implementerad av alla logiska händelsekonsumenter. Det är ett enkelt mottagargränssnitt som accepterar leverans av händelseobjekt.

 

Not

Många av WMI COM-funktionerna returnerar numeriska felkoder som dokumenteras som namngivna konstanter. Dessa konstanter definieras i Wbemcli.h i mappen PSDK WMI\Include. Mer information finns i WMI-returkoder.

 

Mer information om följande avsnitt för COM-programmering finns i Component Development:

  • Gränssnitt och objektdesign.
  • Implementera IUnknown.
  • Minneshantering
  • Hantera referensräkning.

WMI-referens