如何解决如何始终如一地识别音频控制器 PCI 设备?
在我的应用程序中,我检索机器 PCI 空间中的所有设备,然后过滤其中的音频控制器,以便将其用于某些测试。到目前为止,我们过去常常通过检查其类代码和子类代码来识别音频控制器,这些代码之前在 PCI 配置空间 (https://wiki.osdev.org/Intel_High_Definition_Audio) 中的寄存器中读取。作为参考,我们可以通过查看Windows设备管理器中High Definition Audio Controller设备的“PCI基类”和“PCI“子类”属性,手动确认分别为4和3。
问题是我们发现在某些机器上这不起作用,因为它们的音频控制器(在设备管理器中命名为 Intel(R) Smart Sound Technology(Intel(R) SST)Audio Controller)PCI 基类和 PCI 子类属性实际上是 4 和 1。
我找到了一些证实这一点的来源 (https://wiki.osdev.org/PCI#Class_Codes),但无论如何,我如何识别这些案例?有没有办法事先知道子类代码应该是 3 还是 1(如系统调用或 wmi 查询),或者我应该只检查这两个代码(如果没有带有类的 PCI 设备代码 4 和子类 1,寻找一个带有类代码 4 和子类代码 3 的)。这是一个 C++ 应用程序,以防万一。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。