阅读:1368回复:5
在ds中如何定义设备扩展???
用DDK时,调用 IoCreateDevice创建一个设备对象的话,也可以增加自己的设备扩展,IoCreateDevice中有参数 DeviceExtensionSize 可以填上。这样在以后的回调例程中,通过pDeviceObject->DeviceExtension 就能访问到你的设备扩展。
问题:我用DS开发驱动,想要定义一个设备扩展,应该在什么地方定义呢,他的fdo和pdo又是怎样获得的呢? 急呀,请大虾帮帮忙吧 |
|
沙发#
发布于:2004-10-25 15:33
我看了论坛上关于设备扩展的帖子,此类问题似乎没有什么答案
难道用DriverWorks生成的框架不用设备扩展吗 难啊!!! |
|
板凳#
发布于:2004-10-27 15:07
我看了论坛上关于设备扩展的帖子,此类问题似乎没有什么答案 不是难,是没有人愿意回答,你又没有分刺激一下,所以... TestDevice * pDevice = new (NULL, FILE_DEVICE_UNKNOWN, NULL, 0, DO_DIRECT_IO | DO_POWER_PAGABLE ) TestDevice(Pdo, m_Unit); 这样的代码中,编译系统会将sizeof(TestDevice)作为扩展的大小传递到IoCreateDevice中。 |
|
|
地板#
发布于:2004-10-31 16:14
这几天考试一直没来,分数当然没问题,80分怎么样?
希望指点一下 我看到过这个new函数,是在driverworks向导生成的AddDevice中 你的意思是它自动创建了一个设备扩展,那么我想往这个扩展中加入一些内容该怎么做呢,比如说事件状态或标志什么的 |
|
地下室#
发布于:2004-10-31 16:51
先给20分吧!
status = IoCreateDevice(pDriverObject, sizeof(DEVICE_EXTENSION), NULL,FILE_DEVICE_UNKNOWN, 0, FALSE, &fdo);//这是ddk中调用的 你说的sizeof(TestDevice)是不是相当于上边的sizeof(DEVICE_EXTENSION),那么在driverworks里通过new调用 IoCreateDevice时,其他的参数有变化吗?那TestDevice是不是和DEVICE_EXTENSION一样的数据结构 |
|
5楼#
发布于:2004-10-31 18:32
这几天考试一直没来,分数当然没问题,80分怎么样? 是的,你可在TestDevice中增加成员就可以可以了。 那些变量变放在device ext中 |
|
|