EVT_WDF_WMI_INSTANCE_QUERY_INSTANCE回呼函式 (wdfwmi.h)
[僅適用於 KMDF]
驅動程式的 EvtWmiInstanceQueryInstance 回呼函式會將 WMI 提供者的實例數據複製到緩衝區,以傳遞至 WMI 用戶端。
語法
EVT_WDF_WMI_INSTANCE_QUERY_INSTANCE EvtWdfWmiInstanceQueryInstance;
NTSTATUS EvtWdfWmiInstanceQueryInstance(
[in] WDFWMIINSTANCE WmiInstance,
[in] ULONG OutBufferSize,
[in] PVOID OutBuffer,
[out] PULONG BufferUsed
)
{...}
參數
[in] WmiInstance
WMI 實例物件的句柄。
[in] OutBufferSize
輸出緩衝區的大小,以位元組為單位,OutBuffer 指向 。
[in] OutBuffer
輸出緩衝區的指標。
[out] BufferUsed
位置的指標,這個位置會接收驅動程式在輸出緩衝區中放置的位元元組數目。 如果輸出緩衝區大小 OutBufferSize 參數指定太小,驅動程式會將此位置設定為所需的緩衝區大小。
傳回值
EvtWmiInstanceQueryInstance 回呼函式必須傳回STATUS_BUFFER_TOO_SMALL,如果 OutBufferSize 參數的值表示輸出緩衝區太小而無法接收數據。 否則,回調函式必須將數據複製到緩衝區,並傳回STATUS_SUCCESS。
言論
若要註冊 EvtWmiInstanceQueryInstance 回呼函式,您的驅動程式必須先將函式的位址放在 WDF_WMI_INSTANCE_CONFIG 結構中,才能呼叫 WdfWmiInstanceCreate。
在架構將驅動程式提供的實例數據傳送至 WMI 用戶端之前,它會將所有必要的 WMI 標頭資訊新增至數據。
如果您的驅動程式將 WMI 實例物件 WDF_WMI_INSTANCE_CONFIG 結構的 UseContextForQuery 成員設定為唯讀數據區塊 TRUE,驅動程式就不會提供 EvtWmiInstanceQueryInstance 回呼函式。
如果您的驅動程式必須提供字串數據給WMI用戶端,驅動程式應該呼叫 WDF_WMI_BUFFER_APPEND_STRING 函式來格式化字串。
如需 EvtWmiInstanceQueryInstance 回呼函式的詳細資訊,請參閱 支援讀取/寫入 WMI 數據區塊 和 支援 Read-Only WMI 數據區塊。
架構不會同步處理驅動程式 WMI 事件回呼函式的呼叫彼此或驅動程式的其他事件回呼函式。 如果 EvtWmiInstanceQueryInstance 回呼函式的數據是動態的,並與其他回呼函式共用,則驅動程式可以使用架構的 等候鎖定或微調鎖定, 同步存取數據。
如需 WMI 的詳細資訊,請參閱 Framework-Based Drivers 中支援 WMI。
要求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
最低 KMDF 版本 | 1.0 |
標頭 | wdfwmi.h (包括 Wdf.h) |
IRQL | PASSIVE_LEVEL |