0

我有一个在 Windows XP 上编译的程序,现在我正试图在 Windows 7(x86 和 x64)上运行它。该程序使用 DirectSound8 枚举机器上的所有声音设备。问题是 enumerate 函数在 Windows XP 和 Windows 7 上为驱动程序名称DirectSoundEnumerate(...)返回不同的结果。

视窗
设备 GUID =
设备描述 = 主要声音驱动程序
司机姓名=

设备 GUID = {bd6dd71a-3deb-11d1-b171-00c04fc20000}
设备描述 = SigmaTel Audio
驱动程序名称 = sthda.sys

视窗 7 x86
设备 GUID =
设备描述 = 主要声音驱动程序
司机姓名=

设备 GUID = {4a1bd997-3986-4b7a-af02-7143e86af46c}
设备描述 = 扬声器/耳机(SigmaTel 高保真音频编解码器)
驱动程序名称 = {0.0.0.00000000}。{4a1bd997-3986-4b7a-af02-7143e86af46c}

视窗 7 x64
设备 GUID =
设备描述 = 主要声音驱动程序
司机姓名=

设备 GUID = {aaee894b-7a80-44ff-805c-8d5e12207136}
设备描述 = 扬声器/耳机(SigmaTel 高保真音频编解码器(适用于 64 位 Windows))
驱动程序名称 = {0.0.0.00000000}。{aaee894b-7a80-44ff-805c-8d5e12207136}

上面列出的三台机器的配置与戴尔 Precision 390 相同。

从 DX9SDK_DEC2005 到“DSound.lib”的程序链接。

有谁知道为什么 Windows 7 将驱动程序名称作为 GUID 而不是驱动程序名称返回?

4

1 回答 1

1

您看到的“驱动程序名称”是与 DSound 设备关联的音频端点的端点 ID。通常,您永远不应将此字符串呈现给客户,而应使用设备描述。

于 2011-03-25T05:40:32.717 回答