drvzxj
驱动牛犊
驱动牛犊
  • 注册日期2001-05-31
  • 最后登录2002-11-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1961回复:3

一蝶小菜,请品尝

楼主#
更多 发布于:2001-07-02 10:53
请问 #pragma alloc_text(INIT,DriverEntry) 有什么作用?

 驱动程序里有很多函数要放在指定的代码、数据段吗?怎么知道那些函数应放在那个段呢?
              
                            (!+@)x
big head,wooden head
leexy
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录2011-08-15
  • 粉丝0
  • 关注0
  • 积分62分
  • 威望17点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-07-02 13:03
#pragma alloc_text(INIT, XXXXXX)
该语句将XXXXXX函数放入INIT段。当函数返回后,系统将释放掉它占用的内存,以节省内存。
由于 DriverEntry 只是在 Driver 装载初始化时运行一次,以后不再需要,所以可以放入INIT段。

#pragma alloc_text(PAGE, XXXXXX)
语句把XXXXXX函数的代码放到可分页内存中。
如果函数确定不会被CPU执行在高于PASSIVE_LEVEL的IRQL上时,就可以放入PAGE段。


如果函数有可能被CPU执行在高于PASSIVE_LEVEL的IRQL上时,就必须放到非分页内存中。
drvzxj
驱动牛犊
驱动牛犊
  • 注册日期2001-05-31
  • 最后登录2002-11-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-07-02 17:26
thanks a lot!
big head,wooden head
东郭先生
驱动牛犊
驱动牛犊
  • 注册日期2001-03-23
  • 最后登录
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-07-03 08:11
#pragma alloc_text(PAGE, XXXXXX)
可为什么我把中断服务历程也page了,即放到了分页内存,也没出错呢???
游客

返回顶部