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 |
---|---|
|
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 . |
|
Ningún controlador implementa la clase WMI. |
|
Ningún controlador implementa una instancia de la clase WMI con la propiedad InstanceName igual al valor especificado en el parámetro InstanceName . |
|
La clase WMI no contiene un método con el identificador de método igual al valor de MethodId. |
|
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 . |
|
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 |