Método Provider::ExecMethod(constCInstance&,constBSTR,CInstance*,CInstance*,long) (provider.h)

[A classe Provider faz parte do WMI Provider Framework que agora é considerado em estado final e nenhum desenvolvimento, melhoria ou atualização adicional estará disponível para problemas não relacionados à segurança que afetarem essas bibliotecas. As APIs de MI devem ser usadas para todos os novos desenvolvimentos.]

O método ExecMethod é chamado pelo WMI para invocar um método em uma classe ou instância.

Sintaxe

HRESULT ExecMethod(
  [ref] const CInstance & cInstance,
        const BSTR        bstrMethodName,
        CInstance         *pInParams,
        CInstance         *pOutParams,
        long              lFlags
);

Parâmetros

[ref] cInstance

Propriedades principais da instância em questão se o cliente chamou um método de instância. Se o cliente chamar um método estático, Instance conterá um objeto de classe.

bstrMethodName

Nome do método invocado.

pInParams

Ponteiro para os parâmetros de entrada do método.

pOutParams

Ponteiro para os parâmetros de saída do método.

lFlags

Máscara de bits de sinalizadores com informações sobre a operação do método execute. Esse é o valor especificado pelo cliente no método IWbemServices::ExecMethod . Poucos clientes usam os parâmetros lFlags . Você pode ignorar lFlags com segurança na maioria das implementações do provedor.

O seguinte sinalizador é manipulado por (e filtrado) pelo WMI:

  • WBEM_FLAG_RETURN_IMMEDIATELY

Retornar valor

A implementação do provedor de estrutura padrão desse método retorna WBEM_E_PROVIDER_NOT_CAPABLE ao método de chamada. O método IWbemServices::ExecMethod lista os valores retornados mais comuns, embora você possa optar por retornar qualquer código de retorno COM.

Os valores retornados para métodos podem ser um dos dois tipos:

  • HRESULT é usado para indicar erros de tipo WMI: WBEM_E_OUT_OF_MEMORY, WBEM_E_NOT_FOUND e assim por diante.
  • O valor retornado do método (como uint32) retorna o resultado do método .

Comentários

O WMI chama ExecMethod quando um cliente chama IWbemServices::ExecMethod em sua classe. Portanto, você deve implementar o ExecMethod se o provedor der suporte a um ou mais métodos. A lista a seguir descreve uma implementação comum do ExecMethod:

  1. Determine qual método o cliente chamou examinando o parâmetro bstrMethodName .
  2. Recupere os parâmetros de entrada do parâmetro pInParams , usando os métodos Get da classe CInstance , como CInstance::GetCHString.

    Um método pode ter parâmetros de entrada, parâmetros de saída, parâmetros de entrada e saída ou nenhum parâmetro de entrada ou saída.

  3. Defina os parâmetros de saída no parâmetro pOutParams , usando os métodos Set da classe CInstance , como CInstance::SetByte ou CInstance::SetStringArray.

    Além de declarar as propriedades [out], conforme especificado na declaração de retorno, você também deve declarar o valor retornado para o método, conforme definido na propriedade ReturnValue . Você não precisará declarar um valor retornado se o valor retornado for nulo.

Para obter mais informações, consulte IWbemServices::ExecMethod.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho provider.h (inclua FwCommon.h)
Biblioteca FrameDyn.lib
DLL FrameDynOS.dll; FrameDyn.dll