共用方式為


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

另請參閱

EvtWmiInstanceQueryInstance

EvtWmiInstanceSetInstance

EvtWmiInstanceSetItem

EvtWmiProviderFunctionControl

WDF_WMI_INSTANCE_CONFIG

WdfWmiInstanceCreate