Устройства PCI и PCI Express идентифицируются по шине / устройству / функции, которая обязательно уникальна для каждого устройства в системе.Идентификатор поставщика и устройства - это просто свойства устройства, обнаруженного на определенной шине / устройстве / функции.
При перечислении платы драйвер обычно сканирует пространство конфигурации PCI(выполнить итерацию по всем установленным устройствам PCI), пока не найдет одно или несколько устройств, которые соответствуют ожидаемому поставщику и идентификатору устройства и, возможно, также идентификаторам подсистемы.Как только он находит соответствие, он должен записать шину / устройство / функцию как «дескриптор» открытого устройства.
Правильно написанное программное обеспечение должно найти всех поставщика/ device соответствует, поместите их в таблицу и позвольте выбрать, какую из них вы хотите использовать (например, / dev / mydevice0, / dev / mydevice1 и т. д.).Однако я видел ленивое программное обеспечение, которое просто останавливается на первом матче.