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
緩衝區 可以保存的輸出數據位元組數目。
[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。
要求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
最低 KMDF 版本 | 1.0 |
標頭 | wdfwmi.h (包括 Wdf.h) |
IRQL | PASSIVE_LEVEL |