Compartir a través de


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 DpWmiQueryReginfo del controlador, que es un punto de entrada necesario para los controladores que llaman a rutinas de compatibilidad con la biblioteca WMI.

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 , 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_SUCCESS al autor de la llamada en respuesta a cualquier solicitud de IRP_MN_ENABLE_XXX o IRP_MN_DISABLE_XXX.

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

dpWmiExecuteMethod

dpWmiFunctionControl

dpWmiQueryDataBlock

DpWmiQueryReginfo

dpWmiSetDataBlock

dpWmiSetDataItem

WMIGUIDREGINFO

WmiSystemControl de