簡體   English   中英

MDL數據在存儲篩選器驅動程序中已損壞

[英]MDL data is corrupted in storage filter driver

我正在開發低級(SCSI)存儲篩選器驅動程序。 驅動程序攔截讀取的IO,並將數據以較小的塊寫入其他位置。 在極少數情況下,驅動程序讀取的數據會損壞。 驅動程序的流程是這樣的:

  1. 接收IRP和MDL
  2. 使用IoBuildPartialMdl()函數構建驅動程序IRP和MDL。
  3. 發送原始IRP並等待響應。
  4. 發送帶有“自定義”構建MDL的驅動程序IRP
  5. 等待響應並回復上層。

在步驟4中,數據有時會損壞。 需要說的是,並非所有數據都已損壞,並且通常不久前會有一個單獨的IO請求針對此數據。 這里發生了什么? 我使用的MDL是否不正確?

顯然,MDL可能包含數據將被破壞的空白。 正確的解決方法是復制數據。 http://msdn.microsoft.com/zh-CN/library/windows/hardware/gg463193.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM