EVT_WDF_WMI_INSTANCE_EXECUTE_METHOD回呼函式 (wdfwmi.h)
[僅適用於 KMDF]
驅動程式的 EvtWmiInstanceExecuteMethod 回呼函式會執行驅動程式為 WMI 數據提供者實例提供的指定方法。
語法
EVT_WDF_WMI_INSTANCE_EXECUTE_METHOD EvtWdfWmiInstanceExecuteMethod;
NTSTATUS EvtWdfWmiInstanceExecuteMethod(
[in] WDFWMIINSTANCE WmiInstance,
[in] ULONG MethodId,
[in] ULONG InBufferSize,
[in] ULONG OutBufferSize,
[in, out] PVOID Buffer,
[out] PULONG BufferUsed
)
{...}
參數
[in] WmiInstance
WMI 實例物件的句柄。
[in] MethodId
值,識別提供者實例中的方法。 這個值會對應至提供者MOF檔案中指定的 WmiMethodId 值。
[in] InBufferSize
輸入數據的位元組數目。
[in] OutBufferSize
Buffer 所指向之緩衝區可以保存的輸出數據位元組數目。
[in, out] Buffer
用於輸入、輸出或兩者之緩衝區的指標,由指定的方法決定。 如果同時提供輸入和輸出數據,驅動程式會以輸出數據覆寫輸入數據。
[out] BufferUsed
位置的指標,可接收驅動程式寫入輸出緩衝區的位元元組數目。 如果 OutBufferSize 參數指定的輸出緩衝區大小太小,驅動程式會將這個位置設定為所需的緩衝區大小。
傳回值
如果作業成功, EvtWmiInstanceExecuteMethod 回呼函式必須傳回STATUS_SUCCESS。 否則,此函式必須傳回狀態值, NT_SUCCESS (狀態) 等於 FALSE。 如果 OutBufferSize 參數的值表示輸出緩衝區太小而無法接收數據,則驅動程式必須傳回STATUS_BUFFER_TOO_SMALL。
備註
若要註冊 EvtWmiInstanceExecuteMethod 回呼函式,您的驅動程式必須先將函式的位址放在 WDF_WMI_INSTANCE_CONFIG 結構中,才能呼叫 WdfWmiInstanceCreate。
在驅動程式執行 MethodId 參數指定的實例方法之後,驅動程式必須使用 BufferUsed 參數來儲存寫入緩衝區的位元組數目。
架構不會同步處理驅動程式 WMI 事件回呼函式的呼叫彼此或驅動程式的其他事件回呼函式。 如果 EvtWmiInstanceExecuteMethod 回呼函式的數據是動態的,並與其他回呼函式共用,您的驅動程式可以使用架構的 等候鎖定或微調鎖定 來同步存取數據。
如需 EvtWmiInstanceExecuteMethod 回呼函式的詳細資訊,請參閱 在 Framework-Based Drivers 中支援 WMI。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
最小 KMDF 版本 | 1.0 |
標頭 | wdfwmi.h (包含 Wdf.h) |
IRQL | PASSIVE_LEVEL |