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 |
---|---|
|
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 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. |
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 |