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.
Relaterade ämnen