структура WMILIB_CONTEXT (wmilib.h)
Структура WMILIB_CONTEXT предоставляет сведения о регистрации для блоков данных драйвера и блоков событий и определяет точки входа для подпрограмм обратного вызова библиотеки WMI драйвера.
Синтаксис
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;
Члены
GuidCount
Указывает количество блоков, зарегистрированных драйвером.
GuidList
Указатель на массив GuidCountWMIGUIDREGINFO структуры, содержащие сведения о регистрации для каждого блока.
QueryWmiRegInfo
Указатель на подпрограмму dpWmiQueryReg info драйвера, которая является обязательной точкой входа для драйверов, которые вызывают подпрограммы поддержки библиотеки WMI.
QueryWmiDataBlock
Указатель на
SetWmiDataBlock
Указатель на подпрограмму DpWmiSetData Block драйвера, которая является необязательной точкой входа для драйверов, которые вызывают подпрограммы поддержки библиотеки WMI. Если драйвер не реализует эту подпрограмму, он должен задать для этого элемента значение NULL. В этом случае WMI возвращает STATUS_WMI_READ_ONLY вызывающим объекту в ответ на любой запрос IRP_MN_CHANGE_SINGLE_INSTANCE.
SetWmiDataItem
Указатель на подпрограмму драйвера DpWmiSetDataItem, которая является необязательной точкой входа для драйверов, которые вызывают подпрограммы поддержки библиотекИ WMI. Если драйвер не реализует эту подпрограмму, он должен задать для этого элемента значение NULL. В этом случае WMI возвращает STATUS_WMI_READ_ONLY вызывающей объекту в ответ на любой запрос IRP_MN_CHANGE_SINGLE_ITEM.
ExecuteWmiMethod
Указатель на подпрограмму драйвера DpWmiExecuteMethod, которая является необязательной точкой входа для драйверов, которые вызывают подпрограммы поддержки библиотеки WMI. Если драйвер не реализует эту подпрограмму, он должен задать для этого элемента значение NULL. В этом случае WMI возвращает STATUS_INVALID_DEVICE_REQUEST вызывающей объекту в ответ на любой запрос IRP_MN_EXECUTE_METHOD.
WmiFunctionControl
Указатель на подпрограмму dpWmiFunctionControl драйвера, которая является необязательной точкой входа для драйверов, которые вызывают подпрограммы поддержки библиотекИ WMI. Если драйвер не реализует эту подпрограмму, он должен задать для этого элемента значение NULL. В этом случае WMI возвращает STATUS_SUCCESS вызывающим объекту в ответ на любой запрос
Замечания
Драйвер, обрабатывающий irPs WMI, вызывая подпрограммы поддержки библиотеки WMI, хранит инициализированную структуру WMILIB_CONTEXT (или указатель на такую структуру) в расширении устройства. Драйвер может использовать одну и ту же WMILIB_CONTEXT структуру для нескольких объектов устройств, если каждый объект устройства предоставляет один и тот же набор блоков данных.
Когда драйвер получает запрос IRP_MJ_SYSTEM_CONTROL, он вызывает WmiSystemControl с указателем на структуру WMILIB_CONTEXT, указатель на объект устройства и указатель на IRP. WmiSystemControl определяет, содержит ли IRP запрос WMI и, если да, обрабатывает запрос, вызывая соответствующую процедуру dpWmiX xxx.
Память для этой структуры может быть выделена из пула страниц.
Требования
Требование | Ценность |
---|---|
заголовка | wmilib.h (include Wmilib.h) |
См. также
WMIGUIDREGINFO