Windows XPでコンパイルされたプログラムがあり、Windows 7(x86とx64の両方)で実行しようとしています。プログラムはDirectSound8を使用して、マシン上のすべてのサウンドデバイスを列挙します。問題は、列挙関数がWindowsXPとWindows7のドライバー名DirectSoundEnumerate(...)
に対して異なる結果を返すことです。
Windows XP デバイスGUID= デバイスの説明=プライマリサウンドドライバー ドライバー名= デバイスGUID={bd6dd71a-3deb-11d1-b171-00c04fc20000} デバイスの説明=SigmaTelAudio ドライバー名=sthda.sys Windows 7 x86 デバイスGUID= デバイスの説明=プライマリサウンドドライバー ドライバー名= デバイスGUID={4a1bd997-3986-4b7a-af02-7143e86af46c} デバイスの説明=スピーカー/ヘッドフォン(SigmaTel High Definition Audio CODEC) ドライバー名={0.0.0.00000000}。{4a1bd997-3986-4b7a-af02-7143e86af46c} Windows 7 x64 デバイスGUID= デバイスの説明=プライマリサウンドドライバー ドライバー名= デバイスGUID={aaee894b-7a80-44ff-805c-8d5e12207136} デバイスの説明=スピーカー/ヘッドフォン(SigmaTel High Definition Audio CODEC(64ビットWindows用)) ドライバー名={0.0.0.00000000}。{aaee894b-7a80-44ff-805c-8d5e12207136}
上記の3台のマシンは、DellPrecision390と同じ構成です。
DX9SDK_DEC2005からの「DSound.lib」へのプログラムリンク。
Windows 7がドライバー名ではなくGUIDとしてドライバー名を返す理由を誰かが知っていますか?