0
我正在開發低級別(SCSI)存儲過濾器驅動程序。驅動程序攔截讀取的IO並將數據以較小的塊寫入其他位置。 在極少數情況下,驅動程序讀取的數據已損壞。 驅動器的流量是這樣的:MDL數據在存儲過濾器驅動程序中損壞
- 使用IoBuildPartialMdl()函數接收IRP和MDL
- 構建驅動器的IRP及的MDL。
- 發送原始IRP並等待響應。
- 發送帶有「custom」build MDL的驅動程序IRP
- 等待響應並回覆上層。
在步驟4中不時發現數據已損壞。需要說的是,並不是所有的數據都被破壞了,並且通常在之前的短時間內對這些數據通常會有單獨的IO請求。 這是怎麼回事?我使用MDL不正確嗎?