IRP_MJ_CLEANUP

維護進程特定內容資訊的驅動程式必須處理 DispatchCleanup 常式中的清除要求。

傳送時

收到此要求表示與目標裝置物件相關聯的檔案物件最後一個控制碼已關閉 (,但因為未處理的 I/O 要求,可能尚未發行) 。

輸入參數

輸出參數

作業

這個 IRP 會在關閉檔案物件控制碼的進程內容中傳送。 因此,驅動程式應該釋放驅動程式先前鎖定或對應的進程特定資源,例如使用者記憶體。

如果驅動程式的裝置物件設定為獨佔,因此只有單一線程一次可以使用裝置,驅動程式必須完成目前排入目標裝置物件的每個 IRP,並在每個 IRP 的 I/O 狀態欄塊中設定STATUS_CANCELLED。

否則,驅動程式必須取消並完成目前已排入佇列的 IRP,且該 IP 與要釋放的檔案物件控制碼相關聯。 (檔案物件的指標位於驅動程式 IRP.IO_STACK_LOCATION的FileObject成員中。) 取消這些已排入佇列的 IRP 之後,驅動程式會完成清除 IRP,並在其 I/O 狀態欄塊中設定STATUS_SUCCESS。

如需處理此要求的詳細資訊,請參閱 DispatchCleanup 常式

規格需求

標頭

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

另請參閱

DispatchCleanup

IO_STACK_LOCATION

IRP_MJ_CLOSE