Interface IWbemServices (wbemcli.h)
A interface IWbemServices é usada por clientes e provedores para acessar serviços WMI. A interface é implementada por provedores WMI e WMI e é a interface WMI primária.
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);
Herança
A interface IWbemServices herda da interface IUnknown . O IWbemServices também tem esses tipos de membros:
Métodos
A interface IWbemServices tem esses métodos.
IWbemServices::CancelAsyncCall O método IWbemServices::CancelAsyncCall cancela todas as chamadas assíncronas pendentes no momento com base no ponteiro IWbemObjectSink, que foi originalmente passado para o método assíncrono. |
IWbemServices::CreateClassEnum O método IWbemServices::CreateClassEnum retorna um enumerador para todas as classes que atendem aos critérios de seleção. |
IWbemServices::CreateClassEnumAsync O método IWbemServices::CreateClassEnumAsync retorna uma enumeração de todas as classes compatíveis com o provedor de classe. |
IWbemServices::CreateInstanceEnum O método IWbemServices::CreateInstanceEnum cria um enumerador que retorna as instâncias de uma classe especificada de acordo com os critérios de seleção especificados pelo usuário. |
IWbemServices::CreateInstanceEnumAsync O método IWbemServices::CreateInstanceEnumAsync cria um enumerador que retorna as instâncias de uma classe especificada de acordo com os critérios de seleção especificados pelo usuário. |
IWbemServices::D eleteClass O método IWbemServices::D eleteClass exclui a classe especificada do namespace atual. |
IWbemServices::D eleteClassAsync O método IWbemServices::D eleteClassAsync exclui a classe especificada do namespace atual. |
IWbemServices::DeleteInstance O método IWbemServices::D eleteInstance exclui uma instância de uma classe existente no namespace atual. |
IWbemServices::D eleteInstanceAsync O método IWbemServices::D eleteInstanceAsync exclui de forma assíncrona uma instância de uma classe existente no namespace atual. A confirmação ou falha da operação é relatada por meio da interface IWbemObjectSink implementada pelo chamador. |
IWbemServices::ExecMethod Executa um método exportado por um objeto CIM. |
IWbemServices::ExecMethodAsync Executa de forma assíncrona um método exportado por um objeto CIM. |
IWbemServices::ExecNotificationQuery O método IWbemServices::ExecNotificationQuery executa uma consulta para receber eventos. A chamada retorna imediatamente, e o usuário pode sondar o enumerador retornado para eventos à medida que eles chegam. A liberação do enumerador retornado cancela a consulta. |
IWbemServices::ExecNotificationQueryAsync O método IWbemServices::ExecNotificationQueryAsync executa a mesma tarefa que IWbemServices::ExecNotificationQuery, exceto que os eventos são fornecidos ao manipulador de resposta especificado até que CancelAsyncCall seja chamado para interromper a notificação de evento. |
IWbemServices::ExecQuery O método IWbemServices::ExecQuery executa uma consulta para recuperar objetos. |
IWbemServices::ExecQueryAsync O método IWbemServices::ExecQueryAsync executa uma consulta para recuperar objetos de forma assíncrona. |
IWbemServices::GetObject O método IWbemServices::GetObject recupera uma classe ou instância. Esse método recupera apenas objetos do namespace associado ao objeto IWbemServices atual. |
IWbemServices::GetObjectAsync O método IWbemServices::GetObjectAsync recupera um objeto, uma definição de classe ou uma instância, com base em seu caminho. |
IWbemServices::OpenNamespace O método IWbemServices::OpenNamespace fornece ao chamador um novo ponteiro IWbemServices que tem o namespace filho especificado como seu contexto operacional. |
IWbemServices::PutClass O método IWbemServices::P utClass cria uma nova classe ou atualiza uma existente. A classe especificada pelo parâmetro pObject deve ter sido inicializada corretamente com todos os valores de propriedade necessários. |
IWbemServices::PutClassAsync O método IWbemServices::P utClassAsync cria uma nova classe ou atualiza uma existente. |
IWbemServices::PutInstance O método IWbemServices::P utInstance cria ou atualiza uma instância de uma classe existente. A instância é gravada no repositório da WMI. |
IWbemServices::PutInstanceAsync O método IWbemServices::P utInstanceAsync cria ou atualiza de forma assíncrona uma instância de uma classe existente. O relatório de confirmação ou erro de atualização é fornecido por meio da interface IWbemObjectSink implementada pelo chamador. |
IWbemServices::QueryObjectSink O método IWbemServices::QueryObjectSink permite que o chamador obtenha um manipulador de notificação exportado pelo Gerenciamento do Windows. |
Comentários
Os provedores que implementam a interface IWbemServices devem seguir a semântica documentada de cada método implementado; e os provedores devem dar suporte aos códigos de retorno de erro especificados. O WMI implementa todos os métodos e, normalmente, cada provedor implementa um pequeno subconjunto da funcionalidade disponível na interface. Os provedores devem retornar WBEM_E_PROVIDER_NOT_CAPABLE para qualquer método que não implementem.
Todos os ponteiros de interface de saída de qualquer método IWbemServices devem ser inicializados para NULL antes de chamar o método de interface. Por exemplo, chamadas para o método IWbemServices::GetObject retornam um ponteiro de interface IWbemClassObject que deve ser pré-inicializado para NULL antes da chamada do método IWbemServices::GetObject .
Exemplos
Para obter vários exemplos de C++ que usam IWbemServices, consulte a seção Exemplos de aplicativo WMI C++ .
O exemplo de código a seguir mostra como um provedor pode obter um ponteiro IWbemServices . O código requer as instruções e referências #include a seguir para compilar.
#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();
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Servidor mínimo com suporte | Windows Server 2008 |
Plataforma de Destino | Windows |
Cabeçalho | wbemcli.h (inclua Wbemidl.h) |