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 |