Função IoWMIExecuteMethod (wdm.h)

A rotina IoWMIExecuteMethod executa um método de classe WMI na instância de bloco de dados WMI especificada.

Sintaxe

NTSTATUS IoWMIExecuteMethod(
  [in]      PVOID           DataBlockObject,
  [in]      PUNICODE_STRING InstanceName,
  [in]      ULONG           MethodId,
  [in]      ULONG           InBufferSize,
  [in, out] PULONG          OutBufferSize,
  [in, out] PUCHAR          InOutBuffer
);

Parâmetros

[in] DataBlockObject

Ponteiro para um objeto de bloco de dados WMI. O chamador abre o objeto de bloco de dados para a classe WMI com IoWMIOpenBlock. O objeto deve ser aberto com o direito de acesso WMIGUID_EXECUTE.

[in] InstanceName

Especifica o nome da instância do bloco de dados. Esse valor corresponde ao valor da propriedade InstanceName do bloco.

[in] MethodId

Especifica a ID do item de método para o método a ser definido. O valor desse parâmetro corresponde ao valor declarado no qualificador WmiMethodId para o método .

[in] InBufferSize

Especifica o tamanho, em bytes, dos dados de entrada para o método . Os dados de entrada reais são passados no buffer apontado pelo parâmetro InOutBuffer .

[in, out] OutBufferSize

Ponteiro para um ULONG que especifica o tamanho esperado, bytes, da saída de dados pelo método . Os dados de saída reais são retornados no buffer apontado pelo parâmetro InOutBuffer . Se a rotina for bem-sucedida, ela atualizará o local de memória para especificar o número de bytes realmente armazenados no InOutBuffer. Se a rotina falhar com STATUS_BUFFER_TOO_SMALL, ela retornará o número de bytes necessários para retornar os dados.

[in, out] InOutBuffer

Ponteiro para o buffer em que o chamador passa os dados de entrada do método WMI e recebe os dados de saída do método WMI.

Retornar valor

A rotina retorna um código NTSTATUS. Os possíveis valores retornados incluem:

Código de retorno Descrição
STATUS_SUCCESS
A operação foi realizada com êxito. A rotina retorna os dados WMI no buffer apontado pelo parâmetro InOutBuffer . A rotina também retorna o tamanho, em bytes, dos dados retornados no local da memória apontado pelo parâmetro OutBufferSize .
STATUS_WMI_GUID_NOT_FOUND
Nenhum driver implementa a classe WMI.
STATUS_WMI_INSTANCE_NOT_FOUND
Nenhum driver implementa uma instância da classe WMI com a propriedade InstanceName igual ao valor especificado no parâmetro InstanceName .
STATUS_WMI_ITEMID_NOT_FOUND
A classe WMI não contém um método com ID de método igual ao valor de MethodId.
STATUS_BUFFER_TOO_SMALL
O buffer passado pelo chamador no parâmetro OutBuffer é muito pequeno. A rotina retorna o tamanho do buffer necessário no local de memória apontado pelo parâmetro InOutBufferSize .
STATUS_WMI_GUID_DISCONNECTED
O GUID do WMI não está mais disponível ou nunca esteve disponível.

Comentários

IoWMIExecuteMethod determina quais drivers podem dar suporte à classe WMI especificada e ao nome da instância. Ele emite uma solicitação de IRP_MN_EXECUTE_METHOD para cada driver desse tipo. O driver que exporta a instância do bloco de dados com a propriedade InstanceName correspondente executa o método WMI especificado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows XP e versões posteriores do sistema operacional Windows.
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Confira também

IRP_MN_EXECUTE_METHOD

IoWMIOpenBlock