macy
禁止发言
禁止发言
  • 注册日期2001-12-19
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分6383分
  • 威望48270点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1222回复:6

这段程序有什么问题?

楼主#
更多 发布于:2002-04-23 13:55
用户被禁言,该主题自动屏蔽!
Tom.Cat
禁止发言
禁止发言
  • 注册日期2001-10-10
  • 最后登录2019-07-29
  • 粉丝1
  • 关注0
  • 积分-53792分
  • 威望197411点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2002-04-23 14:45
用户被禁言,该主题自动屏蔽!
macy
禁止发言
禁止发言
  • 注册日期2001-12-19
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分6383分
  • 威望48270点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2002-04-23 14:46
用户被禁言,该主题自动屏蔽!
AChen
驱动牛犊
驱动牛犊
  • 注册日期2002-02-25
  • 最后登录2002-10-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-04-23 14:46
兄弟,还在做文件驱程呀,我也是,看来还要向你学习呀。

你的代码,涉及到PagePool,于是只能在Passive_Level了,
你还用到Irp->UserBuffer,于是要保证在User Calling thread
context。

你是在fastiodevicecontrol IRP_MJ_READ,(filemon)中?
This posting is provided "AS IS" with no warranties, and confers no rights.
macy
禁止发言
禁止发言
  • 注册日期2001-12-19
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分6383分
  • 威望48270点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
地下室#
发布于:2002-04-23 15:42
用户被禁言,该主题自动屏蔽!
macy
禁止发言
禁止发言
  • 注册日期2001-12-19
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分6383分
  • 威望48270点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2002-04-23 15:51
用户被禁言,该主题自动屏蔽!
zdhe
驱动太牛
驱动太牛
  • 注册日期2001-12-26
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72362分
  • 威望362260点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
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没有什么事, 我在考虑写个类似的东西.你的目的是什么,这样我的东西对你有写参考.
游客

返回顶部