是否有相当于设置的Linux功能

Is there a Linux equivalent of SetupDiGetClassDevs function

本文关键字:Linux 功能 设置 相当于 是否      更新时间:2023-10-16

我已经写了一个C 程序,用于使用HDEVINFO对象和SetupDigetClassDevs函数在Windows中搜索PCI设备。

这些功能是否有Linux当量?我将使用Kubuntu,因此KDE特定和/或Ubuntu特异性解决方案很好。一个示例代码将得到更加感谢; - )

谢谢

您几乎可以通过迭代/sys/devices/pci*目录获得有关连接的PCI设备的任何信息。

例如,

cat /sys/devices/pci0000:00/0000:00:00.0/subsystem_vendor

将返回该设备的供应商ID。

总的来说,我建议您查看/proc和/sys文件系统的内容,这几乎是您可以在用户空间中使用的所有内容。对于一些更有趣的东西,请考虑编写内核模块(这不是这样的问题,我建议阅读最新版本的Linux设备驱动程序)。

upd1:是的,这并不是一个函数,正如某人肯定会指出的那样,但是阅读和编写这些文件似乎并不困难,与Windows相比,这是一种不同的方法。

upd2:对于内核模块方法,我建议您搜索有关pci_register_driver功能的信息,以及随之而来的所有信息。

upd3:更重要的是,对于用户空间,通常有一种直接与PCI设备资源合作的方法 - 只需打开/sys/devices/pci0000:00/0000:00:00.0/resourceX,其中x是相应的bar的数量。只要您知道正确的偏移量,这些文件就可以按照您的意愿进行读取和编写。