IoCompleteRequest函式表示調用方已完成所有I/O請求處理操作,並將給定的 IRP 返回給 I/O 管理器。
基本介紹
- 中文名:IoCompleteRequest
- 外文名:無
- 語言:英語
- 學科:計算機學
函式原型,參數,頭檔案,貼士,
函式原型
VOID
IoCompleteRequest(
IN PIRP Irp,
IN CCHAR PriorityBoost
);
參數
Irp 指向將要完成的IRP報文數據結構。 PriorityBoost 指定系統定義的常量,用來增加運行時要求操作的原始執行緒的優先權。如果要求操作的原始執行緒需要驅動程式快速的完成處理,或者IRP填充完成時有錯誤發生,那么這個值就應該設為 IO_NO_INCREMENT。否則PriorityBoost 常量的值應設為device-type-specific常量。具體取哪些常量可以參見 ntddk.h 或wdm.h 檔案。
頭檔案
在 wdm.h 和 ntddk.h 中被定義。需要包含 wdm.h 或 ntddk.h 檔案。
注釋當驅動完成了對指定IRP的所有處理操作之後,會調用 IoCompleteRequest 。I/O管理器檢查IRP以決定上級驅動是否已經為這個IRP指定了一個 IoCompletion 例程。如果這樣的話,每一個 IoCompletion 例程將會依次被調用,直到在驅動鏈中的每一個分層驅動已經完成這個IRP的填充操作為止。
當所有的驅動已充填充完了指定的IRP時,I/O管理器會向操作的原始請求者返回一個狀態值。需要注意的是,一個設定了 driver-created 的IRP的上級驅動必須提供一個 IoCompletion 例程來釋放它當初創建的那個IRP。
IoCompleteRequest 的調用者必須是運行在 IRQL <= DISPATCH_LEVEL 上的。