SetupApi函数
+ -

SetupAPI函数实现设备分类GUID和类名之间的转换SetupDiClassNameFromGuidEx和SetupDiClassGuidsFromNameEx

2022-01-26 120 0

类名与其GUID之间的切换

        GUID guid;
        ULONG rtn = 0;
        if (SetupDiClassGuidsFromNameEx(TEXT("USB"), &guid, 1, &rtn, NULL, NULL))
        {
            rtn = rtn;
        }

返回:

 {36FC9E60-C465-11CF-8056-444553540000}

这和INF文件中的对应一致:

[Version]
Signature="$WINDOWS NT$"
Class=USB
ClassGuid={36FC9E60-C465-11CF-8056-444553540000}

当然也有一个反向的从GUI获取类名的函数SetupDiClassNameFromGuidEx

    {
        GUID guid;
        ULONG rtn = 0;
        if (SetupDiClassGuidsFromNameEx(TEXT("USB"), &guid, 1, &rtn, NULL, NULL))
        {
            rtn = rtn;
        }

        TCHAR GuidName[64] = { 0 };
        if (SetupDiClassNameFromGuidEx(&guid, GuidName, sizeof(GuidName), &rtn, NULL,NULL))
        {
            rtn = rtn;
        }
    }

GuidName返回USB字符串。

Windows预定义的设备分类和其对应的GUID详见:http://www.pnpon.com/article/detail-146.html

0 篇笔记 写笔记

Windows Inf文件设备GUID分类(设备安装程序类)
Class=SystemClassGuid={4d36e97d-e325-11ce-bfc1-08002be10318}Class=USBClassGuid={36FC9E60-C465-11CF-8056-444553540000}Class=AudioClassGuid={4d36e96c-......
使用CLSIDFromString将字符串GUID转化成十六进制GUID/UUID
Windows的一般会给相同类型的设备接口注册相同的GUID,但GUID有时别人给的是一个字符串,但是在实际使用过程中我们又使用的是GUID类型,其结构定义如下:typedef struct _GUID { unsigned long Data1; unsigned short ......
Windows驱动预定义设备GUID
全球唯一标识符 (GUID) 是一个字母数字标识符,用于指示产品的唯一性安装。在许多流行软件应用程序(例如 Web 浏览器和媒体播放器)中,都使用 GUIDGUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-9 或 a-f 范围内......
SetupAPI函数实现设备分类GUID和类名之间的转换SetupDiClassNameFromGuidExSetupDiClassGuidsFromNameEx
类名与其GUID之间的切换 GUID guid; ULONG rtn = 0; if (SetupDiClassGuidsFromNameEx(TEXT("USB"), &guid, 1, &rtn, NULL, N......
SetupAPI 根据类GUID获取类描述符信息SetupDiGetClassDescriptionEx
Windows设备的一种管理方式就是在安装设备驱动的时候,通过INF文件中的Class和ClassGUID来设置,如Class=USBClassGuid={36FC9E60-C465-11CF-8056-444553540000}当设备驱动安装后,可以通过SetupDiClassNameFro......
COM全局唯一标识符GUID
COM规范采用了128位全局唯一标识符GUID来标识对象和接口,这是一个随机数,并不需要专门机构进行分配和管理。因为GUID是个随机数,所以并不绝对保证唯一性,但发生标识符相重的可能性非常小。从理论上讲,如果一台机器每秒产生10000000个GUID,则可保证(概率意义上)的3240年不重复)。GU......
COMM CSID和GUID
Office的Word中可以插入EXCEL数据,我们知道是通过Word存储的复合文件功能来实现的。那么当WORD程序读取复合文件,遇到EXCEL数据时,它该如何启动Excel呢?启动后,又如何让Excel自己去读入、解析、显示xls数据呢?CLSID概念有一个非常简单的解决方案,那就是在对象数据的......
使用C语言生成GUID
Windows系统&Linux系统获取uuid统一通用代码:#include #include #include #ifdef WIN32#include ......
Windows应用MFC程序检测硬件设备插入和或移除
使用 WM_DEVICECHANGE 和 RegisterDeviceNotification() 检测硬件添加/删除的用户模式应用程序。下载源文件 - 26.5 Kb https://www.codeproject.com/KB/system/HwDetect/HwDetect_src.zip......
Windows音频设备默认采样率
在注册表HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionMMDevicesAudioRender/Capture{DEVICEGUID}Properties下,注册表项:{f19f064d-082c-4e27-bc......
GUID大全
DirectShow和MediaFoundation音视频格式大全:https://www.pnpon.com/import/MediaType.html 备用网址:https://gix.github.io/media-types/更多GUID定义详见:https://uuid.pirat......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!