2012-10-15 47 views
0

我正在开发低级别(SCSI)存储过滤器驱动程序。驱动程序拦截读取的IO并将数据以较小的块写入其他位置。 在极少数情况下,驱动程序读取的数据已损坏。 驱动器的流量是这样的:MDL数据在存储过滤器驱动程序中损坏

  1. 使用IoBuildPartialMdl()函数接收IRP和MDL
  2. 构建驱动器的IRP及的MDL。
  3. 发送原始IRP并等待响应。
  4. 发送带有“custom”build MDL的驱动程序IRP
  5. 等待响应并回复上层。

在步骤4中不时发现数据已损坏。需要说的是,并不是所有的数据都被破坏了,并且通常在之前的短时间内对这些数据通常会有单独的IO请求。 这是怎么回事?我使用MDL不正确吗?

回答

相关问题