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 la 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 structures GuidCountWMIGUIDREGINFO qui contiennent des informations d’inscription pour chaque bloc.

QueryWmiRegInfo

Pointeur vers la routine DpWmiQueryReginfo du pilote, qui est un point d’entrée obligatoire 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 obligatoire 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 à une demande 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 à une demande 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 à une demande 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 à une requête IRP_MN_ENABLE_XXX ou IRP_MN_DISABLE_XXX .

Remarques

Un pilote qui gère les IIP WMI en appelant des routines de prise en charge de bibliothèque WMI stocke une structure 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 ensemble 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é.

Configuration requise

Condition requise Valeur
En-tête wmilib.h (inclure Wmilib.h)

Voir aussi

DpWmiExecuteMethod

DpWmiFunctionControl

DpWmiQueryDataBlock

DpWmiQueryReginfo

DpWmiSetDataBlock

DpWmiSetDataItem

WMIGUIDREGINFO

WmiSystemControl