zhongjie
驱动牛犊
驱动牛犊
  • 注册日期2004-08-24
  • 最后登录2006-02-15
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1286回复:5

关于分配缓冲区的问题

楼主#
更多 发布于:2005-02-22 22:01
我有一个驱动程序.
在DriverEntry列程中有这么
ConfigList = ExAllocatePool(PagedPool,sizeof(*ConfigList));
RtlZeroMemory(ConfigList, sizeof(*ConfigList));
一条语句。

我不明白的是:
1、为什么用PagedPool,因为PagedPool 只有在IRQL低于DISPATCH_LEVEL的例程使用,然而DriverEntry例程运行在DISPATCH_LEVEL中断级。
2、为什么要用RtlZeroMemory(ConfigList, sizeof(*ConfigList));
这条语句。

[编辑 -  2/22/05 by  zhongjie]
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2005-02-22 22:50
1、为什么用PagedPool,因为PagedPool 只有在IRQL低于DISPATCH_LEVEL的例程使用,然而DriverEntry例程运行在DISPATCH_LEVEL中断级。

谁说的???一般的DriverEntry都运行在PASSIVE_LEVEL的

2、为什么要用RtlZeroMemory(ConfigList, sizeof(*ConfigList));
分配好以后初始化为0  ,不然的话里面都是垃圾数据,可能会对你的数据产生干扰......
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
aiwadgj
驱动老牛
驱动老牛
  • 注册日期2004-11-13
  • 最后登录2020-12-24
  • 粉丝0
  • 关注0
  • 积分119分
  • 威望84点
  • 贡献值0点
  • 好评度14点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2005-02-22 22:52
我有一个驱动程序.
在DriverEntry列程中有这么
ConfigList = ExAllocatePool(PagedPool,sizeof(*ConfigList));
RtlZeroMemory(ConfigList, sizeof(*ConfigList));
一条语句。

我不明白的是:
1、为什么用PagedPool,因为PagedPool 只有在IRQL低于DISPATCH_LEVEL的例程使用,然而DriverEntry例程运行在DISPATCH_LEVEL中断级。
2、为什么要用RtlZeroMemory(ConfigList, sizeof(*ConfigList));
这条语句。

[编辑 -  2/22/05 by  zhongjie]


(1)DriverEntry例程是运行在PASSIVE_LEVEL中断级的!
所以问题一是合理的。。没有问题!

(2)用RtlZeroMemory(ConfigList, sizeof(*ConfigList));就是把
指针所指的存储区域初始化为零。。。就跟新定义的变量要初始化是一个概念的。。


酒也在沉溺,何时麻醉我抑郁。过去了的一切会平息。。。。。。。
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-02-23 09:46
DriverEntry例程是运行在PASSIVE_LEVEL中断级的!而且有的驱动甚至在调用完DriverEntry例程后,就将它从内存中整个抛掉了

用RtlZeroMemory(ConfigList, sizeof(*ConfigList));就是把
指针所指的存储区域初始化为零。在应用程序中为防止一个进程的数据被另一个进程窃取,操作系统自动会为你做此事,核心驱动就得自己做

滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
fslife
驱动大牛
驱动大牛
  • 注册日期2004-06-07
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分9分
  • 威望49点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-02-23 10:55
越讲越清楚啊,呵呵
在交流中学习。。。
zhongjie
驱动牛犊
驱动牛犊
  • 注册日期2004-08-24
  • 最后登录2006-02-15
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望4点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-02-23 16:10
谢谢各位了,我明白了。
游客

返回顶部