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
WMI 라이브러리 지원 루틴을 호출하는 드라이버에 필요한 진입점인 드라이버의 DpWmiQueryReginfo 루틴에 대한 포인터입니다.
QueryWmiDataBlock
WMI 라이브러리 지원 루틴을 호출하는 드라이버에 필요한 진입점인 드라이버의 DpWmiQueryDataBlock 루틴에 대한 포인터입니다.
SetWmiDataBlock
WMI 라이브러리 지원 루틴을 호출하는 드라이버의 선택적 진입점인 드라이버의 DpWmiSetDataBlock 루틴에 대한 포인터입니다. 드라이버가 이 루틴을 구현하지 않는 경우 이 멤버를 NULL
SetWmiDataItem
WMI 라이브러리 지원 루틴을 호출하는 드라이버의 선택적 진입점인 드라이버의 DpWmiSetDataItem 루틴에 대한 포인터입니다. 드라이버가 이 루틴을 구현하지 않는 경우 이 멤버를 NULL
ExecuteWmiMethod
WMI 라이브러리 지원 루틴을 호출하는 드라이버의 선택적 진입점인 드라이버의 DpWmiExecuteMethod 루틴에 대한 포인터입니다. 드라이버가 이 루틴을 구현하지 않는 경우 이 멤버를 NULL
WmiFunctionControl
WMI 라이브러리 지원 루틴을 호출하는 드라이버의 선택적 진입점인 드라이버의 DpWmiFunctionControl 루틴에 대한 포인터입니다. 드라이버가 이 루틴을 구현하지 않는 경우 이 멤버를 NULL
발언
WMI 라이브러리 지원 루틴을 호출하여 WMI IRP를 처리하는 드라이버는 초기화된 WMILIB_CONTEXT 구조체(또는 이러한 구조체에 대한 포인터)를 디바이스 확장에 저장합니다. 각 디바이스 개체가 동일한 데이터 블록 집합을 제공하는 경우 드라이버는 여러 디바이스 개체에 대해 동일한 WMILIB_CONTEXT 구조를 사용할 수 있습니다.
드라이버는 IRP_MJ_SYSTEM_CONTROL 요청을 받으면 WMILIB_CONTEXT 구조에 대한 포인터, 디바이스 개체에 대한 포인터 및 IRP에 대한 포인터를 사용하여 WmiSystemControl 호출합니다. WmiSystemControl IRP에 WMI 요청이 포함되어 있는지 여부를 확인하고, 이 경우 드라이버의 적절한 DpWmiXxx 루틴을 호출하여 요청을 처리합니다.
이 구조의 메모리는 페이징 풀에서 할당할 수 있습니다.
요구 사항
요구 | 값 |
---|---|
헤더 | wmilib.h(Wmilib.h 포함) |
참고 항목
WMIGUIDREGINFO
WmiSystemControl