阅读:1280回复:6
这段程序有什么问题?用户被禁言,该主题自动屏蔽! |
|
沙发#
发布于:2002-04-23 14:45
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2002-04-23 14:46
用户被禁言,该主题自动屏蔽! |
|
地板#
发布于:2002-04-23 14:46
兄弟,还在做文件驱程呀,我也是,看来还要向你学习呀。
你的代码,涉及到PagePool,于是只能在Passive_Level了, 你还用到Irp->UserBuffer,于是要保证在User Calling thread context。 你是在fastiodevicecontrol IRP_MJ_READ,(filemon)中? |
|
|
地下室#
发布于:2002-04-23 15:42
用户被禁言,该主题自动屏蔽! |
|
5楼#
发布于:2002-04-23 15:51
用户被禁言,该主题自动屏蔽! |
|
6楼#
发布于:2002-05-02 20:25
Macy.
现在的做法似乎完全不对. 如果你只是想在传到下层设备驱动之前取一下IRP_WRITE的数据,相当的容易. 根据MJ_WRITE来的时候根据IRP分析就可以. 如果是BUFFERED IO, 数据在IRP.SYSTEMBUFFER里(MJ_READ, MJ_WRITE的情况下几乎没有). 如果是DIRECT IO,数据在IRP.MdlAddress 里. 对于MdlAddress (基本是这种情况,使用MmGetSystemAddressForMdl来得到BUFFER 指针) 对于USERBUFFER, 一般不能直接使用的, 你的情况下大约用不到. 5/1没有什么事, 我在考虑写个类似的东西.你的目的是什么,这样我的东西对你有写参考. |
|