阅读:1515回复:4
PDX->fdo=fdo;这2个fdo因该都是哪里的啊
typedef struct _DRIVER_OBJECT
{ CSHORT Type; CSHORT Size; ... } DRIVER_OBJECT, *PDRIVER_OBJECT; PDRIVER_OBJECT pdx = (PDEVICE_EXTENSION) fdo->DeviceExtension; 是不是DRIVER_OBJECT 等同于 struct _DRIVER_OBJECT PDRIVER_OBJECT pdx 等同于 struct _DRIVER_OBJECT *pdx; PDRIVER_OBJECT pdx = (PDEVICE_EXTENSION) fdo->DeviceExtension; 等于struct _DRIVER_OBJECT *pdx=(PDEVICE_EXTENSION) fdo->DeviceExtension; 是把DeviceExtension的地址赐给PDX,还是把DeviceExtension的值赐给PDX呢 还有就是PDX->fdo=fdo;这2个都是fdo哪里的fdo啊,学了很久了,也没弄明白, 请大家指解释点把,谢谢了 ![]() |
|
沙发#
发布于:2007-11-02 18:40
是不是DRIVER_OBJECT 等同于 struct _DRIVER_OBJECT // 是
PDRIVER_OBJECT pdx 等同于 struct _DRIVER_OBJECT *pdx; // 是 PDRIVER_OBJECT pdx = (PDEVICE_EXTENSION) fdo->DeviceExtension; // 明显不对,类型不一致 等于struct _DRIVER_OBJECT *pdx=(PDEVICE_EXTENSION) fdo->DeviceExtension; 是把DeviceExtension的地址赐给PDX, 还是把DeviceExtension的值赐给PDX呢 // 是; 还有就是PDX->fdo=fdo;这2个都是fdo哪里的fdo啊,学了很久了,也没弄明白, 真是建议你复习一下C语言先 |
|
板凳#
发布于:2007-11-02 21:14
非常感谢楼上的指点
真是建议你复习一下C语言先\\ C语言的书我看了很久了,2年了把,不下20遍,有问题就翻书, PDEVICE_EXTENSION pdx = (PDEVICE_EXTENSION) fdo->DeviceExtension; 等于struct PDEVICE_EXTENSION *pdx=(PDEVICE_EXTENSION) fdo->DeviceExtension; PDX->fdo=fdo; PDX->fdo这个FDO我知道,后面的FDO是哪里的我就不明白了,我估计是IoCreateDevice返回的,这样想对了把 ![]() |
|
地板#
发布于:2007-11-05 23:25
PDX->fdo这个FDO我知道,后面的FDO是哪里的我就不明白了,我估计是IoCreateDevice返回的,这样想对了把, // 就是你用 IoCreateDevice 创建的;
|
|
地下室#
发布于:2007-11-07 22:23
非常感谢bamu1984z,
![]() |
|