iofCompleteRequest 函数 (wdm.h)
IoCompleteRequest 宏指示调用方已完成给定 I/O 请求的所有处理,并将给定的 IRP 返回到 I/O 管理器。
IoCompleteRequest 包装 IofCompleteRequest。
语法
void IofCompleteRequest(
PIRP Irp,
CCHAR PriorityBoost
);
参数
Irp
指向要完成的 IRP 的指针。
PriorityBoost
指定系统定义的 CCHAR 常量,根据该常量递增请求操作的原始线程的运行时优先级。 如果原始线程请求的操作,驱动程序可以快速完成 (,因此请求线程不会因) i/O 完成而假定的等待) 或 IRP 完成时出现错误而得到补偿,则此值IO_NO_INCREMENT。 否则, PriorityBoost 常量集特定于设备类型。 有关这些常量,请参阅 Ntddk.h 或 Wdm.h。
返回值
无
备注
当驱动程序完成给定 IRP 的所有处理后,它将调用 IoCompleteRequest。 I/O 管理器检查 IRP 以确定是否有更高级别的驱动程序为 IRP 设置了 IoCompletion 例程。 如果是这样,则依次调用每个 IoCompletion 例程,直到链中的每个分层驱动程序都完成了 IRP。
当所有驱动程序都完成了给定的 IRP 时,I/O 管理器会将状态返回到操作的原始请求者。 请注意,设置驱动程序创建的 IRP 的更高级别的驱动程序必须提供 IoCompletion 例程才能释放其创建的 IRP。
切勿在按住旋转锁时调用 IoCompleteRequest 。 尝试在按住旋转锁时完成 IRP 可能会导致死锁。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 从 Windows 2000 开始可用。 |
目标平台 | 通用 |
标头 | wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
DDI 符合性规则 | CompleteRequest、CompleteRequestStatusCheck、 DoubleCompletion (wdm) 、 HwStorPortProhibitedDDI (storport) 、IoAllocateComplete、IoBuildFsdComplete、IoSetCompletionExCompleteIrp、 IrpProcessingComplete (wdm) 、MarkIrpPending、 PendedCompletedRequest (wdm) 、PendedCompletedRequest2、PendedCompletedRequest3、 PendedCompletedRequestEx (wdm) 、 PnpIrpCompletion (wdm) 、SpinLockSafe (storport) , SpinLockSafe (wdm) , WmiComplete (wdm) |