Registry.LocalMachine.CreateSubKey: 参数无效

Registry.LocalMachine.CreateSubKey: Parameter Invalid

除了硬件、SAM、安全、软件等之外,是否可以直接在 HKEY_LOCAL_MACHINE 下使用 C# 创建?我尝试了以下代码,但出现错误:

RegistryKey key = Registry.LocalMachine.CreateSubKey("TESTFOLDER", RegistryKeyPermissionCheck.Default, RegistryOptions.None);

错误状态:

Parameter invalid

我已经尝试以管理员身份执行我的应用程序。

注册表包含多种元素。当操作系统不是 运行 时,注册表的许多部分都有存储它们的文件 - 这些在 Registry Hives

的帮助下进行了描述

您会看到 HKEY_LOCAL_MACHINE 没有配置单元文件。它下面的几个键,例如 SamSoftware 都有单独的配置单元文件。其他人,例如 Hardware 则没有。这是合乎逻辑的 - HKEY_LOCAL_MACHINE\Hardware 每次 OS 启动时都会重新创建。

反过来,HKEY_LOCAL_MACHINE 也会在每次 OS 启动时重新创建,然后附加子项,一些来自 Hive 文件,一些已经创建。

您无法在 HKEY_LOCAL_MACHINE 下创建新的子项,因为 OS 没有任何地方可以存储它(它不受 Hive 本身的支持)也没有任何知识可以在下一个重新创建它启动时间。