共用方式為


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

另請參閱

EvtWmiInstanceExecuteMethod

EvtWmiInstanceSetInstance

EvtWmiInstanceSetItem

EvtWmiProviderFunctionControl

WDF_WMI_BUFFER_APPEND_STRING

WDF_WMI_INSTANCE_CONFIG

WdfWmiInstanceCreate