Wing
驱动牛犊
驱动牛犊
  • 注册日期2001-07-09
  • 最后登录2002-03-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1781回复:10

非分页内存>>>>

楼主#
更多 发布于:2001-09-29 09:51
使用new(NonPagedPool)创建了几个非分页内存页,如何在驱动中根据情况访问内存页?
这个问题已经困扰了我很长时间,希望各位朋友提供点思路,先谢谢了!
Wing ―――――――――――― 一对正在飞翔的翅膀
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-09-29 10:20
你所谓的“根据情况“是什么意思?
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
DK-boy
驱动中牛
驱动中牛
  • 注册日期2001-07-22
  • 最后登录2005-09-21
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-09-29 11:02
[QUOTE]原本由 Wing 发表
[B]使用new(NonPagedPool)创建了几个非分页内存页,如何在驱动中根据情况访问内存页?
这个问题已经困扰了我很长时间,希望各位朋友提供点思路,先谢谢了!  [/B][/QUOTE]
你应该使内存管理函数来使用内存!
喜欢清静?享受人生
Wing
驱动牛犊
驱动牛犊
  • 注册日期2001-07-09
  • 最后登录2002-03-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-09-29 11:15
其实所谓的情况简单的说就是根据需要自由访问已经建立的非分页内存,因为在我建立的非分页内存中保存有我的DRIVER_EXTENSION的参数,我需要来切换内存来访问这些DRIVER_EXTENSION请指条路吧,我很笨,真的.
Wing ―――――――――――― 一对正在飞翔的翅膀
Wing
驱动牛犊
驱动牛犊
  • 注册日期2001-07-09
  • 最后登录2002-03-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-09-29 11:17
具体那些函数,提醒几个,我再去找资料。
Wing ―――――――――――― 一对正在飞翔的翅膀
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-09-30 09:59
[QUOTE]原本由 Wing 发表
[B]其实所谓的情况简单的说就是根据需要自由访问已经建立的非分页内存,因为在我建立的非分页内存中保存有我的DRIVER_EXTENSION的参数,我需要来切换内存来访问这些DRIVER_EXTENSION请指条路吧,我很笨,真的. [/B][/QUOTE]
NonPaged内存在dispatch和passive上都可以访问。而且一般的读写也很简单的,和普通的ring3的内存差不多。一些函数也就是Rtlxxxx之类的。
另外,你要用DRIVER_EXTENSION做什么呢?一般好像不用的。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
Wing
驱动牛犊
驱动牛犊
  • 注册日期2001-07-09
  • 最后登录2002-03-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-09-30 10:27
我在非分页内存中保存了设备扩展的信息,是SmartCard Reader的,需要在访问其中一个时切换过去,我先按你说的看看MSDN,有问题我再麻烦你,谢谢
Wing ―――――――――――― 一对正在飞翔的翅膀
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-09-30 10:40
[QUOTE]原本由 Wing 发表
[B]我在非分页内存中保存了设备扩展的信息,是SmartCard Reader的,需要在访问其中一个时切换过去,我先按你说的看看MSDN,有问题我再麻烦你,谢谢 [/B][/QUOTE]
那也不是在DRIVER_EXTENSION中啊?那是DEVICE_EXTENSION。要访问这个玩意儿很简单。每次系统调用你的IRP HANDLER的时候,都会传给你一个DEVICE OBJECT和一个IRP,DEVICE_OBJECT的PDEVICE_EXTENSION成员变量就是指向这东东的。直接使用就可以了。very easy!
还有一个SMARTCARD_EXTENSION也可以作为DEVICE_EXTENSION的成员来储存。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2001-09-30 10:40
而且IRP HANDLER都是运行在PASSIVE上的,访问NonPagedPool根本就没有问题。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
Wing
驱动牛犊
驱动牛犊
  • 注册日期2001-07-09
  • 最后登录2002-03-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2001-09-30 10:55
对,应该是DEVICE_EXTENSION,没注意到。
我的驱动中DEVICE_EXTENSION是作为SMARTCARD_EXTENSION的成员来存储的,不会有区别吧?
关于这部分操作能否详细作个介绍,对于多设备的问题会很有帮助!
Wing ―――――――――――― 一对正在飞翔的翅膀
rayyang2000
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2012-09-13
  • 粉丝3
  • 关注0
  • 积分1036分
  • 威望925点
  • 贡献值3点
  • 好评度823点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2001-10-09 11:01
[QUOTE]原本由 Wing 发表
[B]对,应该是DEVICE_EXTENSION,没注意到。
我的驱动中DEVICE_EXTENSION是作为SMARTCARD_EXTENSION的成员来存储的,不会有区别吧?
关于这部分操作能否详细作个介绍,对于多设备的问题会很有帮助! [/B][/QUOTE]
一般是把SMARTCARD_EXTENSION作为DEVICE_EXTENSION的成员。虽然你这样做不知道会不会有问题。。。
天天coding-debugging中----超稀饭memory dump file ======================================================== [b]Windows Device Driver Development and Consulting Service[/b] [color=blue][url]http://www.ybwork.com[/url][/color] ========================================================
游客

返回顶部