相关文章推荐
跑龙套的企鹅  ·  pyqt ...·  9 月前    · 
活泼的灌汤包  ·  android - Cloudmine ...·  1 年前    · 
跑龙套的企鹅  ·  QT: sqlite和qlist问题·  1 年前    · 

Device Class GUID, Device Interface Class GUID, Interface GUID是有区别的,另外奉上两篇MSDN文章:

http://msdn.microsoft.com/en-us/library/windows/hardware/ff553412(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/windows/hardware/ff553428(v=vs.85).aspx

Device Class GUID 是INF文件中Verison Section中指名的设备类GUID,他标志着此设备图标,此设备出现在哪一栏,电压电流等各种信息。

Interface GUID是指驱动程序中的GUID, 用于使用API打开此设备进行一系列读写操作,API代码如下(FINDSTR_USB_DEVICE即为我驱动程序中使用的GUID):

 1     //得到设备的句柄
 2         HDEVINFO    info=SetupDiGetClassDevs((LPGUID)&FINDSTR_USB_DEVICE,NULL,NULL,DIGCF_PRESENT|DIGCF_INTERFACEDEVICE);
 3         if(info==INVALID_HANDLE_VALUE)
 5             AfxMessageBox("No HDEVINFO avaliable for this GUID\n");
 6             return    ;
 9         SP_INTERFACE_DEVICE_DATA ifdata;
10         ifdata.cbSize=sizeof(ifdata);
11         DWORD instance=0;
12         if(!SetupDiEnumDeviceInterfaces(info,NULL,(LPGUID)&FINDSTR_USB_DEVICE,instance,&ifdata))
13         {
14             AfxMessageBox("No SP_INTERFACE_DEVICE_DATA available for this GUID instance");
15             SetupDiDestroyDeviceInfoList(info);
16             return    ;
17         }
19         //得到符号链接名
20         DWORD ReqLen;
21         SetupDiGetDeviceInterfaceDetail(info,&ifdata,NULL,0,&ReqLen,NULL);
22         PSP_INTERFACE_DEVICE_DETAIL_DATA ifDetail=(PSP_INTERFACE_DEVICE_DETAIL_DATA)new char[ReqLen];
23         if(ifDetail==NULL)
24         {
25             AfxMessageBox("Error 1");
26             SetupDiDestroyDeviceInfoList(info);
27             return    ;
28         }
29         ifDetail->cbSize=sizeof(SP_INTERFACE_DEVICE_DETAIL_DATA);
30         if(!SetupDiGetDeviceInterfaceDetail(info,&ifdata,ifDetail,ReqLen,NULL,NULL))
31         {
32             AfxMessageBox("Error 2");
33             SetupDiDestroyDeviceInfoList(info);
34             delete ifDetail;
35             return    ;
36         }
37         char buff[256]={0};
38         char * format="Symbolic link is %s\n";
39         sprintf(buff,format,ifDetail->DevicePath);
40         HANDLE    rv=CreateFile(ifDetail->DevicePath,
41                         GENERIC_READ|GENERIC_WRITE,
42                         FILE_SHARE_READ|FILE_SHARE_WRITE,
43                         NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OVERLAPPED,NULL);
44         //end of 得到设备句柄
45         delete    ifDetail;
46         SetupDiDestroyDeviceInfoList(info);
48         hDevice=rv;
49         DWORD ThreadId;
50         hThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)UpDate,this,0,&ThreadId);
51         m_EchoLed1.EnableWindow(TRUE);
52         m_EchoLed2.EnableWindow(TRUE);
53         m_OpenDevice.SetWindowText("关闭设备");
 1 //注册 某个USB设备接口类 事件
 2   GUID zz = {0xA5DCBF10, 0x6530, 0x11D2, 0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 
 3         0x51, 0xED};
 4     DEV_BROADCAST_DEVICEINTERFACE DevBroadcastDeviceInterface;
 6     DevBroadcastDeviceInterface.dbcc_size = sizeof(DevBroadcastDeviceInterface);
 7     DevBroadcastDeviceInterface.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
 8     DevBroadcastDeviceInterface.dbcc_classguid = zz;
 9     RegisterDeviceNotification(m_hWnd, &DevBroadcastDeviceInterface,
10         DEVICE_NOTIFY_WINDOW_HANDLE);
Device Class GUID, Device Interface Class GUID, Interface GUID是有区别的,另外奉上两篇MSDN文章:    http://msdn.microsoft.com/en-us/library/windows/hardware/ff553412(v=vs.85).aspx  http://msdn.microsoft. Bg:如流,新一代智能工作平台 //***************************************************************************** 注:此处仅为搬移,该文章原文为: USB GUID查找 - kevinzhwl - 博客园... using System.Management; using System.Text.RegularExpressions; using System.Collections.Generic; namespace FstScandTest /// <summary> /// 即插即用 设备 信息结构 /// </summary...
USB 基础知识扫盲 本文将从 USB 插入 检测 、身份识别、数据传输三个方面对 USB 通讯整个过程扫盲,其中有些知识点的详细信息会放在文章最下面的附录中供查看,从而保证文章的整体简洁。在进入主题之前,首先了解一下 USB 的一些基础知识 USB 的分类 按接口类型分 控制器/主机(controller/host) 设备 (periphe...
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class :是 设备 安装类GUID,在devguid.h中。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses: 设备 接口类GUID,部分在winioctl.h中。 计算机管理属性中的信息: 计算机中有各种个样...