4qiuxh
驱动小牛
驱动小牛
  • 注册日期2002-11-27
  • 最后登录2008-04-14
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:966回复:2

驱动程序是怎么识别用户是向那个端点读写数据得?

楼主#
更多 发布于:2003-04-09 12:35
我想问个问题,就是在写驱动得时候,怎么处理端点得问题呢?就是用户向哪个端点写数据的问题。写应用程序的时候,对于一个guid,我怎么知道读写文件的时候是对那个端点而言的呢?是不是一个端点应该有一个地址阿?虽然我看了一些驱动程序和应用程序,对这个问题还是很模糊,多谢大侠指教了! :mad:

最新喜欢:

baoyibao99baoyib...
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-04-09 14:50
每个驱动对端点的处理都不尽相同,没法详细解释,大致是在枚举时接收完全部的配置描述符后,驱动中会用函数    
USBD_ParseConfigurationDescriptorEx(ConfigurationDescriptor,
      ConfigurationDescriptor,
   -1,         // Interface - don\'t care
   -1,         // Alternate Setting - don\'t care
   -1,         // Class - don\'t care
   -1,         // SubClass - don\'t care
   -1);        // Protocol - don\'t care
来搜索配置描述符中的第一个接口描述符的内容,如果搜索到的话会用函数
urb = USBD_CreateConfigurationRequestEx(ConfigurationDescriptor, &interfaceList[0]);
来得到整个描述符中接口的信息,包括该接口的所有端点信息。
端点的信息就存储在urb->UrbSelectConfiguration.Interface的pipes中,你再仔细看看吧。
当你进行读写时,函数中会有一个端点的handle(每个端点有一个,且各不相同)参数,就通过这个handle来区分是对那个端点读写的。

你在驱动中搜索一下这两个函数,有可能没有后面的Ex,然后看msdn中的帮助
4qiuxh
驱动小牛
驱动小牛
  • 注册日期2002-11-27
  • 最后登录2008-04-14
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-04-09 15:18
谢谢阿,驱动我是看了的,由于时间的缘故,看得很快,因此这个问题一直没有弄清楚。我再好好看看。
游客

返回顶部