Compartir a través de


Función IoWMIExecuteMethod (wdm.h)

La rutina IoWMIExecuteMethod ejecuta un método de clase WMI en la instancia de bloque de datos WMI especificada.

Sintaxis

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

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 IoWMIOpenBlock. El objeto debe abrirse con el derecho de acceso WMIGUID_EXECUTE.

[in] InstanceName

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

[in] MethodId

Especifica el identificador de elemento de método para el método que se va a establecer. El valor de este parámetro corresponde al valor declarado en el calificador WmiMethodId para el método .

[in] InBufferSize

Especifica el tamaño, en bytes, de los datos de entrada para el método . Los datos de entrada reales se pasan en el búfer al que apunta el parámetro InOutBuffer .

[in, out] OutBufferSize

Puntero a un ULONG que especifica el tamaño esperado, bytes, de la salida de datos por el método . Los datos de salida reales se devuelven en el búfer al que apunta el parámetro InOutBuffer . Si la rutina se realiza correctamente, actualiza la ubicación de memoria para especificar el número de bytes almacenados realmente en InOutBuffer. Si se produce un error en la rutina con STATUS_BUFFER_TOO_SMALL, devuelve el número de bytes necesarios para devolver los datos.

[in, out] InOutBuffer

Puntero al búfer donde el autor de la llamada pasa los datos de entrada del método WMI y recibe los datos de salida del método WMI.

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 InOutBuffer . 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 OutBufferSize .
STATUS_WMI_GUID_NOT_FOUND
Ningún controlador implementa la clase WMI.
STATUS_WMI_INSTANCE_NOT_FOUND
Ningún controlador implementa una instancia de la clase WMI con la propiedad InstanceName igual al valor especificado en el parámetro InstanceName .
STATUS_WMI_ITEMID_NOT_FOUND
La clase WMI no contiene un método con el identificador de método igual al valor de MethodId.
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 .
STATUS_WMI_GUID_DISCONNECTED
El GUID de WMI ya no está disponible o nunca estaba disponible.

Comentarios

IoWMIExecuteMethod determina qué controladores pueden admitir la clase WMI y el nombre de instancia especificados. Emite una solicitud de IRP_MN_EXECUTE_METHOD a cada controlador de este tipo. El controlador que exporta la instancia del bloque de datos con la propiedad InstanceName coincidente ejecuta el método WMI especificado.

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_EXECUTE_METHOD

IoWMIOpenBlock