由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - Windows IO driver处理IRP问题
相关主题
How to avoid deadlock ?大侠们救命啊:我的office 2003总是变灰,被锁,怎么办啊?谢谢!
what is "recursive locks by the same thread"这个函数有问题吗?
A question about page tabledeque
linux内存分配中page的几个问题请教 boost locks
[转载] KEY mapdouble-checked locking
两把门锁的问题C++的一个mutex问题
[合集] can a single thread run into deadlock?lock bootloader
谁能推荐一个read-writer lock的C++实现? (转载)Re: 什么叫活活堵死 (转载)
相关话题的讨论汇总
话题: irp话题: io话题: driver话题: mdl话题: lock
进入Programming版参与讨论
1 (共1页)
p*******i
发帖数: 190
1
写一个filter driver, intecept 所有Disk IO,处理一下再传给下层driver。大概流
程如下:
1. get an IRP from upper layer driver
2. check if associated MDLs have been locked or are paging IO. If not, call
MmProbeAndLockPages() to lock those physical pages. Then
3. call MmGetSystemAddressForMdlSafe() to get the system virtual address for
further process.
现在问题是,我不确定应该如何判断一个IRP中的MDL是否需要lock.我现在的处理好像
有问题,因为当IO返回时,我还没有release这个IRP,却发现IRP中的MDL buffer里的
内容被改写了。貌似没有lock住?还是那个system virtual address没有map对?那位
达人给解答一下,不胜感激,谢谢。
i*****o
发帖数: 1714
2
这个没问题的啊。一般lockpage就是把这个memory个锁住,然后dma device就可以直接
把data放进去。你所说的是最普通的操作了,等io回来后你memory里就是dma来的新数
据。

call
for

【在 p*******i 的大作中提到】
: 写一个filter driver, intecept 所有Disk IO,处理一下再传给下层driver。大概流
: 程如下:
: 1. get an IRP from upper layer driver
: 2. check if associated MDLs have been locked or are paging IO. If not, call
: MmProbeAndLockPages() to lock those physical pages. Then
: 3. call MmGetSystemAddressForMdlSafe() to get the system virtual address for
: further process.
: 现在问题是,我不确定应该如何判断一个IRP中的MDL是否需要lock.我现在的处理好像
: 有问题,因为当IO返回时,我还没有release这个IRP,却发现IRP中的MDL buffer里的
: 内容被改写了。貌似没有lock住?还是那个system virtual address没有map对?那位

1 (共1页)
进入Programming版参与讨论
相关主题
Re: 什么叫活活堵死 (转载)[转载] KEY map
scoped lock的问题两把门锁的问题
这样的deadlock如何debug?[合集] can a single thread run into deadlock?
c++里 weak_ptr用起来是不是耗时间?谁能推荐一个read-writer lock的C++实现? (转载)
How to avoid deadlock ?大侠们救命啊:我的office 2003总是变灰,被锁,怎么办啊?谢谢!
what is "recursive locks by the same thread"这个函数有问题吗?
A question about page tabledeque
linux内存分配中page的几个问题请教 boost locks
相关话题的讨论汇总
话题: irp话题: io话题: driver话题: mdl话题: lock