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 |
---|---|
|
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 . |
|
Nenhum driver implementa a classe WMI. |
|
Nenhum driver implementa uma instância da classe WMI com a propriedade InstanceName igual ao valor especificado no parâmetro InstanceName . |
|
A classe WMI não contém um método com ID de método igual ao valor de MethodId. |
|
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 . |
|
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 |