sssslin
驱动牛犊
驱动牛犊
  • 注册日期2007-06-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分260分
  • 威望27点
  • 贡献值0点
  • 好评度26点
  • 原创分0分
  • 专家分0分
阅读:2157回复:13

请教:如何在驱动程序中定义全局变量?

楼主#
更多 发布于:2007-11-02 07:56
       我想在驱动程序的各分发例程中共享一个变量,应该怎么做呢?
      谢谢了
stevphen
驱动牛犊
驱动牛犊
  • 注册日期2003-02-09
  • 最后登录2010-12-03
  • 粉丝0
  • 关注0
  • 积分573分
  • 威望87点
  • 贡献值1点
  • 好评度57点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-11-05 15:36
哦,那不是和普通全局变量一样?乍一看,还以为有什么特别之处,呵呵。
还是要谢谢你的热情!
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
板凳#
发布于:2007-11-05 13:08
在哪儿分配无所谓,你只要保证需要访问时已经分配好即可.


因为全局变量有限,如果需要的容量大,你最好只在全局变量区保存指针..如果容量少,可以直接声明全局变量用
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
stevphen
驱动牛犊
驱动牛犊
  • 注册日期2003-02-09
  • 最后登录2010-12-03
  • 粉丝0
  • 关注0
  • 积分573分
  • 威望87点
  • 贡献值1点
  • 好评度57点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-11-05 10:56
[quote]引用第3楼znsoft于2007-11-03 10:31发表的  :
全局变量只定义一个指针,在driverentry时分配quote]

实在没理解,请问znsoft,为何全局变量只定义一个指针,又为何要在driverentry时分配?

能不能解释一下,免得我们这些新手误入歧途!!!!
stevphen
驱动牛犊
驱动牛犊
  • 注册日期2003-02-09
  • 最后登录2010-12-03
  • 粉丝0
  • 关注0
  • 积分573分
  • 威望87点
  • 贡献值1点
  • 好评度57点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-11-05 10:53
引用第3楼znsoft于2007-11-03 10:31发表的  :
全局变量只定义一个指针,在driverentry时分配.
sssslin
驱动牛犊
驱动牛犊
  • 注册日期2007-06-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分260分
  • 威望27点
  • 贡献值0点
  • 好评度26点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-11-05 08:23
好的
谢谢
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
6楼#
发布于:2007-11-04 19:45
不相关的就用普通的全局变量好了...
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
sssslin
驱动牛犊
驱动牛犊
  • 注册日期2007-06-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分260分
  • 威望27点
  • 贡献值0点
  • 好评度26点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-11-04 18:49
如果不相关的呢?
比如我想设置一个标志,如果一个分发例程处理完了就更改这个标志,在另外的例程要处理前
先检查标志有没有被更改,然后确定是否直接返回IRP,该怎么做呢
sssslin
驱动牛犊
驱动牛犊
  • 注册日期2007-06-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分260分
  • 威望27点
  • 贡献值0点
  • 好评度26点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-11-04 18:42
谢谢
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
9楼#
发布于:2007-11-04 09:39
可以.设备扩展也相当于全局变量区,只不过是设备对象相关的罢了
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
sssslin
驱动牛犊
驱动牛犊
  • 注册日期2007-06-28
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分260分
  • 威望27点
  • 贡献值0点
  • 好评度26点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-11-04 09:36
我想:
在设备扩展中定义一个UNICODE-STRING类型的全局变量  ,用来在各分发例程中使用,不知道是否可行?
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
11楼#
发布于:2007-11-03 10:31
全局变量只定义一个指针,在driverentry时分配.
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
test001
驱动小牛
驱动小牛
  • 注册日期2006-11-12
  • 最后登录2008-11-07
  • 粉丝0
  • 关注0
  • 积分990分
  • 威望170点
  • 贡献值0点
  • 好评度169点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2007-11-02 23:04
同问!
我是定义在最开始了,但是好像变量的缓冲区超过4096,驱动就会导致蓝屏!
不知道怎么办?
stevphen1
驱动牛犊
驱动牛犊
  • 注册日期2007-09-29
  • 最后登录2007-11-02
  • 粉丝0
  • 关注0
  • 积分230分
  • 威望24点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2007-11-02 12:16
这个问题比较难!
不过你要是知道在写其他非驱动程序时如何定义全局变量的话,也可以解决,好像也没什么不同。
游客

返回顶部