lucloud
驱动牛犊
驱动牛犊
  • 注册日期2003-04-24
  • 最后登录2004-01-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1125回复:3

请问这样的指针赋值算什么意思

楼主#
更多 发布于:2003-05-12 18:22
AddDevice的时候
在IoCreateDevice之后得到了fdo

然后都是用类似这样的语句来赋值指针

PWDM1_DEVICE_EXTENSION dx = (PWDM1_DEVICE_EXTENSION)fdo->DeviceExtension;
dx->fdo = fdo;

DeviceExtension(PVOID)是DEVICE_OBJECT结构里面指向一个由用户定义的数据结构,该
结构可用于保存每个设备实例的信息

可是既然DeviceExtension是个指向用户结构的指针,那么给他赋值也应该把
(PWDM1_DEVICE_EXTENSION)fdo->DeviceExtension放在等号左边啊

从这个赋值看怎么好象是反的啊??


本人刚学,不太明白,望做过驱动的大虾能告之一二    
巴乔
驱动牛犊
驱动牛犊
  • 注册日期2003-05-10
  • 最后登录2003-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-12 19:13
指针
zhanghuhu
驱动小牛
驱动小牛
  • 注册日期2002-11-30
  • 最后登录2005-02-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-12 19:14
请注意第二条语句:dx->fdo = fdo; 使用变量dx只是为了使语句更短,可读性更强。两条语句合并就是:
(PWDM1_DEVICE_EXTENSION)fdo->DeviceExtension->fdo = fdo;


多多交流
mailme
驱动老牛
驱动老牛
  • 注册日期2001-05-21
  • 最后登录2010-02-25
  • 粉丝0
  • 关注0
  • 积分26分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-05-12 20:03
程序中会有很多地方要引用设备扩展,如果老是用(PWDM1_DEVICE_EXTENSION)fdo->DeviceExtension引用的话代码会很长,不利于阅读也不利于书写
早起早睡 精神百倍
游客

返回顶部