我是uefi的新手,正在尝试使用协议技术访问smbios值。我已经检查了UEFI和SMBIOS规范,但没有找到任何东西。
我知道有一个名为pci.read()的函数,每次使用协议处理pci设备时,它都可以访问内存的pci区域中的一个值。似乎没有类似的函数可以每次读取一个值来处理smbios协议?
我在规范中发现类似的是GetNext(),但是这个函数只输出三个header的值。我想知道是否有任何方法可以每次读取单个值,以便我可以立即打印()值?或者将smbios的内存值放入数组?
发布于 2019-05-28 03:17:41
UEFI 对UEFI来说只不过是一个指向配置表的指针(可通过UEFI系统表访问,并由指定的GUID标识)。
有一个EFI_SMBIOS_PROTOCOL,但它是PI (平台初始化)规范的一部分,而不是UEFI -所以不能被认为是可移植的接口。PI规范的最新版本(当前为1.7)可以从https://uefi.org/specifications下载。
否则,从系统表中抓取指针并手动解析结构。结构表的大小可以从SMBIOS入口点读取。
https://stackoverflow.com/questions/56326461
复制相似问题