阅读:1300回复:2
DS开发驱动,对里面的几个函数的用法不明白,请指点!
在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-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-19 12:55
如果想要得到设备、接口及端点的状态,如果把请求发出去,有没有可能设备已经不能返回信息了?
|
|