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

关于在驱动程序中使用全局变量

楼主#
更多 发布于:2003-06-17 10:43
HI:
  我从应用程序收到一串数据,我想在驱动的很多地方都用到,不知道能否用一个全局变量。
  不知道有没有更好的办法!

最新喜欢:

baoyibao99baoyib...
swf2003
驱动中牛
驱动中牛
  • 注册日期2003-02-13
  • 最后登录2011-10-28
  • 粉丝1
  • 关注0
  • 积分4分
  • 威望22点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-06-17 11:01
能用,但最好放在设备扩展中(DeviceObject->DeviceExtension)。
你的认可是对我最大的鼓励!
phenix_xiaomei
驱动小牛
驱动小牛
  • 注册日期2002-03-08
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望57点
  • 贡献值0点
  • 好评度24点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-06-17 11:07
支持楼上的!
assert&chuip
驱动牛犊
驱动牛犊
  • 注册日期2003-02-19
  • 最后登录2008-06-02
  • 粉丝0
  • 关注0
  • 积分48分
  • 威望9点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-06-17 11:18
swf2003:
   谢谢你的回答!能否给我说的详细一点!我没有这样用过!

swf2003
驱动中牛
驱动中牛
  • 注册日期2003-02-13
  • 最后登录2011-10-28
  • 粉丝1
  • 关注0
  • 积分4分
  • 威望22点
  • 贡献值0点
  • 好评度20点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-06-17 12:22
在创建设备对象时,调用IoCreateDevice(
    IN PDRIVER_OBJECT  DriverObject,
    IN ULONG  DeviceExtensionSize,
    IN PUNICODE_STRING  DeviceName  OPTIONAL,
    IN DEVICE_TYPE  DeviceType,
    IN ULONG  DeviceCharacteristics,
    IN BOOLEAN  Exclusive,
    OUT PDEVICE_OBJECT  *DeviceObject
)
它有一个参数DeviceExtensionSize,由I/0管理器给设备对象申请一块非分页内存,大小为 DeviceExtensionSize,
在设备对象指针(DEVICE_OBJECT)中有一个指针域  PVOID DeviceExtension指向这块空间,你的驱动中可以在这快空间中保存一些信息。

希望对你有用!
你的认可是对我最大的鼓励!
xyyln
驱动老牛
驱动老牛
  • 注册日期2003-01-02
  • 最后登录2009-12-28
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-06-18 09:22
如果全局变量占用空间小,其实放在任何一个头文件里都可以的,:)
[img]http://www.jt99.com/zjbbs/UploadFile/2003113018513643830.gif[/img]
luckyrex
驱动小牛
驱动小牛
  • 注册日期2002-04-01
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分185分
  • 威望20点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-06-18 12:06
我还是建议放在设备扩展(DeviceExtension)里。如果放在头文件
里面,当碰到驱动复用的情况时很容易出问题。
libin2309
驱动大牛
驱动大牛
  • 注册日期2002-11-20
  • 最后登录2005-12-29
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-06-18 15:52
我想问的是,如果用DRIVERSTUDIO的话,我申请的全局变量放在什么地方?DS里没有设备扩展结构。
我的问题也就是,我想申请一片非分页内存,里面存放一些驱动中常用到的信息,而且能使驱动里的例程能访问这片内存,在DS里该怎么做?
我是一只小小鸟,永远也飞也飞不高,但我永远在飞!
lifeship
驱动小牛
驱动小牛
  • 注册日期2002-10-18
  • 最后登录2005-07-19
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-06-20 20:42
全局变量占堆栈空间,太大了不太好的
杯汝前来,  老子今朝,  放荡形骸!  甚长年抱渴,  咽如焦釜,  于今喜醉,  气似奔雷!  慢说刘伶,  古今达者,  醉后何妨死便埋! 
游客

返回顶部