阅读:1989回复:3
各位好!usb endpoint的地址问题?
这个地址在什么地方会用到?
比如传输数据,DDK哪个函数需要这个参数? :( USB ENDPOINT的地址是高四位代表输入输出,低四位代表 第几个端点。 这个地址可以在USB_ENDPOINT_DESCRIPTOR中获取到。 我看了一下UsbBuildGetInterruptOrBulkTransferRequest函数, 第三个参数是IN USBD_PIPE_HANDLE PipeHandle,好像和endpoint 没有什么关系。因为pipe是第0个endpoint。 奇怪? :( 在创建USBD_CreateConfigurationRequestEx后, 发送相应的irp后,察看urb的返回值,会有 USBD_INTERFACE_INFORMATION 以及 USBD_PIPE_INFORMATION 其中会有接口句柄USBD_INTERFACE_HANDLE, 以及管道句柄USBD_PIPE_HANDLE, 是不是就是这些句柄,可供进一步使用? :( |
|
最新喜欢:abei11 |
沙发#
发布于:2004-07-02 13:01
usb 设备上没有pipe的定义,只有endpoint的定义。pipe是从endpoint上得到的功能定义。所以,客户驱动程序只使用pipe的handle,来访问usb设备上的endpoint
|
|
|
板凳#
发布于:2004-07-02 13:24
在ENDPOINT你定义的0X81,0X82或0X01,0X02仅是相对你的设备的INDEX值,这当然不能在驱动里找到,实际上,当枚举后,主控制器会有一个唯一的句柄来指向它。这就是你的第二问提到的。如果应用程序要打开某PIPE,可根据设备名找到相应的PIPI句柄。我认为PIPE是描述了数据的流向,而EP仅是一个设备上的节点。
|
|
|
地板#
发布于:2004-07-02 17:09
ds里的BULK例子最好回答你的问题了。一目了然。:)
|
|