开发者

DirectSoundEnumerate() doesn't list driver name on Windows 7

I have a program that is compiled on Windows XP and now I'm trying to run it on Windows 7 (both x86 and x64). The program uses DirectSound8 to enumerate all sound devices on the machine. The problem is that the enumerate function DirectSoundEnumerate(...) returns different results for driver name on Windows XP and Windows 7.

Windows XP
Device GUID =
Device description = Primary Sound Driver
Driver name =

Device GUID = {bd6dd71a-3deb-11d1-b171-00c04fc20000}
Device description = SigmaTel Audio
Driver name = sthda.sys

Windows 7 x86
Device GUID =
Device description = Primary Sound Driver
Driver name =

Device GUID = {4a1bd997-3986-4b7a-af02-7143e86af46c}
Device description = Speakers / Headphones (SigmaTel High Definition Audio CODEC)
Driver name = {0.0.0.00000000}.{4a1bd997-3986-4b7a-af02-7143e86af46c}

Windows 7 x64
Device GUID =
Device description = Primary Sound Driver
Driver name =开发者_如何学编程

Device GUID = {aaee894b-7a80-44ff-805c-8d5e12207136}
Device description = Speakers / Headphones (SigmaTel High Definition Audio CODEC (for 64-bit Windows))
Driver name = {0.0.0.00000000}.{aaee894b-7a80-44ff-805c-8d5e12207136}

The three machine listed above have the same configuration of Dell Precision 390.

The program link to "DSound.lib" from DX9SDK_DEC2005.

Does anyone know why Windows 7 returns driver name as a GUID instead of the driver name?


The "driver name" you're seeing is the endpoint ID for the audio endpoint associated with the DSound device. In general you shouldn't ever present this string to a customer, instead use the device description.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜