IRP_MJ_CLEANUP

维护特定于进程的上下文信息的驱动程序必须处理 DispatchCleanup 例程中的清理请求。

发送时间

收到此请求表示与目标设备对象关联的文件对象的最后句柄已关闭 (但由于未完成的 I/O 请求,可能尚未释放) 。

输入参数

输出参数

Operation

此 IRP 在关闭文件对象句柄的进程上下文中发送。 因此,驱动程序应释放驱动程序之前锁定或映射的特定于进程的资源,例如用户内存。

如果驱动程序的设备对象设置为独占,以便一次只有一个线程可以使用该设备,则驱动程序必须完成当前排队到目标设备对象的每个 IRP,并在每个 IRP 的 I/O 状态块中设置STATUS_CANCELLED。

否则,驱动程序必须仅取消并完成与要释放的文件对象句柄关联的当前排队 IRP。 (指向文件对象的指针位于驱动程序的 IRP.IO_STACK_LOCATIONFileObject 成员中。) 取消这些排队的 IRP 后,驱动程序完成清理 IRP 并在其 I/O 状态块中设置STATUS_SUCCESS。

有关处理此请求的详细信息,请参阅 DispatchCleanup 例程

要求

标头

Wdm.h(包括 Wdm.h、Ntddk.h 或 Ntifs.h)

另请参阅

DispatchCleanup

IO_STACK_LOCATION

IRP_MJ_CLOSE