Função IoWMIQuerySingleInstanceMultiple (wdm.h)
A rotina IoWMIQuerySingleInstanceMultiple retorna todas as instâncias de bloco de dados WMI que implementam as classes WMI especificadas com os nomes de instância especificados.
Sintaxe
NTSTATUS IoWMIQuerySingleInstanceMultiple(
[in] PVOID *DataBlockObjectList,
[in] PUNICODE_STRING InstanceNames,
[in] ULONG ObjectCount,
[in, out] PULONG InOutBufferSize,
[out, optional] PVOID OutBuffer
);
Parâmetros
[in] DataBlockObjectList
Ponteiro para uma matriz de ponteiros de objetos de bloco de dados WMI. O chamador abre um objeto de bloco de dados para cada classe WMI com a rotina IoWMIOpenBlock . Cada objeto deve ser aberto com o direito de acesso WMIGUID_QUERY.
[in] InstanceNames
Ponteiro para uma matriz de UNICODE_STRING estruturas que contêm nomes de instância. O nnome da instância na matriz corresponde ao valor da propriedade InstanceName para a nª classe WMI especificada na matriz apontada pelo parâmetro DataBlockObjectList .
[in] ObjectCount
Especifica o número de entradas nas matrizes passadas nos parâmetros DataBlockObjectList e InstanceNames .
[in, out] InOutBufferSize
Ponteiro para um local de memória que especifica o tamanho do buffer passado no parâmetro OutBuffer . Se a rotina for bem-sucedida, ela atualizará o local de memória para especificar o número de bytes realmente armazenados no OutBuffer. Se a rotina falhar com STATUS_BUFFER_TOO_SMALL, ela retornará o número de bytes necessários para retornar os dados.
[out, optional] OutBuffer
Ponteiro para o buffer em que a rotina retorna os dados WMI. A rotina retorna uma sequência de estruturas de WNODE_SINGLE_INSTANCE de tamanho variável, uma para cada instância de bloco de dados. O membro WnodeHeader.Linkage de cada estrutura WNODE_SINGLE_INSTANCE contém o deslocamento do início do WNODE_SINGLE_INSTANCE atual até o início do próximo WNODE_SINGLE_INSTANCE. O bloco final na cadeia tem WnodeHeader.Linkage definido como zero. Cada instância de bloco de dados distinto corresponde a uma única classe WMI correspondente e ao nome da instância. OutBuffer deve apontar para um buffer alocado do pool nãopagado.
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 OutBuffer . A rotina também retorna o tamanho, em bytes, dos dados retornados no local da memória apontado pelo parâmetro InOutBufferSize . |
|
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 . |
Comentários
IoWMIQuerySingleInstanceMultiple determina quais drivers podem dar suporte às classes WMI especificadas e nomes de instância e emite uma solicitação IRP_MN_QUERY_SINGLE_INSTANCE para cada driver. Cada driver que exporta a instância do bloco de dados com a propriedade InstanceName correspondente retorna os dados apropriados.
Se nenhum driver implementar nenhuma das classes WMI especificadas e nomes de instância, a rotina retornará STATUS_SUCCESS. Ele também retorna um valor igual a zero no local de memória apontado pelo parâmetro InOutBufferSize .
Para consultar uma única classe WMI e um nome de instância, use a rotina IoWMIQuerySingleInstance . Os drivers podem usar a rotina IoWMISetSingleInstance para atualizar uma instância de classe.
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 |