共用方式為


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_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 開始提供。
目標平臺 普遍
標頭 wmilib.h (包括 Wmilib.h)
連結庫 Wmilib.lib
IRQL <= DISPATCH_LEVEL

另請參閱

DpWmiExecuteMethod

DpWmiFunctionControl

DpWmiQueryDataBlock

DpWmiQueryReginfo

DpWmiSetDataBlock

DpWmiSetDataItem

IoCompleteRequest

WmiSystemControl