当前位置:首页 » 生产设备 » 如何查看设备的guid

如何查看设备的guid

发布时间: 2021-01-13 14:20:51

『壹』 在windows系统哪些API可以通过GUID打开USB设备

根据当前机器时间,硬盘序列号,网卡mac地址等等生成的。如果数值和字串符是StringFromIID
StringFromGUID2结果CoCreateGuid
Creates a GUID, a unique 128-bit integer used for CLSIDs and interface identifiers.

HRESULT CoCreateGuid(
GUID *pguid //Pointer to the GUID on return
);
Parameter
pguid
[out] Pointer to the requested GUID on return.
Return Value
S_OK
The GUID was successfully created.
Win32 errors are returned by UuidCreate but wrapped as an HRESULT.

Remarks
The CoCreateGuid function calls the RPC function UuidCreate, which creates a GUID, a globally unique 128-bit integer. Use the CoCreateGuid function when you need an absolutely unique number that you will use as a persistent identifier in a distributed environment.To a very high degree of certainty, this function returns a unique value – no other invocation, on the same or any other system (networked or not), should return the same value.

Requirements
Windows NT/2000/XP: Requires Windows NT 3.1 or later.
Windows 95/98: Requires Windows 95 or later.
Header: Declared in objbase.h.
Library: Use ole32.lib.

『贰』 扫描USB硬件时,怎么获取设备的GUID

HANDLE MyHid::OpenDevice(bool isOverLapped)
{
GUID hidGuid;
HidD_GetHidGuid(&hidGuid);
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;
(hDevInfo,&devInfoData,NULL,0,&requiredLength,NULL);

PSP_INTERFACE_DEVICE_DETAIL_DATA devDetail = (SP_INTERFACE_DEVICE_DETAIL_DATA*) malloc (requiredLength);
devDetail->cbSize = sizeof(SP_INTERFACE_DEVICE_DETAIL_DATA);
if(!(hDevInfo,&devInfoData,devDetail,requiredLength,NULL,NULL))
{
free(devDetail);
SetupDiDestroyDeviceInfoList(hDevInfo);
return INVALID_HANDLE_VALUE;
}
if (isOverLapped)
{
hidHandle = CreateFile(devDetail->DevicePath,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_FLAG_OVERLAPPED,NULL);
}
else
{
hidHandle = CreateFile(devDetail->DevicePath,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);
}
free(devDetail);
if (hidHandle==INVALID_HANDLE_VALUE)
{
SetupDiDestroyDeviceInfoList(hDevInfo);
free(devDetail);
return INVALID_HANDLE_VALUE;
}
_HIDD_ATTRIBUTES hidAttributes;
if(!HidD_GetAttributes(hidHandle, &hidAttributes))
{
CloseHandle(hidHandle);
SetupDiDestroyDeviceInfoList(hDevInfo);
return INVALID_HANDLE_VALUE;
}
if (USB_VID == hidAttributes.VendorID&& USB_PID == hidAttributes.ProctID)
{
m_isDevicesOK=true;
break;
}
else
{
CloseHandle(hidHandle);
++deviceNo;
m_isDevicesOK=false;
}
}
}
SetupDiDestroyDeviceInfoList(hDevInfo);
return hidHandle;
}

#define USB_VID 0x08fe
#define USB_PID 0x0003

//自定义的设备号.

你可以在设备管理器里面找到你自己的需要的 ID 然后 但看实例句柄.

『叁』 做驱动开发时关于GUID的问题

前一个是设备接口类GUID(Device Interface class GUID),是由驱动程序负责添加的该GUID出现在注册表中KKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses子键下。
接口类GUID下有曾经安装过的设备,键值就是设备的路径(设备接口名)。而安装类则是在设备安装时由Windows安装器添加到注册表中。通常安装器从安装驱动的inf文件中获取这个安装类GUID,例如安装HID设备的inf文件是Windows/inf文件夹下的input.inf,打开它可以找到ClassGuid={xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx},设备安装类出现在注册表的KKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class子键下,与接口类GUID类似,安装类GUID下也有曾经安装过的设备,不过这是用数字表示的。
另外,在注册表的KKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum子键下有不同设备的分类,在分类下可以找到对应的设备,里面记录的安装时的安装类GUID

『肆』 海康录像机设备激活成功以后是否导出guid文件用于密码重置呢

可以导出,导出还是比较安全的,不过实际操作中一般都不导出

『伍』 如何得到设备的GUID值

1,普通时候我们查看类似的IMEI值,都会通过手机的设置功能,或者输入相关的代码在回拨号界面,然后进答行直接的查看
2,但是这个GUID值,并不能通过这种方法查看,就我目前所知道的,它是只能通过很少一部分软件可以看到,一些硬件检测工具都不行
3,想要查看的话,我们可以使用腾讯手机管家,然后点击右上角的个人中心标志,进入手机的总设置菜单,在这里找到我们要的功能
4,打开个人中心后,会有一个硬件信息,也就是查看你手机所有设置的地方,这里就是我们所要找到的功能,直接打开即可

『陆』 如何得到设备的GUID

#define USB_PID 0x0003 //自定义的设备号. 你可以在设备管理器里面找到专GUID HidGuid; // 查找本属系统中HID类的GUID标识 HidD_GetHidGuid(&HidGuid

『柒』 如何得到设备的GUID值

如果是系统的标准设备,可以在devguid.h文件中找到所对应的guid值,但如果是其它安装的驱动则可以查看其classguid值(系统设备也可以),如:
USB的guid值可以在注册表路径:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Class/
里面找到值{36fc9e60-c465-11cf-8056-444553540000}
其对应的classguid值为:
{0x36fc9e60L, 0xc465, 0x11cf, 0x80, 0x56, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}
对比下就可以用这两个字符串相互转换了。
devguid.h中设备类型guid的定义:

GUID_DEVCLASS_FDC 软盘控制器
GUID_DEVCLASS_DISPLAY 显示卡
GUID_DEVCLASS_CDROM 光驱
GUID_DEVCLASS_KEYBOARD 键盘
GUID_DEVCLASS_COMPUTER 计算机
GUID_DEVCLASS_SYSTEM 系统
GUID_DEVCLASS_DISKDRIVE 磁盘驱动器
GUID_DEVCLASS_MEDIA 声音、视频和游戏控制器
GUID_DEVCLASS_MODEM MODEM
GUID_DEVCLASS_MOUSE 鼠标和其他指针设备
GUID_DEVCLASS_NET 网络设备器
GUID_DEVCLASS_USB 通用串行总线控制器
GUID_DEVCLASS_FLOPPYDISK 软盘驱动器
GUID_DEVCLASS_UNKNOWN 未知设备
GUID_DEVCLASS_SCSIADAPTER SCSI 和 RAID 控制器
GUID_DEVCLASS_HDC IDE ATA/ATAPI 控制器
GUID_DEVCLASS_PORTS 端口(COM 和 LPT)
GUID_DEVCLASS_MONITOR 监视器

对设备管理器的查询
GUID ClassGuid = {0x96e73b6eL, 0x7a5a, 0x11d4, 0x9f, 0x24, 0x00, 0x80, 0xc8, 0x27, 0x27, 0xf4};
HDEVINFO hDevInfo;
SP_DEVINFO_DATA DeviceInfoData;
DWORD i;
CString temp;
CString str;
hDevInfo = SetupDiGetClassDevs((LPGUID) &ClassGuid, 0, 0,DIGCF_PRESENT);
if (hDevInfo == INVALID_HANDLE_VALUE)
{
// Insert error handling here.
return ;
}

// Enumerate through all devices in Set.

DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
for (i = 0; SetupDiEnumDeviceInfo(hDevInfo, i, &DeviceInfoData);i++)
{
DWORD DataT;
char buffer[2048];
DWORD buffersize =sizeof(buffer);
while (!(
hDevInfo,
&DeviceInfoData,
SPDRP_DEVICEDESC,
&DataT,
(PBYTE)buffer,
buffersize,
&buffersize))
{
if (GetLastError() == ERROR_INSUFFICIENT_BUFFER)
{
// Change the buffer size.
//if (buffer) LocalFree(buffer);
//buffer = (PSP_INF_INFORMATION)LocalAlloc(LPTR,buffersize);
}
else
{
// Insert error handling here.
break;
}
}
if (buffer != NULL && i == 0)
{
temp.Format("<光盘驱动器>");
str += temp;
}
temp.Format("<VALUE>%s</VALUE>",buffer);
str += temp;
if (buffer) LocalFree(buffer);
}
if (i != 0)
{
temp.Format("</光盘驱动器>");
str += temp;
}
if ( GetLastError()!=NO_ERROR &&
GetLastError()!=ERROR_NO_MORE_ITEMS )
{
return ;
}
// Cleanup
SetupDiDestroyDeviceInfoList(hDevInfo);

『捌』 扫描USB硬件时,如何获取设备的GUID

在设备管理器中可以查看,当扫描usb硬件,如果该驱动没有安装,在设备管理器中肯定是未知或感叹号的设备,双击设备--详细信息中有GUID显示,如下图所示

热点内容
线切割怎么导图 发布:2021-03-15 14:26:06 浏览:709
1台皮秒机器多少钱 发布:2021-03-15 14:25:49 浏览:623
焊接法兰如何根据口径配螺栓 发布:2021-03-15 14:24:39 浏览:883
印章雕刻机小型多少钱 发布:2021-03-15 14:22:33 浏览:395
切割机三五零木工貝片多少钱 发布:2021-03-15 14:22:30 浏览:432
加工盗砖片什么榉好 发布:2021-03-15 14:16:57 浏览:320
北洋机器局制造的银元什么样 发布:2021-03-15 14:16:52 浏览:662
未来小七机器人怎么更新 发布:2021-03-15 14:16:33 浏览:622
rexroth加工中心乱刀怎么自动调整 发布:2021-03-15 14:15:05 浏览:450
机械键盘的键帽怎么选 发布:2021-03-15 14:15:02 浏览:506