阅读:2155回复:13
请教:如何在驱动程序中定义全局变量?
我想在驱动程序的各分发例程中共享一个变量,应该怎么做呢?
谢谢了 |
|
沙发#
发布于:2007-11-02 12:16
这个问题比较难!
不过你要是知道在写其他非驱动程序时如何定义全局变量的话,也可以解决,好像也没什么不同。 |
|
板凳#
发布于:2007-11-02 23:04
同问!
我是定义在最开始了,但是好像变量的缓冲区超过4096,驱动就会导致蓝屏! 不知道怎么办? |
|
地板#
发布于:2007-11-03 10:31
全局变量只定义一个指针,在driverentry时分配.
|
|
|
地下室#
发布于:2007-11-04 09:36
我想:
在设备扩展中定义一个UNICODE-STRING类型的全局变量 ,用来在各分发例程中使用,不知道是否可行? |
|
5楼#
发布于:2007-11-04 09:39
可以.设备扩展也相当于全局变量区,只不过是设备对象相关的罢了
|
|
|
6楼#
发布于:2007-11-04 18:42
谢谢
|
|
7楼#
发布于:2007-11-04 18:49
如果不相关的呢?
比如我想设置一个标志,如果一个分发例程处理完了就更改这个标志,在另外的例程要处理前 先检查标志有没有被更改,然后确定是否直接返回IRP,该怎么做呢 |
|
8楼#
发布于:2007-11-04 19:45
不相关的就用普通的全局变量好了...
|
|
|
9楼#
发布于:2007-11-05 08:23
好的
谢谢 |
|
10楼#
发布于:2007-11-05 10:53
引用第3楼znsoft于2007-11-03 10:31发表的 : |
|
11楼#
发布于:2007-11-05 10:56
[quote]引用第3楼znsoft于2007-11-03 10:31发表的 :
全局变量只定义一个指针,在driverentry时分配quote] 实在没理解,请问znsoft,为何全局变量只定义一个指针,又为何要在driverentry时分配? 能不能解释一下,免得我们这些新手误入歧途!!!! |
|
12楼#
发布于:2007-11-05 13:08
在哪儿分配无所谓,你只要保证需要访问时已经分配好即可.
因为全局变量有限,如果需要的容量大,你最好只在全局变量区保存指针..如果容量少,可以直接声明全局变量用 |
|
|
13楼#
发布于:2007-11-05 15:36
哦,那不是和普通全局变量一样?乍一看,还以为有什么特别之处,呵呵。
还是要谢谢你的热情! |
|