zy860326
驱动牛犊
驱动牛犊
  • 注册日期2009-09-02
  • 最后登录2010-09-07
  • 粉丝2
  • 关注2
  • 积分48分
  • 威望371点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:3378回复:5

求助:iocalldriver 为什么总是返回 STATUS_NOT_SUPPORTED?

楼主#
更多 发布于:2009-09-19 16:38
在usb的类驱动上层做一个upperfilter

希望能在接上设备时判断设备类型

故构造urb、irp发往下层,但插上一个u盘进行调试的时候,IOCTL_INTERNAL_USB_SUBMIT_URB类型的irp,USB_CONFIGURATION_DESCRIPTOR_TYPE的urb,使用iocalldriver调用时直接返回一个 STATUS_NOT_SUPPORTED

如能解答,感激不尽!
zy860326
驱动牛犊
驱动牛犊
  • 注册日期2009-09-02
  • 最后登录2010-09-07
  • 粉丝2
  • 关注2
  • 积分48分
  • 威望371点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-09-19 16:48
自己先顶,顺便补充一点说明

在调试时,系统启动时usb类驱动上一层层启动加载的时候,该程序是可以正常的返回各种结果,而不是单单地就返回这么一个STATUS_NOT_SUPPORTED
感觉这样说明程序本身并没有问题
百思不得其解
zy860326
驱动牛犊
驱动牛犊
  • 注册日期2009-09-02
  • 最后登录2010-09-07
  • 粉丝2
  • 关注2
  • 积分48分
  • 威望371点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2009-09-24 16:29
唉,发个帖根本没人理,共享精神在中国何在?

花了两个星期才弄明白,留给后来人。

再遇到这种情况,可以试着把查询直接发给底层的PDO,询问可能被中间层给截获了。
zy860326
驱动牛犊
驱动牛犊
  • 注册日期2009-09-02
  • 最后登录2010-09-07
  • 粉丝2
  • 关注2
  • 积分48分
  • 威望371点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2009-09-24 16:33
自己搞明白了,试着将IRP直接发给底层pdo,而不是像大多数例子代码里一样发给原栈顶device_object,在adddevice时在device extension中保存pdo的值,然后构造调用都直接对pdo进行,防止中间被不支持该irp的设备截获。
newfire@163.com
驱动牛犊
驱动牛犊
  • 注册日期2008-01-29
  • 最后登录2011-07-18
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望133点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2010-07-17 10:23
感谢。受教了!
wjc13142yiyan
驱动牛犊
驱动牛犊
  • 注册日期2010-08-05
  • 最后登录2010-08-10
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2010-08-05 16:40
兄弟,你是个真心搞技术的人,非常想和你交个朋友,QQ:469322505,加起,一起前进,谢谢!
游客

返回顶部