Compartir a través de


Función IoWMIQuerySingleInstance (wdm.h)

La rutina ioWMIQuerySingleInstance devuelve la instancia especificada de un bloque de datos WMI.

Sintaxis

NTSTATUS IoWMIQuerySingleInstance(
  [in]            PVOID           DataBlockObject,
  [in]            PUNICODE_STRING InstanceName,
  [in, out]       PULONG          InOutBufferSize,
  [out, optional] PVOID           OutBuffer
);

Parámetros

[in] DataBlockObject

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

[in] InstanceName

Especifica el nombre de la instancia del bloque de datos. Este valor corresponde al valor de propiedad InstanceName para el bloque.

[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 estructura WNODE_SINGLE_INSTANCE de tamaño variable. 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_WMI_GUID_NOT_FOUND
Ningún controlador implementa la clase WMI especificada.
STATUS_WMI_INSTANCE_NOT_FOUND
Ningún controlador implementa una instancia de la clase WMI con propiedad InstanceName igual al valor especificado en el parámetro InstanceName.
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

ioWMIQuerySingleInstance determina qué controladores pueden admitir la clase WMI especificada con el nombre de instancia especificado y emite una solicitud de IRP_MN_QUERY_SINGLE_INSTANCE a cada controlador de este tipo. El controlador que exporta la instancia del bloque de datos con propiedad InstanceName coincidentes devuelve los datos adecuados.

Para consultar varias clases WMI y nombres de instancia, use la rutina de IoWMIQuerySingleInstanceMultiple. Los controladores pueden usar la rutina ioWMISetSingleInstance para actualizar la 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

ioWMIQuerySingleInstanceMultiple

ioWMISetSingleInstance