如何在EFI应用程序中生成GUID?

时间:2019-07-05 12:25:25

标签: guid uefi

我正在编写一个小型EFI应用程序,该应用程序负责监视新计算机的部署,除其他外,还准备了具有最小分区表和救援系统的硬盘。

现在我想为分区表和分区ID生成随机UUID,但令我惊讶的是,在可用的标准协议集中似乎还没有现成的UUID生成器。

我在这里忽略了什么吗?如果我还没有可靠的系统时钟,但是我有可用的EFI随机生成器协议,哪种算法最有可能为我提供唯一的ID?

1 个答案:

答案 0 :(得分:1)

只有在根据特定算法生成GUID时,统计上才保证它是唯一的。对于UEFI,这意味着跟随RFC 4122生成基于时间的UUID but ,其中TimeLowTimeMidTimeHighAndVersion以小尾数字节顺序。这也是Microsoft使用的格式。

有些工具会为您生成一致的GUID。 Online GUID Generator是一个。另一个是不是非常有用但有用的EDK2 UEFI Driver Wizard,这是一个基于Python的GUI应用程序,可以自动为新edk2模块生成样板。

由于时间戳是使用big-endian编码的,因此Linux命令行实用程序uuidgen命令不会生成一致的GUID。