Función IoWMIQueryAllDataMultiple (wdm.h)

La rutina IoWMIQueryAllDataMultiple devuelve todos los bloques de datos WMI que implementan uno de un conjunto de clases WMI.

Sintaxis

NTSTATUS IoWMIQueryAllDataMultiple(
  [in]            PVOID  *DataBlockObjectList,
  [in]            ULONG  ObjectCount,
  [in, out]       PULONG InOutBufferSize,
  [out, optional] PVOID  OutBuffer
);

Parámetros

[in] DataBlockObjectList

Puntero a una matriz de punteros a objetos de bloque de datos WMI. El autor de la llamada abre un objeto de bloque de datos para cada clase WMI con la rutina IoWMIOpenBlock . Cada objeto debe abrirse con el derecho de acceso WMIGUID_QUERY.

[in] ObjectCount

Especifica el número de entradas de la matriz pasadas en el parámetro DataBlockObjectList .

[in, out] InOutBufferSize

Puntero a una ubicación de memoria que especifica el tamaño del búfer pasado en el parámetro OutBuffer . Si la rutina se realiza correctamente, actualiza la ubicación de memoria para especificar el número de bytes almacenados realmente en OutBuffer. Si se produce un error en la rutina con el código de estado de STATUS_BUFFER_TOO_SMALL, devuelve el número de bytes necesarios para devolver los datos.

[out, optional] OutBuffer

Puntero al búfer donde la rutina devuelve los datos WMI. La rutina devuelve una secuencia de estructuras de WNODE_ALL_DATA de tamaño variable, una para cada conjunto de bloques de datos devueltos. El miembro WnodeHeader.Linkage de cada estructura de WNODE_ALL_DATA contiene el desplazamiento desde el principio del WNODE_ALL_DATA actual hasta el principio del siguiente WNODE_ALL_DATA. El bloque final de la cadena tiene WnodeHeader.Linkage establecido en cero. OutBuffer debe apuntar a un búfer asignado desde un grupo no paginado.

Valor devuelto

La rutina devuelve un código NTSTATUS. Entre los valores devueltos posibles se incluyen:

Código devuelto Descripción
STATUS_SUCCESS
La operación se realizó correctamente. La rutina devuelve los datos WMI del búfer al que apunta el parámetro OutBuffer . La rutina también devuelve el tamaño, en bytes, de los datos devueltos en la ubicación de memoria a la que apunta el parámetro InOutBufferSize .
STATUS_BUFFER_TOO_SMALL
El búfer pasado por el autor de la llamada en el parámetro OutBuffer es demasiado pequeño. La rutina devuelve el tamaño de búfer necesario en la ubicación de memoria a la que apunta el parámetro InOutBufferSize .

Comentarios

IoWMIQueryAllDataMultiple determina qué controladores admiten las clases WMI especificadas y emite una solicitud de IRP_MN_QUERY_ALL_DATA a cada controlador de este tipo.

Si ningún controlador implementa ninguna de las clases WMI especificadas, la rutina devuelve STATUS_SUCCESS también devuelve un valor de cero en la ubicación de memoria a la que apunta el parámetro InOutBufferSize .

Para consultar una sola clase WMI, use IoWMIQueryAllData.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible en Windows XP y versiones posteriores del sistema operativo Windows.
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Consulte también

IRP_MN_QUERY_ALL_DATA

IoWMIOpenBlock

IoWMIQueryAllData