Compartir a través de


Función IoWMIQuerySingleInstanceMultiple (wdm.h)

La rutina IoWMIQuerySingleInstanceMultiple devuelve todas las instancias de bloque de datos WMI que implementan las clases WMI especificadas con los nombres de instancia especificados.

Sintaxis

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

Parámetros

[in] DataBlockObjectList

Puntero a una matriz de punteros de 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] InstanceNames

Puntero a una matriz de UNICODE_STRING estructuras que contienen nombres de instancia. El nnombre de instancia de la matriz corresponde al valor de la propiedad InstanceName para la nclase WMI especificada en la matriz a la que apunta el parámetro DataBlockObjectList.

[in] ObjectCount

Especifica el número de entradas de las matrices pasadas en los parámetros DataBlockObjectList y InstanceNames.

[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 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_SINGLE_INSTANCE de tamaño variable, una para cada instancia de bloque de datos. El miembro WnodeHeader.Linkage de cada estructura de WNODE_SINGLE_INSTANCE contiene el desplazamiento desde el principio del WNODE_SINGLE_INSTANCE actual hasta el principio del siguiente WNODE_SINGLE_INSTANCE. El bloque final de la cadena tiene WnodeHeader.Linkage establecido en cero. Cada instancia de bloque de datos distinta corresponde a un único nombre de instancia y clase WMI coincidente. OutBuffer deben apuntar a un búfer asignado desde un grupo no paginado.

Valor devuelto

La rutina devuelve un código NTSTATUS. Entre los posibles valores devueltos 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.

Observaciones

ioWMIQuerySingleInstanceMultiple determina qué controladores pueden admitir las clases WMI y los nombres de instancia especificados, y emite una solicitud de IRP_MN_QUERY_SINGLE_INSTANCE a cada controlador de este tipo. Cada controlador que exporta la instancia del bloque de datos con propiedad InstanceName coincidentes devuelve los datos adecuados.

Si ningún controlador implementa ninguna de las clases WMI y los nombres de instancia especificados, 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 un único nombre de instancia y clase WMI, use la rutina IoWMIQuerySingleInstance. Los controladores pueden usar la rutina ioWMISetSingleInstance para actualizar una instancia de clase.

Requisitos

Requisito Valor
cliente mínimo admitido Disponible en Windows XP y versiones posteriores del sistema operativo Windows.
de la plataforma de destino de Universal
encabezado de wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL <= APC_LEVEL

Consulte también

IRP_MN_QUERY_SINGLE_INSTANCE

ioWMIOpenBlock

IoWMIQuerySingleInstance

ioWMISetSingleInstance

UNICODE_STRING