Compartilhar via


Método Provider::ExecMethod(ParsedObjectPath*,BSTR,long,CInstance*,CInstance*,MethodContext*) (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(
  ParsedObjectPath *pParsedObjectPath,
  BSTR             bstrMethodName,
  long             lFlags,
  CInstance        *pInParams,
  CInstance        *pOutParams,
  MethodContext    *pContext
);

Parâmetros

pParsedObjectPath

TBD

bstrMethodName

Nome do método que é invocado.

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 sinalizador a seguir é manipulado por (e filtrado) pelo WMI:

  • WBEM_FLAG_RETURN_IMMEDIATELY

pInParams

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

pOutParams

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

pContext

TBD

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 relação à sua classe. Portanto, você deverá 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