MFC如何获取USB的VID、PID和协议版本呢?

lwei2 lwei2 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
各位大佬,请问Win API有哪个接口可以获取指定的USB协议版本和VID、PID,在网上查看,很多都是把所有的USB的VID和PID找出来,这样不是会把键盘和鼠标的也找出来吗?我自己试过,它就连鼠标和键盘的都找出来了,要怎么做,才能找出只有自己插入的USB的VID和PID呢?代码如下:

//#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <string>
#include <setupapi.h>

#include <initguid.h>
using namespace std;

#pragma comment(lib,"setupapi.lib")

DEFINE_GUID(UsbClassGuid, 0xa5dcbf10L, 0x6530, 0x11d2, 0x90, 0x1f, 0x00, 0xc0, 0x4f, 0xb9, 0x51, 0xed);

//获取USB设备VID和PID

string GetUsbInfo()

{

HDEVINFO hDevInfo;

SP_DEVICE_INTERFACE_DATA spDevData;

PSP_DEVICE_INTERFACE_DETAIL_DATA pDetail;

BOOL bRes = TRUE;

int nCount = 0;
string csResult;
hDevInfo = ::SetupDiGetClassDevs((LPGUID)&UsbClassGuid, NULL, NULL, DIGCF_PRESENT | DIGCF_INTERFACEDEVICE);



if (hDevInfo != INVALID_HANDLE_VALUE)

{

pDetail = (PSP_DEVICE_INTERFACE_DETAIL_DATA)::GlobalAlloc(LMEM_ZEROINIT, 1024);

pDetail->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);

while (bRes)

{

spDevData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);

bRes = ::SetupDiEnumDeviceInterfaces(hDevInfo, NULL, (LPGUID)&UsbClassGuid, nCount, &spDevData);

if (bRes)

{

bRes = ::SetupDiGetInterfaceDeviceDetail(hDevInfo, &spDevData, pDetail, 1024, NULL, NULL);

if (bRes)

{

string szStr = pDetail->DevicePath;
csResult += szStr + "\n";

//break;
nCount++;

}

}

}

::GlobalFree(pDetail);

::SetupDiDestroyDeviceInfoList(hDevInfo);

}

return csResult;

}

int main(void)

{

string csStr = GetUsbInfo();

cout << csStr << endl;
cout << "End...";


return 0;

}
恳请懂的大佬指点一下,不胜感激!!
...全文

相关推荐

MFC监控USB接口插拔情况并获取VID与PID

在给定的项目“MFC监控USB接口插拔情况并获取VID与PID”中,开发者利用MFC框架创建了一个程序,能够实时监控USB设备的插入和移除,并且能够读取USB设备的Vendor ID (VID)和Product

蓝之羽520

Windows平台通过PID/VID精准识别并安全卸载USB设备的MFC源码工程

一套开箱即用的Windows USB设备安全卸载工具源码,基于C++和MFC框架开发,支持按厂商ID(VID)和产品ID(PID)精确匹配目标USB设备,执行标准的安全移除流程,防止强制拔插引发的数据异常或硬件故障。项目包含完整VC6工程文件(.dsp/.dsw)、可视化对话框界面、资源文件、说明文档及配套Python辅助脚本(usb_eject.py),可直接编译运行或嵌入自有运维系统。底层调用SetupAPI和CfgMgr32等Windows原生API完成设备枚举、接口查询、驱动卸载与弹出通知,兼容Wi

gold8

MFC的USB通讯例程 BULK传输

该项目基于MFC框架开发,实现了与USB设备的BULK传输通信功能。程序通过对话框界面配置VID/PID,支持十六进制数据发送与接收,并设有超时控制和调试信息显示。采用多线程处理异步数据接收,确保UI

杜杜dalek

我的USB调试助手(MFC)

**学习与研究**:对于学习USB协议和设备管理的初学者,该工具提供了一个直观的界面,可以深入理解PID、VID等概念及其作用。

史提芬温

USB识别,ID实例路径获取

在项目中,通过查询设备的VID和PID,可以准确识别出特定的USB设备。3.

初设
评论 15
收藏 已收藏
分享
返回顶部
lwei2
硬件/系统 2,644 成员 17,229 内容