更新 EFI 分区 table 缓存

Update EFI partition table cache

作为自动化软件部署的一部分,我正在从 EFI 应用程序编写硬盘映像。完成后,缓存分区table不再是最新的,所以我需要强制重新加载。

我还没有找到 API 来显式刷新分区 table 缓存或模拟媒体更改(这可能会违反 ...->MediaInfo->Removable == FALSE 的预期)。

我需要重启,还是我忽略了什么?

我找到了。分区 table 只能在持有设备 BLOCK_IO_PROTOCOL 的独占句柄时才能更改。

以独占模式打开句柄将分离任何其他驱动程序,包括分区的块 IO 协议和分区 table 缓存。关闭独占句柄时,分区 table 为 re-read.