GUID 小问题!!

aguo2006 2006-08-22 02:31:15
我用别人的程序得到以下U盘信息;
第1端口有USB设备连接
状态:已连接!
连接设备名:{36FC9E60-C465-11CF-8056-444553540000}\0006
connection index:[Port:1]
Device class:0x0,idVendor:0x58F,
idProduct:0x9380,
iManufacturer:0x1,
iSerialNumber:0x0,
bus speed:full,
Device Address:0x2,
Open Pipes:0x2

我在注册表里查到我U盘的驱动信息里找到
ClassGUID = {36FC9E60-C465-11CF-8056-444553540000}

问题是
1。这是我U盘设备的GUID吗?

2。我可以把它赋给guid吗?如下操作对吗?

GUID guid;
guid.Data1 = 0x36FC9E60;
guid.Data2 = 0xC465;
guid.Data3 = 0x11CF;
guid.Data4[0] = 0x80;
guid.Data4[1] = 0x56;
guid.Data4[2] = 0x44;
guid.Data4[3] = 0x45;
guid.Data4[4] = 0x53;
guid.Data4[5] = 0x54;
guid.Data4[6] = 0x00;
guid.Data4[7] = 0x00;

HDEVINFO HardwareDeivceInfo;

HardwareDeivceInfo = SetupDiGetClassDevs(&guidHID,NULL,NULL,(DIGCF_PRESENT|DIGCF_INTERFACEDEVICE));

SP_INTERFACE_DEVICE_DATA DeviceInfoData;
int NumberDevices;

NumberDevices = 10;
DeviceInfoData.cbSize = sizeof(SP_INTERFACE_DEVICE_DATA);
for(int i=0 ;i<NumberDevices;i++)
{
BOOL bSucess = SetupDiEnumDeviceInterfaces(HardwareDeivceInfo,0,&guidHID,i,&DeviceInfoData);
if(!bSucess)
return;
}

问题3是 SetupDiEnumDeviceInterfaces怎么第一次就返回错误呢?

多谢!!!
...全文
461 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
GoAround 2006-08-22
  • 打赏
  • 举报
回复
你用的那个是setup class GUID,不能用来得到device interface。
如果要访问磁盘的device interface,用

0x53f56307L, 0xb6bf, 0x11d0, 0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b

DDK的ntddstor.h里可以找到
aguo2006 2006-08-22
  • 打赏
  • 举报
回复
HardwareDeivceInfo = SetupDiGetClassDevs(&guidHID,NULL,NULL,(DIGCF_PRESENT|DIGCF_INTERFACEDEVICE));

HardwareDeivceInfo = SetupDiGetClassDevs(&guid,NULL,NULL,(DIGCF_PRESENT|DIGCF_INTERFACEDEVICE));

2,640

社区成员

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

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