完成 IRP

“完成 IRP”是一个速记短语,意思是“允许驱动程序堆栈的所有成员完成 I/O 操作”。IRP 完成后,I/O 管理器会通知发起应用程序请求的 I/O 操作已完成。

驱动程序处理完 IRP 后,通常会从 DpcForIsr 例程) 调用 IoCompleteRequest (。 这会导致 I/O 管理器确定是否有更高级别的驱动程序为 IRP 设置了 IoCompletion 例程。 如果是这样,则依次调用每个 IoCompletion 例程,直到链中的每个分层驱动程序都完成了 IRP。

当所有驱动程序完成 IRP 后,I/O 管理器会将状态返回到操作的原始请求者。 请注意,设置驱动程序创建的 IRP 的更高级别的驱动程序必须提供 IoCompletion 例程才能释放其创建的 IRP。

本节包含下列主题:

何时完成 IRP

在 Dispatch 例程中完成 IRP

使用 IoCompletion 例程