m_strLog.Empty();
m_strLog = _T("正在查找系统中HID类的GUID标识...\r\n");
SetDlgItemText(IDC_EDIT_REPORT,m_strLog);
// 查找本系统中HID类的GUID标识
GUID guidHID;
HidD_GetHidGuid(&guidHID);
m_strLog += _T("HID类的GUID标识为\r\n");
CString strShow;
strShow.Format("%08x-%04x-%04x-%02x-%02x-%02x-%02x-%02x-%02x-%02x-%02x\r\n",
guidHID.Data1,guidHID.Data2,guidHID.Data3,guidHID.Data4[0],
guidHID.Data4[1],guidHID.Data4[2],guidHID.Data4[3],guidHID.Data4[4],
guidHID.Data4[5],guidHID.Data4[6],guidHID.Data4[7]);
m_strLog += strShow;
SetDlgItemText(IDC_EDIT_REPORT,m_strLog);
// 准备查找符合HID规范的USB设备
HDEVINFO hDevInfo = SetupDiGetClassDevs(&guidHID,NULL,0,
DIGCF_PRESENT | DIGCF_DEVICEINTERFACE);
UINT nIndex = 0;
m_strLog += _T("正在查找可用的USB设备...\r\n");
SetDlgItemText(IDC_EDIT_REPORT,m_strLog);
// 查找USB设备接口
SP_DEVICE_INTERFACE_DATA strtInterfaceData;
BOOL bSuccess = SetupDiEnumDeviceInterfaces(hDevInfo,NULL,&guidHID,0,
&strtInterfaceData);
if (!bSuccess)
{
m_strLog += _T("抱歉,未找到可用的USB设备");
SetupDiDestroyDeviceInfoList(hDevInfo);
return;
}
// 若找到了设备,则读取设备路径名
SP_DEVICE_INTERFACE_DETAIL_DATA strtDetailData;
if (!SetupDiGetDeviceInterfaceDetail(hDevInfo,&strtInterfaceData,
&strtDetailData,sizeof(strtDetailData),NULL,NULL))
{
AfxMessageBox(_T("查找设备路径时出错!"));
SetupDiDestroyDeviceInfoList(hDevInfo);
return;
}
// 找到了设备路径
m_strPath = strtDetailData.DevicePath;
strShow.Format("可以通过路径%s访问设备\r\n",m_strPath);
m_strLog += strShow;
SetDlgItemText(IDC_EDIT_REPORT,m_strLog);
// 开放与设备的通信
HANDLE hCom = CreateFile(m_strPath,GENERIC_READ | GENERIC_WRITE,
0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if (hCom = INVALID_HANDLE_VALUE)
{
AfxMessageBox(_T("无法打开通信端口"));
SetupDiDestroyDeviceInfoList(hDevInfo);
return;
}
// 查询设备标识
HIDD_ATTRIBUTES strtAttrib;
m_strPath += _T("正在读取设备的标识...\r\n");
SetDlgItemText(IDC_EDIT_REPORT,m_strPath);
if (!HidD_GetAttributes(hCom,&strtAttrib))
{
AfxMessageBox(_T("查询设备状态时出错!"));
CloseHandle(hCom);
SetupDiDestroyDeviceInfoList(hDevInfo);
}
// 将有关该设备的标识显示出来
m_strPath += _T("已读取,见右边所示\r\n");
SetDlgItemText(IDC_EDIT_REPORT,m_strPath);
// 显示供应商标识
strShow.Format("0x%x",strtAttrib.VendorID);
SetDlgItemText(IDC_ID_VENDOR,strShow);
// 显示产品标识
strShow.Format("0x%x",strtAttrib.ProductID);
SetDlgItemText(IDC_ID_PRODUCT,strShow);
// 显示产品版本号
strShow.Format("%d",strtAttrib.VersionNumber);
SetDlgItemText(IDC_ID_VERSION,strShow);
// 释放资源
CloseHandle(hCom);
SetupDiDestroyDeviceInfoList(hDevInfo);
分享到:
相关推荐
### 详细解析Windows USB驱动与Linux USB驱动的相似和差异 #### 一、USB协议概述 USB(Universal Serial Bus)即通用串行总线,是一种常见的接口标准和技术规范,用于设备之间的连接、通信以及电源供应。无论是...
标题 "技嘉 windows usb installation tool 官方版.rar" 提供了一个关键信息,即这是一个用于在技嘉主板上创建Windows 7 USB安装媒体的官方工具。这个工具的主要目的是解决在安装过程中USB设备无法正常工作的问题,...
在标题“usb.rar_usb 读写_windows usb_windows usb s_windows usb 程序_winxp dd”中,我们可以看到几个关键点:USB读写、Windows USB接口、Windows USB程序以及WinXP DDK(Device Driver Kit)。这些关键词揭示了...
自动诊断并修复 Windows USB 问题 适用于:Windows 7, Windows 8.1, Windows 10 WinUSB.diagcab
标题中的“移远4G/5G模块基于windows USB NDIS拨号驱动”是指移远通信(Quectel)公司生产的4G/5G通信模块在Windows操作系统中使用USB NDIS(Network Driver Interface Specification)驱动进行拨号上网的技术。...
在IT领域,尤其是在硬件接口通信和设备驱动程序安装方面,Windows USB转串口驱动是至关重要的组成部分。USB(Universal Serial Bus)和串口(Serial Port)是两种不同的数据传输方式,而驱动程序则是连接硬件设备与...
【Quectel EC200T Windows USB 驱动详解】 在IT行业中,设备与计算机的连接往往依赖于特定的驱动程序。标题中的"Quectel-EC200T-Windows-USB-Driver"指的就是针对Quectel EC200T模块在Windows操作系统上使用的USB...
《Quectel LTE Windows USB Driver V2.1.7:深入了解与应用》 在现代通信技术中,Quectel公司以其高性能、可靠的无线模块而知名,尤其在LTE(Long-Term Evolution)领域更是表现出色。在Windows操作系统下,正确...
联想工程师专用小工具 Windows USB修复工具V1.67.1联想工程师专用小工具 Windows USB修复工具V1.67.1联想工程师专用小工具 Windows USB修复工具V1.67.1联想工程师专用小工具 Windows USB修复工具V1.67.1联想工程师...
《移远4G通讯模块Windows USB驱动:Quectel_LTE_Windows_USB_Driver_V2.1.6.zip详析》 在当今信息化社会,4G通信技术的应用日益广泛,尤其是在物联网(IoT)领域,4G通讯模块扮演着至关重要的角色。移远通信作为全球...
标题 "usb.zip_serport.inf_usb2ser.s_usb2ser.sys_windows usb_windows us" 提供的信息表明,这是一个关于USB转RS232串行通信的驱动程序包,主要包含的文件有 `serport.inf`、`usb2ser.s` 和 `usb2ser.sys`。...
"windows usb3.0驱动usb30.zip"这个压缩包文件很可能是为Windows操作系统提供USB 3.0驱动的安装包。通常,这样的驱动程序包括了必要的设备驱动组件、安装向导以及可能的更新工具。在安装过程中,用户需要按照提示...
Windows USB BDA驱动程序是专为在Windows操作系统中支持电视调谐器和其他广播数字信号接收设备而设计的关键组件。BDA(Broadcast Driver Architecture)是一种微软提供的接口标准,用于开发数字电视接收器的驱动程序...
《Quectel LTE&5G Windows USB驱动V2.2.2详解》 在现代通信技术中,LTE(Long Term Evolution)与5G(第五代移动通信)是至关重要的两个环节,它们为用户提供高速、低延迟的数据传输服务。在Windows操作系统上使用...
《移远Quectel LTE&5G Windows USB驱动V2.2.2详解》 在当今信息化社会,无线通信技术的快速发展使得高速稳定的网络连接成为必需。移远通信作为全球领先的物联网解决方案提供商,其产品广泛应用于各种场景。本文将...
- **USB设备类驱动**:对于某些标准USB设备,Windows提供了预定义的设备类驱动,如USB存储设备、USB音频设备等,用户无需安装额外驱动即可使用。 - **设备管理器**:用户可以通过设备管理器查看和管理USB设备,如...
标题“usb.rar_Windows USB 控制”涉及到的是Windows操作系统中对USB设备的管理,特别是如何通过注册表来限制USB驱动器的使用。描述指出,这个压缩包提供了一种方法,可以控制USB接口,使得Windows电脑仅允许使用...
标题中的“Windows USB转COM驱动”指的是在Windows操作系统中,通过特定的驱动程序将USB设备转换为虚拟的串行(COM)端口,以便于与传统串口设备进行通信。这种技术常见于需要连接到RS-232串行设备但计算机没有物理...
标题 "USB-device.zip_windows usb设备" 涉及到的是在Windows操作系统中与USB设备进行交互的技术,特别是通过GUID来识别并操作特定的USB设备。描述中的“使用一个GUID guidHID_1查找并打开一个USB设备”指出,我们要...
《移远LTE Windows USB驱动V1.0.0(BETA_20180122)详解》 本文将详细介绍“Quectel LTE Windows USB Driver V1.0.0(BETA_20180122)”这一驱动程序,它是由移远通信科技有限公司专门为EC20型号的网卡模块开发的。这个...