阅读:892回复:3
关于使用全局变量
HI:
我在我的驱动程序的头文件中定义了一个全局指针:PCHAR inbuf.然后用 DeviceIoControl()从应用程序中发送30个数据给驱动程序 inBuf = Irp->AssociatedIrp.SystemBuffer; 以后在驱动的很多地方用到inbuf.不知道这样使用对不对。那为兄弟能否为我提一些建议!谢谢! |
|
沙发#
发布于:2003-07-28 09:37
kao...........
deviceiocontrol一结束,那快内存可能被删除了。 最好的方法是自已分配并copy 保存。 兄弟,这是基本的编程思想。 |
|
板凳#
发布于:2003-07-28 10:12
谢谢你的回答:
如果我在头文件中这样定义: PCHAR inbuf = ExAllocatePool(NonPagedPool,50) 由于我的驱动程序很多地方都用到inbuf.我不知道在什么地方将他释放掉。 |
|
地板#
发布于:2003-07-28 10:39
最好把你的全局变量放在设备扩展中,因为有时存在驱动被唤出的情况,这时变量本身的值就变了,比如流类的 SRB_PAGING_OUT_DRIVER 。
|
|
|