WmiCompleteRequest 函式 (wmilib.h)

WmiCompleteRequest 例程指出驅動程式已完成處理 DpWmiXxx 例程中的 WMI 要求。

語法

NTSTATUS WmiCompleteRequest(
  [in]      PDEVICE_OBJECT DeviceObject,
  [in, out] PIRP           Irp,
  [in]      NTSTATUS       Status,
  [in]      ULONG          BufferUsed,
  [in]      CCHAR          PriorityBoost
);

參數

[in] DeviceObject

驅動程式 DEVICE_OBJECT的指標。

[in, out] Irp

IRP 的指標。

[in] Status

指定要針對 IRP 傳回的狀態。

[in] BufferUsed

指定傳遞至驅動程式 DpWmiXxx 例程之緩衝區中所需的位元元組數目。 如果緩衝區太小,驅動程式會將 Status 設定為STATUS_BUFFER_TOO_SMALL,並將 BufferUsed 設定為傳回數據所需的位元組數目。 如果傳遞的緩衝區夠大,驅動程式會將 BufferUsed 設定為實際使用的位元元組數目。

[in] PriorityBoost

指定系統定義的常數,以遞增要求作業之原始線程的運行時間優先順序。 WMI 會在 IRP 完成時,使用 PriorityBoost 呼叫 IoCompleteRequest。 如需 PriorityBoost 的詳細資訊,請參閱 IoCompleteRequest

傳回值

WmiCompleteRequest 會傳回在 Status 參數中傳遞給它的值,除非 Status 設定為 STATUS_BUFFER_TOO_SMALL。 如果驅動程式將 Status 設定為 STATUS_BUFFER_TOO_SMALL,WmiCompleteRequest 會建置WNODE_TOO_SMALL結構,並傳回STATUS_SUCCESS。 來自 WmiCompleteRequest 的傳回值應該由驅動程式在其 DpWmiXxx 例程中傳回。

備註

驅動程式從 DpWmiXxx 例程呼叫 WmiCompleteRequest 之後,在該例程中完成所有其他處理,或在驅動程式完成擱置 IRP 的所有處理之後。 WmiCompleteRequest 會以驅動程式傳回的任何數據填入 WNODE_XXX ,並呼叫 IoCompleteRequest 來完成 IRP。

驅動程序應該一律在其 DpWmiXxx 例程中傳回 WmiCompleteRequest 的傳回值。

驅動程式不得從其 DpWmiQueryRegInfo 例程呼叫 WmiCompleteRequest

規格需求

需求
最低支援的用戶端 從 Windows 2000 開始提供。
目標平台 Universal
標頭 wmilib.h (包含 Wmilib.h)
程式庫 Wmilib.lib
IRQL <= DISPATCH_LEVEL

另請參閱

DpWmiExecuteMethod

DpWmiFunctionControl

DpWmiQueryDataBlock

DpWmiQueryReginfo

DpWmiSetDataBlock

DpWmiSetDataItem

IoCompleteRequest

WmiSystemControl