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 |