lujunql
驱动小牛
驱动小牛
  • 注册日期2004-06-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:1666回复:5

关于SetupDiEnumDeviceInterfaces函数出错的问题!详见:

楼主#
更多 发布于:2004-11-23 09:20
在论坛中经常见到有人问SetupDiEnumDeviceInterfaces函数返回出错的问题!(我也问过)。其中在调用这个函数之前,都先要调用SetupDiGetClassDevs函数来准备要查找的设备,其中要指定一个GUID,关于这个GUID我一直都没有弄清楚是设备的GUID还是CLASSGUID。原先一直是当CLASSGUID的,经过我实验后发现,应该是设备的GUID。也就是设备在注册表中的SymbolicName后的GUID!各位试试应该可以成功的!
lujunql
驱动小牛
驱动小牛
  • 注册日期2004-06-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-11-24 11:26
看来大家都知道了!呵呵!
wangfa
驱动小牛
驱动小牛
  • 注册日期2002-11-01
  • 最后登录2006-04-17
  • 粉丝0
  • 关注0
  • 积分228分
  • 威望41点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-24 14:22
我也是按照SYMBOLICNAME来使用的,但是得不到设备的句柄,返回No matched Device
\??\USB#Vid_0471&Pid_0666#5&2858e07&0&1#{a5dcbf10-6530-11d2-901f-00c04fb951ed}

HDEVINFO HardwareDeviceInfo;
SP_DEVICE_INTERFACE_DATA deviceInfoData;
int NumberDevices;
ULONG lLastError;

HardwareDeviceInfo = SetupDiGetClassDevs(
(LPGUID)&GUID_CLASS_D12_BULK,//{6bdd1fc6-810f-11d0-bec7-08002be2092f}
NULL,
NULL,
(DIGCF_PRESENT|DIGCF_DEVICEINTERFACE)
);
if(HardwareDeviceInfo == INVALID_HANDLE_VALUE)
{
AfxMessageBox("Get Device Class Failed");
}
else
{
AfxMessageBox("Get Device Class Success");
}
NumberDevices = 4;
deviceInfoData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
for(int i=0;i < NumberDevices;i++)
{   //retrieves a context structure for a device interface of a device
//information set. Each call returns information about one device interface
SetupDiEnumDeviceInterfaces(HardwareDeviceInfo,
0,
(LPGUID)&GUID_CLASS_D12_BULK,
i,
&deviceInfoData);
}
lLastError = ::GetLastError();
if(GetLastError()==ERROR_NO_MORE_ITEMS)
AfxMessageBox("No matched Device");
else
{
AfxMessageBox("Found matched Device");
}
lujunql
驱动小牛
驱动小牛
  • 注册日期2004-06-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-11-26 08:23
用a5dcbf10-6530-11d2-901f-00c04fb951ed试试!
hanmuqiu
驱动牛犊
驱动牛犊
  • 注册日期2004-09-09
  • 最后登录2005-01-11
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-11-26 08:39
这里的GUID 应该是在驱动程序中定义的那个GUID.
驱动大家都不一样,安装哪个驱动就用哪个GUID.
lujunql
驱动小牛
驱动小牛
  • 注册日期2004-06-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-11-26 09:49
是的!
游客

返回顶部