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 constitue l’interface WMI principale.

    IWbemClassObject *pObj = NULL;

    // The pWbemSvc pointer is of type IWbemServices*
    // BSTR is not compatible with wchar_t, need to allocate.
    BSTR path = SysAllocString(L"path");
    pWbemSvc->GetObject(path, 0, 0, &pObj, 0);
    SysFreeString(path);

Héritage

L’interface IWbemServices hérite de l’interface IUnknown . IWbemServices a également les types de membres suivants :

Méthodes

L’interface IWbemServices a ces méthodes.

 
IWbemServices ::CancelAsyncCall

La méthode IWbemServices ::CancelAsyncCall annule tous les appels asynchrones en attente basés sur le 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::DeleteInstance

La méthode IWbemServices ::D eleteInstance supprime un 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 un 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 manière 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 est retourné immédiatement et l’utilisateur peut interroger l’énumérateur retourné pour les événements qui 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 un 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, une définition de classe ou 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::PutClass

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::PutClassAsync

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

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

La méthode IWbemServices ::P utInstanceAsync crée ou met à jour de manière asynchrone une instance d’une classe existante. La confirmation de mise à jour ou le rapport d’erreurs est fourni 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.

Remarques

Les fournisseurs qui implémentent l’interface IWbemServices doivent suivre la sémantique documentée de chaque méthode qu’ils implémentent ; les fournisseurs et doivent prendre en charge les codes de retour d’erreur spécifiés. WMI implémente toutes les méthodes et, en règle générale, 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 d’une 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 la méthode IWbemServices ::GetObject .

Exemples

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

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

#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))
{
    BSTR namespace = SysAllocString(L"root\\CIMV2");
    hRes = pIWbemLocator->ConnectServer(
                namespace,      // Namespace
                NULL,           // Userid
                NULL,           // PW
                NULL,           // Locale
                0,              // flags
                NULL,           // Authority
                NULL,           // Context
                &pWbemServices
                );
    SysFreeString(namespace);            

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

    // Use pWbemServices

}

// Clean up
pWbemServices->Release();

Configuration requise

Condition requise Valeur
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