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

GuidCount 陣列的指標WMIGUIDREGINFO 結構,其中包含每個區塊的註冊資訊。

QueryWmiRegInfo

驅動程式 DpWmiQueryReginfo 例程的指標,這是呼叫 WMI 連結庫的驅動程序支援例程的必要進入點。

QueryWmiDataBlock

驅動程式 DpWmiQueryDataBlock 例程的指標,這是呼叫 WMI 連結庫的驅動程序支援例程的必要進入點。

SetWmiDataBlock

驅動程式 DpWmiSetDataBlock 例程的指標,這是呼叫 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傳回給呼叫端,以回應任何 IRP_MN_ENABLE_XXXIRP_MN_DISABLE_XXX 要求。

言論

透過呼叫 WMI 連結庫來處理 WMI IRP 的驅動程式支援例程,會將初始化的 WMILIB_CONTEXT 結構(或這類結構的指標)儲存在其裝置延伸模組中。 如果每個裝置物件提供相同的數據區塊集,驅動程式就可以針對多個裝置物件使用相同的 WMILIB_CONTEXT 結構。

當驅動程式收到 IRP_MJ_SYSTEM_CONTROL 要求時,它會呼叫 WmiSystemControl,其中包含其 WMILIB_CONTEXT 結構的指標、其裝置物件的指標,以及 IRP 的指標。 WmiSystemControl 會判斷 IRP 是否包含 WMI 要求,如果是的話,請呼叫驅動程式的適當 DpWmiXxx 例程來處理要求。

此結構的記憶體可以從分頁集區配置。

要求

要求 價值
標頭 wmilib.h (包括 Wmilib.h)

另請參閱

DpWmiExecuteMethod

DpWmiFunctionControl

DpWmiQueryDataBlock

DpWmiQueryReginfo

DpWmiSetDataBlock

DpWmiSetDataItem

WMIGUIDREGINFO

WmiSystemControl