Как получить аппаратный идентификатор сетевой карты в программе UEFI?

идентификатор оборудования сетевой карты

Форма аппаратного идентификатора nic похожа на PCI\VEN_8086&DEV_153A&SUBSYS_309717AA&REV_04

Я хочу получить его в программе UEFI, но я не получил никаких советов по спецификации UEFI.


person linkerrors    schedule 20.07.2016    source источник
comment
Добро пожаловать в Stack Overflow! Я отредактировал ваш вопрос, насколько я мог догадаться о вашей проблеме. Однако добавьте код и описание, чтобы его увидело больше людей, разбирающихся в предмете. Пожалуйста, отредактируйте конкретное сообщение об ошибке, с которым вы столкнулись, если это необходимо для определения конкретной проблемы. Удачи!   -  person Enamul Hassan    schedule 22.07.2016


Ответы (1)


Вам нужен EFI_PCI_IO_PROTOCOL.

См. спецификацию UEFI 2.6 "13.4 EFI PCI I/O Protocol".

  1. Получите все дескрипторы устройств PCI, вызвав gBS->LocateHandleBuffer().

  2. Получите EFI_PCI_IO_PROTOCOL, прикрепленный к дескриптору устройства PCI. (gBS->HandleProtocol)

  3. Вызовите EFI_PCI_IO_PROTOCOL.Pci(), чтобы загрузить пространство конфигурации PCI. Все, что вам нужно (идентификатор устройства, идентификатор поставщика, подсистема, версия), можно найти в пространстве конфигурации PCI.

person Sheldon    schedule 22.07.2016