assert&chuip
驱动牛犊
驱动牛犊
  • 注册日期2003-02-19
  • 最后登录2008-06-02
  • 粉丝0
  • 关注0
  • 积分48分
  • 威望9点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:893回复:3

关于使用全局变量

楼主#
更多 发布于:2003-07-28 09:17
HI:
  我在我的驱动程序的头文件中定义了一个全局指针:PCHAR inbuf.然后用
DeviceIoControl()从应用程序中发送30个数据给驱动程序
inBuf = Irp->AssociatedIrp.SystemBuffer;

以后在驱动的很多地方用到inbuf.不知道这样使用对不对。那为兄弟能否为我提一些建议!谢谢!
vcmfc
驱动中牛
驱动中牛
  • 注册日期2001-03-23
  • 最后登录2008-01-28
  • 粉丝0
  • 关注0
  • 积分528分
  • 威望53点
  • 贡献值0点
  • 好评度52点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-07-28 09:37
kao...........

deviceiocontrol一结束,那快内存可能被删除了。

最好的方法是自已分配并copy 保存。


兄弟,这是基本的编程思想。
assert&chuip
驱动牛犊
驱动牛犊
  • 注册日期2003-02-19
  • 最后登录2008-06-02
  • 粉丝0
  • 关注0
  • 积分48分
  • 威望9点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-07-28 10:12
谢谢你的回答:
  如果我在头文件中这样定义:
PCHAR inbuf = ExAllocatePool(NonPagedPool,50)
由于我的驱动程序很多地方都用到inbuf.我不知道在什么地方将他释放掉。
swf2003
驱动中牛
驱动中牛
  • 注册日期2003-02-13
  • 最后登录2011-10-28
  • 粉丝1
  • 关注0
  • 积分4分
  • 威望22点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-07-28 10:39
最好把你的全局变量放在设备扩展中,因为有时存在驱动被唤出的情况,这时变量本身的值就变了,比如流类的 SRB_PAGING_OUT_DRIVER 。
你的认可是对我最大的鼓励!
游客

返回顶部