estructura WMILIB_CONTEXT (wmilib.h)
La estructura WMILIB_CONTEXT proporciona información de registro para los bloques de datos y los bloques de eventos de un controlador y define los puntos de entrada para las rutinas de devolución de llamada de la biblioteca WMI del controlador.
Sintaxis
typedef struct _WMILIB_CONTEXT {
ULONG GuidCount;
PWMIGUIDREGINFO GuidList;
PWMI_QUERY_REGINFO QueryWmiRegInfo;
PWMI_QUERY_DATABLOCK QueryWmiDataBlock;
PWMI_SET_DATABLOCK SetWmiDataBlock;
PWMI_SET_DATAITEM SetWmiDataItem;
PWMI_EXECUTE_METHOD ExecuteWmiMethod;
PWMI_FUNCTION_CONTROL WmiFunctionControl;
} WMILIB_CONTEXT, *PWMILIB_CONTEXT;
Miembros
GuidCount
Especifica el número de bloques registrados por el controlador.
GuidList
Puntero a una matriz de GuidCountestructuras WMIGUIDREGINFO que contienen información de registro para cada bloque.
QueryWmiRegInfo
Puntero a la rutina de
QueryWmiDataBlock
Puntero a la rutina DpWmiQueryDataBlock del controlador, que es un punto de entrada necesario para los controladores que llaman a las rutinas de compatibilidad de la biblioteca WMI.
SetWmiDataBlock
Puntero a la rutina DpWmiSetDataBlock del controlador, que es un punto de entrada opcional para los controladores que llaman a rutinas de compatibilidad con la biblioteca WMI. Si el controlador no implementa esta rutina, debe establecer este miembro en NULL. En este caso, WMI devuelve STATUS_WMI_READ_ONLY al autor de la llamada en respuesta a cualquier solicitud de IRP_MN_CHANGE_SINGLE_INSTANCE.
SetWmiDataItem
Puntero a la rutina de DpWmiSetDataItem del controlador, que es un punto de entrada opcional para los controladores que llaman a rutinas de compatibilidad con la biblioteca WMI. Si el controlador no implementa esta rutina, debe establecer este miembro en NULL. En este caso, WMI devuelve STATUS_WMI_READ_ONLY al autor de la llamada en respuesta a cualquier solicitud de IRP_MN_CHANGE_SINGLE_ITEM.
ExecuteWmiMethod
Puntero a la rutina de DpWmiExecuteMethod del controlador, que es un punto de entrada opcional para los controladores que llaman a rutinas de compatibilidad con la biblioteca WMI. Si el controlador no implementa esta rutina, debe establecer este miembro en NULL. En este caso, WMI devuelve STATUS_INVALID_DEVICE_REQUEST al autor de la llamada en respuesta a cualquier solicitud de IRP_MN_EXECUTE_METHOD.
WmiFunctionControl
Puntero a la rutina dpWmiFunctionControl del controlador
Observaciones
Un controlador que controla los IRP de WMI mediante una llamada a rutinas de compatibilidad con la biblioteca WMI almacena una estructura de WMILIB_CONTEXT inicializada (o un puntero a dicha estructura) en su extensión de dispositivo. Un controlador puede usar la misma estructura de WMILIB_CONTEXT para varios objetos de dispositivo si cada objeto de dispositivo proporciona el mismo conjunto de bloques de datos.
Cuando el controlador recibe una solicitud de IRP_MJ_SYSTEM_CONTROL, llama a WmiSystemControl con un puntero a su estructura de WMILIB_CONTEXT, un puntero a su objeto de dispositivo y un puntero al IRP. WmiSystemControl determina si el IRP contiene una solicitud WMI y, si es así, controla la solicitud llamando a la rutina de dpWmiXxx adecuada del controlador.
La memoria de esta estructura se puede asignar desde el grupo paginado.
Requisitos
Requisito | Valor |
---|---|
encabezado de |
wmilib.h (include Wmilib.h) |
Consulte también
WmiSystemControl de