hhddy
驱动牛犊
驱动牛犊
  • 注册日期2003-09-13
  • 最后登录2006-12-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1508回复:4

请教高手:关于设备接口类

楼主#
更多 发布于:2003-09-15 15:37
各位大虾:
   这个问题折磨小弟很久了,请务必指点。
   调用HDEVINFO HardwareDeviceInfo = SetupDiGetClassDevs((LPGUID)&GUID_USB,NULL,NULL,DIGCF_ALLCLASSES)成功,调用SetupDiEnumDeviceInfo(HardwareDeviceInfo,index,&DeviceInfo)枚举设备信息,也可以成功;但调用SetupDiEnumDeviceInterfaces(HardwareDeviceInfo,NULL,(LPGUID)&GUID_USB,index,&DeviceInterfaceData)却不能得到设备接口信息?这是问题1,还有,若在调用SetupDiGetClassDevs时指明为接口类,即HardwareDeviceInfo = SetupDiGetClassDevs((LPGUID)&GUID_USB,NULL,NULL,DIGCF_DEVICEINTERFACE),则连枚举设备信息SetupDiEnumDeviceInfo(HardwareDeviceInfo,index,&DeviceInfo)也失败。好象带上设备接口GUID_USB后,API调用就不成功。不知道是为什么?
//USB的接口GUID从注册表中查得为
{36FC9E60-C465-11CF-8056-444553540000}并定义如下:
#include <initguid.h>
DEFINE_GUID(GUID_USB,
0X36FC9E60, 0XC465, 0X11CF, 0X80, 0X56, 0X44,0X45, 0X53, 0X54, 0X00, 0X00);

[编辑 -  9/15/03 by  hhddy]

最新喜欢:

zl7910zl7910
usb_anywhere
驱动小牛
驱动小牛
  • 注册日期2003-07-29
  • 最后登录2005-11-22
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-09-16 14:57
在SetupDiEnumDeviceInterfaces前,加入这一句,查查看HardwareDeviceInfo是否是有效的,你的代码是没有问题的


if (HardwareDeviceInfo==INVALID_HANDLE_VALUE)
return NULL;
驱网是你们的,也是我们的,归根结底还是大家的!
sprite3
驱动牛犊
驱动牛犊
  • 注册日期2003-10-10
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-10-20 10:21
我遇到的也是相同的问题
SetupDiGetClassDevs返回的句柄有效
但是SetupDiEnumDeviceInterfaces枚举不出来,返回句柄无效
GetLastError()返回的结果:259 No more data is available.  ERROR_NO_MORE_ITEMS

谁能帮忙?帮我解决了问题,我所有能给的分都给了!
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-10-20 10:52
macwin方便回答一下吗!
hhddy
驱动牛犊
驱动牛犊
  • 注册日期2003-09-13
  • 最后登录2006-12-11
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-10-20 21:08
我的问题解决了,是GUID搞错了,
我想你们的问题也可能是这样的,在检查一下吧,,
游客

返回顶部