共用方式為


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 參數指定的輸出緩衝區大小太小,驅動程式會將這個位置設定為所需的緩衝區大小。

傳回值

如果 OutBufferSize 參數的值指出輸出緩衝區太小而無法接收數據,EvtWmiInstanceQueryInstance 回呼函式必須傳回STATUS_BUFFER_TOO_SMALL。 否則,回呼函式必須將數據複製到緩衝區,並傳回STATUS_SUCCESS。

備註

若要註冊 EvtWmiInstanceQueryInstance 回呼函式,您的驅動程式必須在呼叫 WdfWmiInstanceCreate 之前,將函式的位址放在WDF_WMI_INSTANCE_CONFIG結構中。

在架構將驅動程式提供的實例數據傳送至 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 驅動程式中支援 WMI

規格需求

需求
目標平台 Universal
最低 KMDF 版本 1.0
標頭 wdfwmi.h (包含 Wdf.h)
IRQL PASSIVE_LEVEL

另請參閱

EvtWmiInstanceExecuteMethod

EvtWmiInstanceSetInstance

EvtWmiInstanceSetItem

EvtWmiProviderFunctionControl

WDF_WMI_BUFFER_APPEND_STRING

WDF_WMI_INSTANCE_CONFIG

WdfWmiInstanceCreate