阅读:860回复:2
usb设备中终点的问题
各位大侠,小弟现在有一个小问题,有些疑惑,请大家帮忙指导一下。
假如一个usb设备除了0终点之外还有3个终点,一个用于中断IN,一个用于中断OUT,还有一个用于批量传输IN,假如驱动已经写好了,用的是GUID生成设备接口,那么我的应用程序应该怎么分别访问这3个终点呢?是先 handle=CreateFile(\\\\devicename\\\\endponitNumber),然后ReadFile(handle),终点号包含在设备名里? 请问是不是这样访问终点呢?如果不是那又该怎么样呢?谢谢。 因为我是这样想的,在开发一个设备时,先只测试它的控制终点,这样就可以先写访问控制终点的应用程序,接下来再写访问中断IN的终点,测试中断In终点。。。如果是照我上面的访问格式,那程序就好写了一点! |
|
最新喜欢:![]() |
沙发#
发布于:2003-12-26 19:30
我也正在做这方面.
我是这么想的不知对不对. 你的三个端点(除0)是不是应该分别对应三个缓冲区. 然后根据USB侦来决定用那个端点.再创建. |
|
板凳#
发布于:2003-12-27 09:30
控制端点是通过build vendor request 来访问的,当然这也适用于standard request。它是比较特殊的一个,它的描述符不在总的描述符表里。
其它的端点的信息都在端点描述符结构的元素Pipes[]数组里,其中Pipe[0]对应你设备全部配置描述符中的第一个端点信息,1、2 等依次后推。 如果你想访问第二个端点,那么在驱动里build request 的时候就要把第二个端点的句柄 Pipes[1].PipeHandle填到相应的参数项里,至于你怎么样把你使用的端点号告诉驱动,你可以通过deviceiocontrol()的inputbuffer传过去,也可以通过其它方式。 |
|