Partager via


structure WMILIB_CONTEXT (wmilib.h)

La structure WMILIB_CONTEXT fournit des informations d’inscription pour les blocs de données et les blocs d’événements d’un pilote et définit des points d’entrée pour les routines de rappel de bibliothèque WMI du pilote.

Syntaxe

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;

Membres

GuidCount

Spécifie le nombre de blocs inscrits par le pilote.

GuidList

Pointeur vers un tableau de GuidCountWMIGUIDREGINFO structures qui contiennent des informations d’inscription pour chaque bloc.

QueryWmiRegInfo

Pointeur vers la routine DpWmiQueryReginfo du pilote, qui est un point d’entrée requis pour les pilotes qui appellent des routines de prise en charge de la bibliothèque WMI.

QueryWmiDataBlock

Pointeur vers la routine DpWmiQueryDataBlock du pilote, qui est un point d’entrée requis pour les pilotes qui appellent des routines de prise en charge de la bibliothèque WMI.

SetWmiDataBlock

Pointeur vers la routine DpWmiSetDataBlock du pilote, qui est un point d’entrée facultatif pour les pilotes qui appellent des routines de prise en charge de la bibliothèque WMI. Si le pilote n’implémente pas cette routine, il doit définir ce membre sur NULL . Dans ce cas, WMI retourne STATUS_WMI_READ_ONLY à l’appelant en réponse à n’importe quelle demande de IRP_MN_CHANGE_SINGLE_INSTANCE.

SetWmiDataItem

Pointeur vers la routine DpWmiSetDataItem du pilote, qui est un point d’entrée facultatif pour les pilotes qui appellent des routines de prise en charge de la bibliothèque WMI. Si le pilote n’implémente pas cette routine, il doit définir ce membre sur NULL . Dans ce cas, WMI retourne STATUS_WMI_READ_ONLY à l’appelant en réponse à n’importe quelle demande de IRP_MN_CHANGE_SINGLE_ITEM.

ExecuteWmiMethod

Pointeur vers la routine DpWmiExecuteMethod du pilote, qui est un point d’entrée facultatif pour les pilotes qui appellent des routines de prise en charge de la bibliothèque WMI. Si le pilote n’implémente pas cette routine, il doit définir ce membre sur NULL . Dans ce cas, WMI retourne STATUS_INVALID_DEVICE_REQUEST à l’appelant en réponse à n’importe quelle demande de IRP_MN_EXECUTE_METHOD.

WmiFunctionControl

Pointeur vers la routine DpWmiFunctionControl du pilote, qui est un point d’entrée facultatif pour les pilotes qui appellent des routines de prise en charge de la bibliothèque WMI. Si le pilote n’implémente pas cette routine, il doit définir ce membre sur NULL . Dans ce cas, WMI retourne STATUS_SUCCESS à l’appelant en réponse à n’importe quelle requête IRP_MN_ENABLE_XXX ou IRP_MN_DISABLE_xxx.

Remarques

Un pilote qui gère les runtimes d’intégration WMI en appelant la bibliothèque WMI prend en charge les routines stocke une structure de WMILIB_CONTEXT initialisée (ou un pointeur vers une telle structure) dans son extension d’appareil. Un pilote peut utiliser la même structure WMILIB_CONTEXT pour plusieurs objets d’appareil si chaque objet d’appareil fournit le même jeu de blocs de données.

Lorsque le pilote reçoit une demande de IRP_MJ_SYSTEM_CONTROL, il appelle WmiSystemControl avec un pointeur vers sa structure WMILIB_CONTEXT, un pointeur vers son objet d’appareil et un pointeur vers l’IRP. WmiSystemControl détermine si l’IRP contient une requête WMI et, le cas échéant, gère la requête en appelant la routine DpWmiXxx appropriée du pilote.

La mémoire de cette structure peut être allouée à partir d’un pool paginé.

Exigences

Exigence Valeur
d’en-tête wmilib.h (include Wmilib.h)

Voir aussi

DpWmiExecuteMethod

DpWmiFunctionControl

dpWmiQueryDataBlock

DpWmiQueryReginfo

DpWmiSetDataBlock

dpWmiSetDataItem

WMIGUIDREGINFO

WmiSystemControl