阅读:3652回复:5
求助:iocalldriver 为什么总是返回 STATUS_NOT_SUPPORTED?
在usb的类驱动上层做一个upperfilter
希望能在接上设备时判断设备类型 故构造urb、irp发往下层,但插上一个u盘进行调试的时候,IOCTL_INTERNAL_USB_SUBMIT_URB类型的irp,USB_CONFIGURATION_DESCRIPTOR_TYPE的urb,使用iocalldriver调用时直接返回一个 STATUS_NOT_SUPPORTED 如能解答,感激不尽! |
|
沙发#
发布于:2009-09-19 16:48
自己先顶,顺便补充一点说明
在调试时,系统启动时usb类驱动上一层层启动加载的时候,该程序是可以正常的返回各种结果,而不是单单地就返回这么一个STATUS_NOT_SUPPORTED 感觉这样说明程序本身并没有问题 百思不得其解 |
|
板凳#
发布于:2009-09-24 16:29
唉,发个帖根本没人理,共享精神在中国何在?
花了两个星期才弄明白,留给后来人。 再遇到这种情况,可以试着把查询直接发给底层的PDO,询问可能被中间层给截获了。 |
|
地板#
发布于:2009-09-24 16:33
自己搞明白了,试着将IRP直接发给底层pdo,而不是像大多数例子代码里一样发给原栈顶device_object,在adddevice时在device extension中保存pdo的值,然后构造调用都直接对pdo进行,防止中间被不支持该irp的设备截获。
|
|
地下室#
发布于:2010-07-17 10:23
感谢。受教了!
|
|
5楼#
发布于:2010-08-05 16:40
兄弟,你是个真心搞技术的人,非常想和你交个朋友,QQ:469322505,加起,一起前进,谢谢!
|
|