WMILIB_CONTEXT
驱动数据块和事件块的注册信息,驱动WMI库回调例程的入口点
The WMILIB_CONTEXT structure provides registration information for a driver's data blocks and event blocks and defines entry points for the driver's WMI library callback routines.
typedef struct _WMILIB_CONTEXT {
ULONG GuidCount;
PWMIGUIDREGINFO GuidCount;
PWMIGUIDREGINFO GuidCount;
PWMIGUIDREGINFO GuidList;
PWMI_QUERY_REGINFO GuidList;
PWMI_QUERY_REGINFO QueryWmiRegInfo;
PWMI_QUERY_DATABLOCK QueryWmiRegInfo;
PWMI_QUERY_DATABLOCK QueryWmiDataBlock;
PWMI_SET_DATABLOCK QueryWmiDataBlock;
PWMI_SET_DATABLOCK SetWmiDataBlock;
PWMI_SET_DATAITEM SetWmiDataBlock;
PWMI_SET_DATAITEM SetWmiDataItem;
PWMI_EXECUTE_METHOD SetWmiDataItem;
PWMI_EXECUTE_METHOD ExecuteWmiMethod;
PWMI_FUNCTION_CONTROL ExecuteWmiMethod;
PWMI_FUNCTION_CONTROL WmiFunctionControl;
} WMILIB_CONTEXT, *PWMILIB_CONTEXT;
Members
- GuidCount
- Specifies the number of blocks registered by the driver.
- GuidList
- Pointer to an array of GuidCount WMIGUIDREGINFO structures that contain registration information for each block.
- QueryWmiRegInfo
- Pointer to the driver's DpWmiQueryReginfo routine, which is a required entry point for drivers that call WMI library support routines.
- QueryWmiDataBlock
- Pointer to the driver's DpWmiQueryDataBlock routine, which is a required entry point for drivers that call WMI library support routines.
- SetWmiDataBlock
- Pointer to the driver's DpWmiSetDataBlock routine, which is an optional entry point for drivers that call WMI library support routines. If the driver does not implement this routine, it must set this member to NULL. In this case, WMI returns STATUS_WMI_READ_ONLY to the caller in response to any IRP_MN_CHANGE_SINGLE_INSTANCE request.
- SetWmiDataItem
- Pointer to the driver's DpWmiSetDataItem routine, which is an optional entry point for drivers that call WMI library support routines. If the driver does not implement this routine, it must set this member to NULL. In this case, WMI returns STATUS_WMI_READ_ONLY to the caller in response to any IRP_MN_CHANGE_SINGLE_ITEM request.
- ExecuteWmiMethod
- Pointer to the driver's DpWmiExecuteMethod routine, which is an optional entry point for drivers that call WMI library support routines. If the driver does not implement this routine, it must set this member to NULL. In this case, WMI returns STATUS_INVALID_DEVICE_REQUEST to the caller in response to any IRP_MN_EXECUTE_METHOD request.
- WmiFunctionControl
- Pointer to the driver's DpWmiFunctionControl routine, which is an optional entry point for drivers that call WMI library support routines. If the driver does not implement this routine, it must set this member to NULL. In this case, WMI returns STATUS_SUCCESS to the caller in response to any IRP_MN_ENABLE_XXX or IRP_MN_DISABLE_XXX request.
Comments
A driver that handles WMI IRPs by calling WMI library support routines stores an initialized WMILIB_CONTEXT structure (or a pointer to such a structure) in its device extension. A driver can use the same WMILIB_CONTEXT structure for multiple device objects if each device object supplies the same set of data blocks.
When the driver receives an IRP_MJ_SYSTEM_CONTROL request, it calls WmiSystemControl with a pointer to its WMILIB_CONTEXT structure, a pointer to its device object, and a pointer to the IRP. WmiSystemControl determines whether the IRP contains a WMI request and, if so, handles the request by calling the driver's appropriate DpWmiXxx routine.
Memory for this structure can be allocated from paged pool.
Requirements
Headers: Defined in Wmilib.h. Include Wmilib.h.
See Also
DpWmiExecuteMethod, DpWmiFunctionControl, DpWmiQueryReginfo, DpWmiQueryDataBlock, DpWmiSetDataBlock, DpWmiSetDataItem, WMIGUIDREGINFO, WmiSystemControl