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 propiedad InstanceName para el bloque.

[in] MethodId

Especifica el identificador del 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 WmiMethodId calificador 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 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 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 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.

Observaciones

ioWMIExecuteMethod determina qué controladores pueden admitir la clase WMI y el nombre de instancia especificados. Emite una solicitud IRP_MN_EXECUTE_METHOD a cada controlador de este tipo. A continuación, el controlador que exporta la instancia del bloque de datos con propiedad InstanceName coincidentes ejecuta el método WMI especificado.

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_EXECUTE_METHOD

ioWMIOpenBlock