如何从直接声音设备中查找硬件设备ID?

时间:2014-08-28 12:16:01

标签: windows directsound

我需要在Windows上枚举直接声音设备,并序列化用于输出特定频道的实际设备。这似乎通过保存直接声音设备GUID来正常完成。但是,如果它存在于另一台计算机上,我需要连接到相同的硬件。我尝试过使用GUID,但在插入了完全相同的音频设备的不同计算机上则有所不同。

我相信,因为它是我绑定的音频硬件,而不是角色,我应该使用设备接口路径,如Windows设备管理器所示,但是没有'似乎是从直接声音对象到设备管理器路径的一种方式。

是否可以进行此映射?

1 个答案:

答案 0 :(得分:0)

这里有一个例子:http://www.chrisnet.net/code.htm显示如何使用CLSID_DirectSoundPrivate接口,这是非常重要的,如果你不知道要找什么,几乎不可能通过MSDN找到,并且有一个涉及多个调用的可怕接口,除了在这个例子中以外的任何地方都没有解释。

我采用了这个示例,最后发现堆栈违规试图在属性集上调用Get方法。

事实证明,直接展示使用相同的guid定义相同的IKsPropertySet界面,但使用不同的vtable,如果#include dshow.h或{{1,则会导致与vtable相关的可怕问题在strmif.h之前。不用说,我不为所动。

所需的电话如下:

dsound.h
相关问题