struttura WMILIB_CONTEXT (wmilib.h)

La struttura WMILIB_CONTEXT fornisce informazioni di registrazione per i blocchi di dati e i blocchi eventi di un driver e definisce i punti di ingresso per le routine di callback della libreria WMI del driver.

Sintassi

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;

Membri

GuidCount

Specifica il numero di blocchi registrati dal driver.

GuidList

Puntatore a una matrice di GuidCountstrutture WMIGUIDREGINFO contenenti informazioni di registrazione per ogni blocco.

QueryWmiRegInfo

Puntatore alla routine DpWmiQueryReginfo del driver, un punto di ingresso obbligatorio per i driver che chiamano routine di supporto della libreria WMI.

QueryWmiDataBlock

Puntatore alla routine DpWmiQueryDataBlock del driver, un punto di ingresso obbligatorio per i driver che chiamano routine di supporto della libreria WMI.

SetWmiDataBlock

Puntatore alla routine DpWmiSetDataBlock del driver, che è un punto di ingresso facoltativo per i driver che chiamano routine di supporto della libreria WMI. Se il driver non implementa questa routine, deve impostare questo membro su NULL. In questo caso, WMI restituisce STATUS_WMI_READ_ONLY al chiamante in risposta a qualsiasi richiesta di IRP_MN_CHANGE_SINGLE_INSTANCE.

SetWmiDataItem

Puntatore alla routine DpWmiSetDataItem del driver , che è un punto di ingresso facoltativo per i driver che chiamano routine di supporto della libreria WMI. Se il driver non implementa questa routine, deve impostare questo membro su NULL. In questo caso, WMI restituisce STATUS_WMI_READ_ONLY al chiamante in risposta a qualsiasi richiesta di IRP_MN_CHANGE_SINGLE_ITEM.

ExecuteWmiMethod

Puntatore alla routine DpWmiExecuteMethod del driver, che è un punto di ingresso facoltativo per i driver che chiamano routine di supporto della libreria WMI. Se il driver non implementa questa routine, deve impostare questo membro su NULL. In questo caso, WMI restituisce STATUS_INVALID_DEVICE_REQUEST al chiamante in risposta a qualsiasi richiesta di IRP_MN_EXECUTE_METHOD.

WmiFunctionControl

Puntatore alla routine DpWmiFunctionControl del driver, che è un punto di ingresso facoltativo per i driver che chiamano routine di supporto della libreria WMI. Se il driver non implementa questa routine, deve impostare questo membro su NULL. In questo caso, WMI restituisce STATUS_SUCCESS al chiamante in risposta a qualsiasi IRP_MN_ENABLE_ XXX o IRP_MN_DISABLE_richiesta di XXX.

Osservazioni

Un driver che gestisce i runtime di integrazione WMI chiamando routine di supporto della libreria WMI archivia una struttura di WMILIB_CONTEXT inizializzata (o un puntatore a tale struttura) nell'estensione del dispositivo. Un driver può usare la stessa struttura WMILIB_CONTEXT per più oggetti dispositivo se ogni oggetto dispositivo fornisce lo stesso set di blocchi di dati.

Quando il driver riceve una richiesta di IRP_MJ_SYSTEM_CONTROL, chiama WmiSystemControl con un puntatore alla struttura WMILIB_CONTEXT, un puntatore all'oggetto dispositivo e un puntatore all'IRP. WmiSystemControl determina se l'IRP contiene una richiesta WMI e, in tal caso, gestisce la richiesta chiamando la routine DpWmiXxx appropriata del driver.

La memoria per questa struttura può essere allocata dal pool di paging.

Fabbisogno

Requisito Valore
intestazione wmilib.h (include Wmilib.h)

Vedere anche

DpWmiExecuteMethod

DpWmiFunctionControl

DpWmiQueryDataBlock

DpWmiQueryReginfo

DpWmiSetDataBlock

DpWmiSetDataItem

WMIGUIDREGINFO

WmiSystemControl