如何在UEFI程序中获取网卡的硬件ID?

How to get hardware ID of network interface card in UEFI program?

nic的硬件id形式如PCI\VEN_8086&DEV_153A&SUBSYS_309717AA&REV_04

我想在UEFI程序中得到它,但是我在UEFI规范中没有得到任何提示。

你需要的是EFI_PCI_IO_PROTOCOL.

参考 UEFI 规范 2.6“13.4 EFI PCI I/O 协议”。

  1. 调用gBS->LocateHandleBuffer()获取所有PCI设备句柄。

  2. 获取 EFI_PCI_IO_PROTOCOL 附加到 PCI 设备句柄上。 (gBS->HandleProtocol)

  3. 调用 EFI_PCI_IO_PROTOCOL.Pci() 加载 PCI 配置 space。您需要的一切(设备 ID、供应商 ID、子系统、版本)都可以在 PCI 配置 space.

  4. 中找到