escape
驱动老牛
驱动老牛
  • 注册日期2002-02-01
  • 最后登录2004-08-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1989回复:3

各位好!usb endpoint的地址问题?

楼主#
更多 发布于:2004-06-30 16:18
这个地址在什么地方会用到?
比如传输数据,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,
是不是就是这些句柄,可供进一步使用?
 :(

最新喜欢:

abei11abei11
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-02 13:01
usb 设备上没有pipe的定义,只有endpoint的定义。pipe是从endpoint上得到的功能定义。所以,客户驱动程序只使用pipe的handle,来访问usb设备上的endpoint
新手上路,请多关照.
lejianz
驱动中牛
驱动中牛
  • 注册日期2003-03-05
  • 最后登录2023-11-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望145点
  • 贡献值0点
  • 好评度116点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2004-07-02 13:24
在ENDPOINT你定义的0X81,0X82或0X01,0X02仅是相对你的设备的INDEX值,这当然不能在驱动里找到,实际上,当枚举后,主控制器会有一个唯一的句柄来指向它。这就是你的第二问提到的。如果应用程序要打开某PIPE,可根据设备名找到相应的PIPI句柄。我认为PIPE是描述了数据的流向,而EP仅是一个设备上的节点。
一起交流,共同提高!
supcent
驱动牛犊
驱动牛犊
  • 注册日期2003-12-18
  • 最后登录2005-11-27
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-02 17:09
ds里的BULK例子最好回答你的问题了。一目了然。:)
游客

返回顶部