阅读:1174回复:3
请问这样的指针赋值算什么意思
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-12 19:13
指针
|
|
板凳#
发布于:2003-05-12 19:14
请注意第二条语句:dx->fdo = fdo; 使用变量dx只是为了使语句更短,可读性更强。两条语句合并就是:
(PWDM1_DEVICE_EXTENSION)fdo->DeviceExtension->fdo = fdo; |
|
|
地板#
发布于:2003-05-12 20:03
程序中会有很多地方要引用设备扩展,如果老是用(PWDM1_DEVICE_EXTENSION)fdo->DeviceExtension引用的话代码会很长,不利于阅读也不利于书写
|
|
|