摘要: 為什么要用IO_REMOVE_LOCK?
WDM 驅(qū)動程序在處理設(shè)備刪除 IRP 并釋放驅(qū)動程序分配的內(nèi)存后可能接收到附加的 IRP。在處理附加的 IRP 時試圖引用已經(jīng)釋放的內(nèi)存會導(dǎo)致系統(tǒng)崩潰。驅(qū)動程序能夠接收已刪除設(shè)備的 IRP,這有兩個原因:
在設(shè)備被刪除后,另一個組件可以發(fā)送 I/O。
在設(shè)備刪除請求之前發(fā)送的 I/O 請求可能在目標(biāo)驅(qū)動程序處理設(shè)備刪除請求之后到達(dá)。
閱讀全文