共用方式為


處理清除和關閉作業時發生錯誤

某些驅動程式無法區分 DispatchCleanupDispatchClose 常式中所需的工作。 當檔案物件的最後一個控制碼關閉時,I/O 管理員會呼叫驅動程式的 DispatchCleanup 常式。 當上次從檔案物件釋放參考時,會呼叫 DispatchClose 常式。 驅動程式不應該嘗試釋放其 DispatchCleanup 常式中附加至檔案物件的資源,或可能供其他 DispatchXxx 常式使用。

呼叫分派常式時,I/O 管理員會保留一般 I/O 呼叫之檔案物件的參考。 因此,驅動程式可以在呼叫 DispatchCleanup 常式之後,但在呼叫 其 DispatchClose 常式之前,接收檔案物件的 I/O 要求。 例如,當 I/O 管理員要求從另一個執行緒進行時,使用者模式呼叫端可能會關閉檔案控制代碼。 如果在 I/O 管理員呼叫 其 DispatchClose 常式之前,驅動程式已刪除或釋放必要的資源,可能會發生不正確指標參考和其他問題。