Interface IWbemServices (wbemcli.h)

L’interface IWbemServices est utilisée par les clients et les fournisseurs pour accéder aux services WMI. L’interface est implémentée par les fournisseurs WMI et WMI, et est l’interface WMI principale.

    IWbemClassObject *pObj = NULL;

    //The pWbemSvc pointer is of type IWbemServices*
    pWbemSvc->GetObject(L"path", 0, 0, &pObj, 0);

Héritage

L’interface IWbemServices hérite de l’interface IUnknown . IWbemServices possède également ces types de membres :

Méthodes

L’interface IWbemServices a ces méthodes.

 
IWbemServices::CancelAsyncCall

La méthode IWbemServices::CancelAsyncCall annule les appels asynchrones en attente en fonction du pointeur IWbemObjectSink, qui a été passé à l’origine à la méthode asynchrone.
IWbemServices::CreateClassEnum

La méthode IWbemServices::CreateClassEnum retourne un énumérateur pour toutes les classes qui répondent aux critères de sélection.
IWbemServices::CreateClassEnumAsync

La méthode IWbemServices::CreateClassEnumAsync retourne une énumération de toutes les classes que le fournisseur de classes prend en charge.
IWbemServices::CreateInstanceEnum

La méthode IWbemServices::CreateInstanceEnum crée un énumérateur qui retourne les instances d’une classe spécifiée en fonction des critères de sélection spécifiés par l’utilisateur.
IWbemServices::CreateInstanceEnumAsync

La méthode IWbemServices::CreateInstanceEnumAsync crée un énumérateur qui retourne de façon asynchrone les instances d’une classe spécifiée en fonction des critères de sélection spécifiés par l’utilisateur.
IWbemServices::D eleteClass

La méthode IWbemServices::D eleteClass supprime la classe spécifiée de l’espace de noms actuel.
IWbemServices::D eleteClassAsync

La méthode IWbemServices::D eleteClassAsync supprime la classe spécifiée de l’espace de noms actuel.
IWbemServices::D eleteInstance

La méthode IWbemServices::D eleteInstance supprime une instance d’une classe existante dans l’espace de noms actuel.
IWbemServices::D eleteInstanceAsync

La méthode IWbemServices::D eleteInstanceAsync supprime de façon asynchrone une instance d’une classe existante dans l’espace de noms actuel. La confirmation ou l’échec de l’opération est signalé via l’interface IWbemObjectSink implémentée par l’appelant.
IWbemServices::ExecMethod

Exécute une méthode exportée par un objet CIM.
IWbemServices::ExecMethodAsync

Exécute de façon asynchrone une méthode exportée par un objet CIM.
IWbemServices::ExecNotificationQuery

La méthode IWbemServices::ExecNotificationQuery exécute une requête pour recevoir des événements. L’appel retourne immédiatement, et l’utilisateur peut interroger l’énumérateur retourné pour les événements à mesure qu’ils arrivent. La libération de l’énumérateur renvoyé annule la requête.
IWbemServices::ExecNotificationQueryAsync

La méthode IWbemServices::ExecNotificationQueryAsync effectue la même tâche que IWbemServices::ExecNotificationQuery, sauf que les événements sont fournis au gestionnaire de réponse spécifié jusqu’à ce que CancelAsyncCall soit appelé pour arrêter la notification d’événement.
IWbemServices::ExecQuery

La méthode IWbemServices::ExecQuery exécute une requête pour récupérer des objets.
IWbemServices::ExecQueryAsync

La méthode IWbemServices::ExecQueryAsync exécute une requête pour récupérer des objets de manière asynchrone.
IWbemServices::GetObject

La méthode IWbemServices::GetObject récupère une classe ou une instance. Cette méthode récupère uniquement les objets de l’espace de noms associé à l’objet IWbemServices actuel.
IWbemServices::GetObjectAsync

La méthode IWbemServices::GetObjectAsync récupère un objet, soit une définition de classe, soit une instance, en fonction de son chemin d’accès.
IWbemServices::OpenNamespace

La méthode IWbemServices::OpenNamespace fournit à l’appelant un nouveau pointeur IWbemServices qui a l’espace de noms enfant spécifié comme contexte d’exploitation.
IWbemServices::P utClass

La méthode IWbemServices::P utClass crée une classe ou met à jour une classe existante. La classe spécifiée par le paramètre pObject doit avoir été correctement initialisée avec toutes les valeurs de propriété requises.
IWbemServices::P utClassAsync

La méthode IWbemServices::P utClassAsync crée une classe ou met à jour une classe existante.
IWbemServices::P utInstance

La méthode IWbemServices::P utInstance crée ou met à jour une instance d’une classe existante. L’instance est écrite dans le référentiel WMI.
IWbemServices::P utInstanceAsync

La méthode IWbemServices::P utInstanceAsync crée ou met à jour de façon asynchrone une instance d’une classe existante. La confirmation de mise à jour ou le rapport d’erreurs est fournie via l’interface IWbemObjectSink implémentée par l’appelant.
IWbemServices::QueryObjectSink

La méthode IWbemServices::QueryObjectSink permet à l’appelant d’obtenir un gestionnaire de notification exporté par Windows Management.

Notes

Les fournisseurs qui implémentent l’interface IWbemServices doivent suivre la sémantique documentée de chaque méthode qu’ils implémentent ; et les fournisseurs doivent prendre en charge les codes de retour d’erreur spécifiés. WMI implémente toutes les méthodes, et généralement, chaque fournisseur implémente un petit sous-ensemble des fonctionnalités disponibles sur l’interface. Les fournisseurs doivent retourner WBEM_E_PROVIDER_NOT_CAPABLE pour toute méthode qu’ils n’implémentent pas.

Tous les pointeurs d’interface sortants de n’importe quelle méthode IWbemServices doivent être initialisés sur NULL avant d’appeler la méthode d’interface. Par exemple, les appels à la méthode IWbemServices::GetObject retournent un pointeur d’interface IWbemClassObject qui doit être pré-initialisé sur NULL avant l’appel de méthode IWbemServices::GetObject .

Exemples

Pour obtenir plusieurs exemples C++ qui utilisent IWbemServices, consultez la section Exemples d’applications C++ WMI .

L’exemple de code suivant montre comment un fournisseur peut obtenir un pointeur IWbemServices . Le code nécessite les instructions #include suivantes et les références à compiler.

#include <iostream>
using namespace std;
#include <wbemidl.h>
#pragma comment(lib, "wbemuuid.lib")
IWbemLocator *pIWbemLocator = NULL;

HRESULT hRes = CoCreateInstance (
            CLSID_WbemAdministrativeLocator,
            NULL ,
            CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER , 
            IID_IUnknown ,
            ( void ** ) &pIWbemLocator
            ) ;

IWbemServices *pWbemServices = NULL;

if (SUCCEEDED(hRes))
{
    hRes = pIWbemLocator->ConnectServer(
                L"root\\CIMV2",  // Namespace
                NULL,          // Userid
                NULL,           // PW
                NULL,           // Locale
                0,              // flags
                NULL,           // Authority
                NULL,           // Context
                &pWbemServices
                );

pIWbemLocator->Release(); // Free memory resources.

// Use pWbemServices

}

// Clean up
pWbemServices->Release();

Configuration requise

   
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête wbemcli.h (include Wbemidl.h)

Voir aussi

API COM pour WMI

Création de fournisseurs WMI

Manipulation des informations de classe et d’instance

Fourniture de données à WMI en écrivant un fournisseur