相同HID设备的句柄获取

本文介绍了如何在多个相同PID和VID的HID设备中,利用设备路径的独特性来区分并获取每个设备的句柄,从而实现对特定设备的操作。
摘要由CSDN通过智能技术生成

思路其实很简单:通常我们使用PID和VID来获得不同设备的句柄,相同PID和VID的设备,就需要其他的特征来获取句柄。相同HID的设备,设备路径是不同的,可以用设备路径作为区分,来获得句柄即可。

HANDLE OpenSamePIDDevice(int overlapped, unsigned short Pid_Value)
{
	int Pid_count = 0;
	LPCWSTR device_path = NULL;


	HANDLE hidHandle = NULL;
	HidD_GetHidGuid(&hidGuid); //取得类别 
	HDEVINFO hDevInfo = SetupDiGetClassDevs(&hidGuid, NULL, NULL,
		(DIGCF_PRESENT | DIGCF_DEVICEINTERFACE));  //获取设备信息群

	if (hDevInfo == INVALID_HANDLE_VALUE)//未获得设备信息群则直接退出
		return INVALID_HANDLE_VALUE;

	SP_DEVICE_INTERFACE_DATA devInfoData;
	devInfoData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
	int deviceNo = 0;
	SetLastError(NO_ERROR);

	while (GetLastError() != ERROR_NO_MORE_ITEMS)
	{
		if (SetupDiEnumInterfaceDevice(hDevInfo, 0, &hidGuid, deviceNo, &devInfoData)) //枚举成功?
		{
			ULONG requiredLength = 0;
			SetupDiGetInterfaceDeviceDetail(hDevInfo, &
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值