MFC如何获取声卡型号:比如声卡型号为 ALC267

qw_stone 2014-11-24 11:49:18
读取注册表发现Media节下没有比如ALC267型号的值;应该怎么获取型号?
...全文
565 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
luciferisnotsatan 2014-11-27
  • 打赏
  • 举报
回复
http://www.pcidatabase.com/ 这个网站上能找到vendor ID 对应的公司。 如果你是要开发个类似的东西,估计要自己去建张表格来对应。也可能通过SMBIOS可以直接拿到ALC887。 我也没做过这个,也没更多能帮的了
qw_stone 2014-11-27
  • 打赏
  • 举报
回复
引用 12 楼 luciferisnotsatan 的回复:
Hardware ID: HDAUDIO\FUNC_01&VEN_10EC&DEV_0887&SUBSYS_10438576&REV_1003 DEV_0887这个应该就是代表 887 了。 ALC 估计是从Realtek High Definition Audio或其它地方识别的
刚才在测试机上也看了一下发现发现还真是这个;
luciferisnotsatan 2014-11-27
  • 打赏
  • 举报
回复
VEN_10EC vendor 10ec, 这个10ec应该是realtek的代号,这公司的声卡型号都是ALCxxx。自己组合下就有了 vendor ID对应的公司,网上应该有什么地方可以查询的。lz找到了的话,说一下
luciferisnotsatan 2014-11-27
  • 打赏
  • 举报
回复
Hardware ID: HDAUDIO\FUNC_01&VEN_10EC&DEV_0887&SUBSYS_10438576&REV_1003 DEV_0887这个应该就是代表 887 了。 ALC 估计是从Realtek High Definition Audio或其它地方识别的
qw_stone 2014-11-27
  • 打赏
  • 举报
回复
引用 9 楼 zhao4zhong1 的回复:
    // 用IOCTL_STORAGE_QUERY_PROPERTY取设备属性信息
    bResult = ::DeviceIoControl(hDevice, // 设备句柄
        IOCTL_STORAGE_QUERY_PROPERTY,    // 取设备属性信息
        &Query, sizeof(STORAGE_PROPERTY_QUERY),    // 输入数据缓冲区
        pDevDesc, pDevDesc->Size,        // 输出数据缓冲区
        &dwOutBytes,                     // 输出数据长度
        (LPOVERLAPPED)NULL);             // 用同步I/O
Creatfile的第一个参数:我写成 CString path; path.Format(_T("\\\\.\\%s:"),guid);为什么一直出错,错误代码为87 guid是我获取的设备GUID号,
qw_stone 2014-11-27
  • 打赏
  • 举报
回复
引用 8 楼 luciferisnotsatan 的回复:
[quote=引用 7 楼 luciferisnotsatan 的回复:] 试试 dxdiag \x file.xml 或 dxdiag \t file.txt 看看能不能得到型号
打错了,flag应该用'/': /t, /x[/quote] 利用dxdiag获取的是如下: ------------- Sound Devices ------------- Description: 扬声器 (Realtek High Definition Audio) Default Sound Playback: Yes Default Voice Playback: Yes Hardware ID: HDAUDIO\FUNC_01&VEN_10EC&DEV_0887&SUBSYS_10438576&REV_1003 Manufacturer ID: 1 Product ID: 100 Type: WDM Driver Name: RTKVHD64.sys Driver Version: 6.00.0001.7255 (English) Driver Attributes: Final Retail WHQL Logo'd: n/a Date and Size: 5/27/2014 00:00:00, 3976792 bytes Other Files: Driver Provider: Realtek Semiconductor Corp. HW Accel Level: Basic Cap Flags: 0xF1F Min/Max Sample Rate: 100, 200000 Static/Strm HW Mix Bufs: 1, 0 Static/Strm HW 3D Bufs: 0, 0 HW Memory: 0 Voice Management: No EAX(tm) 2.0 Listen/Src: No, No I3DL2(tm) Listen/Src: No, No Sensaura(tm) ZoomFX(tm): No 也没有ALC887一项啊。
赵4老师 2014-11-26
  • 打赏
  • 举报
回复
    // 用IOCTL_STORAGE_QUERY_PROPERTY取设备属性信息
    bResult = ::DeviceIoControl(hDevice, // 设备句柄
        IOCTL_STORAGE_QUERY_PROPERTY,    // 取设备属性信息
        &Query, sizeof(STORAGE_PROPERTY_QUERY),    // 输入数据缓冲区
        pDevDesc, pDevDesc->Size,        // 输出数据缓冲区
        &dwOutBytes,                     // 输出数据长度
        (LPOVERLAPPED)NULL);             // 用同步I/O
luciferisnotsatan 2014-11-26
  • 打赏
  • 举报
回复
引用 7 楼 luciferisnotsatan 的回复:
试试 dxdiag \x file.xml 或 dxdiag \t file.txt 看看能不能得到型号
打错了,flag应该用'/': /t, /x
luciferisnotsatan 2014-11-26
  • 打赏
  • 举报
回复
试试 dxdiag \x file.xml 或 dxdiag \t file.txt 看看能不能得到型号
luciferisnotsatan 2014-11-26
  • 打赏
  • 举报
回复
可能是SMBIOS里获取的吧,XP以后的系统,还要在内核态时才能映射物理内存。
qw_stone 2014-11-26
  • 打赏
  • 举报
回复
但是360硬件检测的为 ALC887
qw_stone 2014-11-26
  • 打赏
  • 举报
回复
引用 2 楼 xydp1987108 的回复:
wmi Win32_SoundDevice
同样获取的是Realtek High Definition Audio
qw_stone 2014-11-26
  • 打赏
  • 举报
回复
引用 1 楼 focuslight 的回复:
硬件的描述信息,可以用SetupDiGetDeviceRegistryProperty,获得SPDRP_DEVICEDESC字符串
该节下获得的为:Realtek High Definition Audio
Isnis-fallen 2014-11-24
  • 打赏
  • 举报
回复
硬件的描述信息,可以用SetupDiGetDeviceRegistryProperty,获得SPDRP_DEVICEDESC字符串
xydp1987108 2014-11-24
  • 打赏
  • 举报
回复
wmi Win32_SoundDevice

64,653

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧