SetupDiGetClassDevs和SetupDiEnumDeviceInterfaces问题,高手入内!

ddk_oxford 2007-10-04 01:12:31
我在使用ddk开发USB设备枚举的过程中,
遇到一件怪事,说出来大家听听,谁遇到
过或是解决了,给些建议。

hHardwareDevInfo = SetupDiGetClassDevs (
pUSBGUID,
NULL,
NULL,
(DIGCF_PRESENT | DIGCF_INTERFACEDEVICE)
);

该handle返回正确。
但是,
SetupDiEnumDeviceInterfaces (hHardwareDevInfo,
NULL,
pUSBGUID,
i, //变量
&deviceInfoData);
却一个正确的1都没有。

简单来说,系统发现了一个设备类存在,却找不到设备。

哪位兄弟有此遭遇?哪位高手提点一下?
...全文
2919 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
sistwl 2012-10-11
  • 打赏
  • 举报
回复
很想知道hUsbGuid等于多少
张佩 2011-02-12
  • 打赏
  • 举报
回复
按照你的代码来看,SetupDiGetClassDevs得到的是USB设备类,即所有USB设备的DevSet;SetupDiEnumDeviceInterfaces用来从DevSet中枚举制定的USB接口。此时你应当传入接口GUID而不是USB类GUID。而USB接口GUID,包括系统定义的GUID_DEVINTERFACE_USB_HUB、GUID_DEVINTERFACE_USB_DEVICE等等,或者用户自己定义而注册到系统中的。

明白?
ttffly 2010-02-02
  • 打赏
  • 举报
回复
SetupDiGetClassDevs,
SetupDiEnumDeviceInterfaces,
SetupDiGetInterfaceDeviceDetail,
SetupDiDestroyDeviceInfoList,
这几个函数再加上几
HDEVINFO
SP_DEVICE_INTERFACE_DATA
PSP_DEVICE_INTERFACE_DETAIL_DATA pDetail
都是定义在那个头文件你面的,编译的时候说的没有定义
那个高手能帮帮我,谢谢了!
wenh7788 2009-11-16
  • 打赏
  • 举报
回复
顶下
IT技术应用 2008-12-03
  • 打赏
  • 举报
回复
上面那位朋友的问题有没有解决啊?小弟也有同样的问题,找不到原因!有解决方法请帮忙教教小弟!
EMAIL:juxa_liqh@163.com
QQ: 904107425
kkmmgg 2008-11-29
  • 打赏
  • 举报
回复
这个问题我也想问呀.
这是我在网上找到的Interface GUID;
GUID_DEVINTERFACE_USB_HUB = '{f18a0e88-c30c-11d0-8815-00a0c906bed8}';
GUID_DEVINTERFACE_USB_DEVICE = '{A5DCBF10-6530-11D2-901F-00C04FB951ED}';
GUID_DEVINTERFACE_USB_HOST_CONTROLLER = '{3ABF6F2D-71C4-462a-8A92-1E6861E6AF27}';
GUID_USB_WMI_STD_DATA = '{4E623B20-CB14-11D1-B331-00A0C959BBD2}';
GUID_USB_WMI_STD_NOTIFICATION = '{4E623B20-CB14-11D1-B331-00A0C959BBD2}';
如果在SetupDiGetClassDevs 中用 GUID_DEVINTERFACE_USB_DEVICE GUID 就能找到USB设备的接口.

但{36FC9E60-C465-11CF-8056-444553540000}也是USB的GUID,怎么就找不到呢.

看来Interface GUID与Class GUID是不一样的.不知道它们之间有什么联系,真痛苦...
brucelei 2008-11-10
  • 打赏
  • 举报
回复
楼上的方法都试过了,同样还是找不到设备。问题应该是在GUID,但不知该用什么GUID
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
关注 接分
caitian6 2007-11-19
  • 打赏
  • 举报
回复
好象两个都行
柚木卤鹅 2007-11-16
  • 打赏
  • 举报
回复
guid不是该用DEFINE_GUID定义么, 还是直接= ?
caitian6 2007-11-07
  • 打赏
  • 举报
回复
这是有可能的。。。
我最近也在弄这东西,头都大了
你的pUSBGUID到底是什么? 应该是
GUID guid = { 0xA5DCBF10L,0x6530,0x11D2,0x90,0x1F,0x00,0xC0,0x4F,0xB9,0x51,0xED};//枚举当前USB设备

pUSBGUID = &guid;
dong_wei 2007-11-05
  • 打赏
  • 举报
回复
试下0xA5DCBF10,0x6530,0x11D2,0x90,0x1F,0x00,0xC0, 0x4F, 0xB9, 0x51, 0xED,如果不是的话
dong_wei 2007-11-05
  • 打赏
  • 举报
回复
可能原因:GUID有问题,要用Interface class
taianmonkey 2007-10-14
  • 打赏
  • 举报
回复
调试时,在watch中加入@err,hr,看返回什么错误信息!

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧