hkq250813
驱动牛犊
驱动牛犊
  • 注册日期2004-06-12
  • 最后登录2013-06-03
  • 粉丝0
  • 关注0
  • 积分32分
  • 威望14点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:1680回复:8

USB大牛请进,菜鸟免了

楼主#
更多 发布于:2004-07-19 17:01
各位大牛们:
          小弟有个问题未解决,要请教一下.我想获取USB设备的接口信息(_USBD_INTERFACE_INFORMATION).用UsbBuildGetDescriptorRequest()只能取得设备配置描述符与接口描述符,但得不到设备的接口信息(_USBD_INTERFACE_INFORMATION).如何由某个接口描述符得到它的接口信息(_USBD_INTERFACE_INFORMATION)??? 哪位大牛能告诉小弟呀,小弟万分感激!!!! 50分相送!
aha_here
驱动小牛
驱动小牛
  • 注册日期2003-10-11
  • 最后登录2009-03-07
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-19 20:39
我是菜鸟,偏要叫!!
[size=3][color=red]勤学好问[/color][/size] [img]http://www.driverdevelop.com/forum/avatar/aha_here_xiao_zu.gif[/img]
snowStart
驱动老牛
驱动老牛
  • 注册日期2004-04-06
  • 最后登录2011-06-02
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望19点
  • 贡献值177点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-19 21:52
你是在哪里取呀,是在驱动里还是在应用程序里

如果是应用层,可以用DeviceIoControl函数,
指定为IOCTL_BULKUSB_GET_CONFIG_DESCRIPTOR
但不是(_USBD_INTERFACE_INFORMATION)结构,类似的USB_INTERFACE_DESCRIPTOR
学习,关注,交流中... [email=fengyu@163.com]Email:snowstarth@163.com[/email] [url]http://bbs.zndev.com/?a=snowStart[/url]
lhm_as
驱动牛犊
驱动牛犊
  • 注册日期2004-03-08
  • 最后登录2006-04-19
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-20 14:31
这种问题还用大牛吗,很多书上都有的。偏不告诉你。
snoopy_dl
驱动牛犊
驱动牛犊
  • 注册日期2003-01-21
  • 最后登录2004-08-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-07-20 14:47
各位大牛们:
          小弟有个问题未解决,要请教一下.我想获取USB设备的接口信息(_USBD_INTERFACE_INFORMATION).用UsbBuildGetDescriptorRequest()只能取得设备配置描述符与接口描述符,但得不到设备的接口信息(_USBD_INTERFACE_INFORMATION).如何由某个接口描述符得到它的接口信息(_USBD_INTERFACE_INFORMATION)??? 哪位大牛能告诉小弟呀,小弟万分感激!!!! 50分相送!


UsbBuildGetDescriptorRequest()不是在驱动程序用的
你是怎么在应用程序里使用的?
虚心向各位大虾请教~~~~~~ 争取自身的提高~~~~~~~~~~
majin1979
驱动牛犊
驱动牛犊
  • 注册日期2003-03-04
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分37分
  • 威望10点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-07-20 14:50
哎,这孩子,不会说话得罪人啦,谁没当过菜鸟?认真看看URB的
结构吧,就在UrbSelectConfiguration里找找。
Good good study,day day up
snoopy_dl
驱动牛犊
驱动牛犊
  • 注册日期2003-01-21
  • 最后登录2004-08-18
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-07-21 10:44

UsbBuildGetDescriptorRequest()不是在驱动程序用的
你是怎么在应用程序里使用的?

哎,这孩子,不会说话得罪人啦,谁没当过菜鸟?认真看看URB的
结构吧,就在UrbSelectConfiguration里找找。


你的是说在可以应用程序里使用UsbBuildGetDescriptorRequest?
能不能说的详细一些?
虚心向各位大虾请教~~~~~~ 争取自身的提高~~~~~~~~~~
lhm_as
驱动牛犊
驱动牛犊
  • 注册日期2004-03-08
  • 最后登录2006-04-19
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-07-21 12:10
这个对你或许有用?
void init(){

HDEVINFO hardwareDeviceInfo;
//获取设备信息集
hardwareDeviceInfo = SetupDiGetClassDevs (
                           (LPGUID)&GUID_CLASS_1581_BULK,
                           NULL, // Define no enumerator (global)
                           NULL, // Define no
                           (DIGCF_PRESENT | // Only Devices present
                            DIGCF_INTERFACEDEVICE)); // Function class devices.
  

   SP_INTERFACE_DEVICE_DATA deviceInfoData;
   int NumberDevices=4;//假定值,可以调整
   deviceInfoData.cbSize=sizeof(SP_INTERFACE_DEVICE_DATA);
//获取接口信息  
   for(int i=0;i<NumberDevices;i++){
 SetupDiEnumDeviceInterfaces (hardwareDeviceInfo,
                                         0, // We don't care about specific PDOs
(LPGUID)&GUID_CLASS_1581_BULK,
                                         i,
                                         &deviceInfoData) ;
   }
  
    PSP_INTERFACE_DEVICE_DETAIL_DATA     functionClassDeviceData = NULL;
    ULONG                                predictedLength = 0;
    ULONG                                requiredLength = 0;

    // allocate a function class device data structure to receive the
    // goods about this particular device.
     SetupDiGetInterfaceDeviceDetail (
            hardwareDeviceInfo,
            &deviceInfoData,
            NULL, // probing so no output buffer yet
            0, // probing so output buffer length of zero
            &requiredLength,
            NULL); // not interested in the specific dev-node


    predictedLength = requiredLength;

    functionClassDeviceData = (PSP_INTERFACE_DEVICE_DETAIL_DATA)malloc (predictedLength);
    functionClassDeviceData->cbSize = sizeof (SP_INTERFACE_DEVICE_DETAIL_DATA);

    // Retrieve the information from Plug and Play.
    //获取设备文件名

SetupDiGetInterfaceDeviceDetail (
               hardwareDeviceInfo,
               &deviceInfoData,
               functionClassDeviceData,
               predictedLength,
               &requiredLength,
               NULL);
    strcpy(devname,functionClassDeviceData->DevicePath);

free(functionClassDeviceData);

}
hacker_fzx
驱动牛犊
驱动牛犊
  • 注册日期2002-08-20
  • 最后登录2014-03-21
  • 粉丝0
  • 关注0
  • 积分112分
  • 威望53点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-07-25 19:42
嘻嘻,我是菜鸟,所以不好意思告诉你了
游客

返回顶部