Compartilhar via


Método IWbemServices::ExecMethod (wbemcli.h)

O método IWbemServices::ExecMethod executa um método exportado por um objeto CIM. A chamada de método é encaminhada para o provedor apropriado em que ela é executada. Informações e status são retornados ao chamador, que é bloqueado até que a chamada seja concluída.

Os métodos não são implementados diretamente pelo Gerenciamento do Windows, mas são exportados por provedores de método. Para qualquer classe CIM específica, os métodos disponíveis e seus parâmetros devem ser especificados na documentação do provedor em questão.

Para obter mais informações sobre como executar métodos, consulte Chamando um método.

Sintaxe

HRESULT ExecMethod(
  [in]  const BSTR       strObjectPath,
  [in]  const BSTR       strMethodName,
  [in]  long             lFlags,
  [in]  IWbemContext     *pCtx,
  [in]  IWbemClassObject *pInParams,
  [out] IWbemClassObject **ppOutParams,
  [out] IWbemCallResult  **ppCallResult
);

Parâmetros

[in] strObjectPath

BSTR válido que contém o caminho do objeto para o qual o método é executado.

[in] strMethodName

Nome do método para o objeto.

[in] lFlags

Esse parâmetro pode ser definido como 0 para torná-lo uma chamada síncrona. Para tornar essa uma chamada semissíncrona, defina lFlags como WBEM_FLAG_RETURN_IMMEDIATELY, forneça um ponteiro válido para o parâmetro ppCallResult e essa chamada retornará imediatamente. Para obter mais informações, confira Como chamar um método.

[in] pCtx

Normalmente NULL; caso contrário, esse é um ponteiro para um objeto IWbemContext que pode ser usado pelo provedor que executa o método . Os valores no objeto de contexto devem ser especificados na documentação do provedor em questão. Para obter mais informações sobre esse parâmetro, consulte Fazendo chamadas para WMI.

[in] pInParams

Poderá ser NULL se nenhum parâmetro for necessário para executar o método. Caso contrário, isso apontará para um IWbemClassObject que contém as propriedades que atuam como parâmetros de entrada para a execução do método. O conteúdo do objeto é específico do método e faz parte da especificação do provedor em questão. Para obter mais informações sobre como construir parâmetros de entrada, consulte Creating Parameters Objects in C++.

[out] ppOutParams

Se não for NULL, receberá um ponteiro para os parâmetros de saída e os valores retornados para a execução do método. O conteúdo desse objeto é específico do método e faz parte da especificação do provedor em questão. O chamador deve chamar Release no objeto retornado quando ele não for mais necessário.

[out] ppCallResult

Se FOR NULL, isso não será usado. Se ppCallResult for especificado, ele deverá ser definido para apontar para NULL na entrada. Nesse caso, a chamada retorna imediatamente com WBEM_S_NO_ERROR. O parâmetro ppCallResult recebe um ponteiro para um novo objeto IWbemCallResult , que deve ser sondado para obter o resultado da execução do método usando o método GetCallStatus . Os parâmetros out para a chamada estão disponíveis chamando IWbemCallResult::GetResultObject.

Retornar valor

Esse método retorna um HRESULT que indica o status da chamada de método. A lista a seguir lista o valor contido em um HRESULT.

Em caso de falha, você pode obter todas as informações disponíveis da função COM GetErrorInfo.

Códigos de erro específicos de COM também poderão ser retornados se problemas de rede fizerem com que você perca a conexão remota com o Gerenciamento do Windows.

Comentários

Se ppOutParams não for NULL, o cliente poderá determinar o tipo de valor retornado do método examinando a propriedade ReturnValue do objeto apontado por ppOutParams.

Requisitos

   
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho wbemcli.h (include Wbemidl.h)
Biblioteca Wbemuuid.lib
DLL Fastprox.dll; Esscli.dll; FrameDyn.dll; FrameDynOS.dll; Ntevt.dll; Stdprov.dll; Viewprov.dll; Wbemcomn.dll; Wbemcore.dll; Wbemess.dll; Wbemsvc.dll; Wmipicmp.dll; Wmidcprv.dll; Wmipjobj.dll; Wmiprvsd.dll

Confira também

Como chamar um método

IWbemCallResult::GetResultObject

IWbemServices

IWbemServices::ExecMethodAsync