在 Windows Vista+ 上,BCD 引导数据存储在注册表中的HKEY_LOCAL_MACHINE\BCD00000000
. BCDEDIT 命令行工具只是以可读的方式呈现该数据。
因此,理论上,任何以管理员身份运行的用户编程应用程序都应该能够以与 BCDEDIT.EXE 相同的方式编辑该存储,对吗?
DWORD result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("BCD00000000\\Objects\\..."), 0, KEY_SET_VALUE, &hKey);
然而,当我运行这个(在管理员帐户下)时,结果的值为 0x5(访问被拒绝)。
我在这里遗漏了什么,还是没有办法编写一个可以在不调用 BCDEDIT 的情况下以编程方式编辑 BCD 数据的应用程序?