巴乔
驱动牛犊
驱动牛犊
  • 注册日期2003-05-10
  • 最后登录2003-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1300回复:2

DS开发驱动,对里面的几个函数的用法不明白,请指点!

楼主#
更多 发布于:2003-05-18 15:14
在DS中
KUsbLowerDevice
KUsbInterface
KUsbPipe

都有ClearFeature这个函数,而且定义格式一样
NTSTATUS ClearFeature(
   USHORT Feature,
   PIO_COMPLETION_ROUTINE CompletionRoutine=NULL,
   PVOID Context=NULL
);

偶对第一个参数的用法不明白,对照了USB协议,看看了一整天还不行啊,恳请大虾指点!偶主要是想知道当分别对设备、接口及端点ClearFeature的时候,第一个参数应该定义成什么值,分别是0、1、2吗!

另外,如果设备、接口及端点都正常工作,偶调用了clearfeature后会对设备的正常工作产生不良影响吗?
巴乔
驱动牛犊
驱动牛犊
  • 注册日期2003-05-10
  • 最后登录2003-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-05-18 22:14
刚才又试了一下,实现用户请求,然后实现复位端口、管道!
代码:
case IOCTL_USB_RESET_PIPE:
     status=m_Pipe.Reset();
     break;

case IOCTL_USB_RESET_PORT:
     ULONG_PTR nInfo=NULL;
     status=m_Lower.DeviceIoControl
                (IOCTL_INTERNAL_USB_RESET_PORT,
                 NULL,
                 0,
                 NULL,
                 0,
                 TRUE,
                 &nInfo);
     break;



可是在出现了Pid stall或endp halted后调用这两个请求有时后能成功,有时后则是995(通过GetLastError获得),995对应的是“由于线程退出或应用程序的要求,I/O 操作异常终止。 ”。

偶都不知道怎么请教各位大虾了! :(

[编辑 -  5/18/03 by  巴乔]
巴乔
驱动牛犊
驱动牛犊
  • 注册日期2003-05-10
  • 最后登录2003-06-03
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-05-19 12:55
如果想要得到设备、接口及端点的状态,如果把请求发出去,有没有可能设备已经不能返回信息了?
游客

返回顶部