RegFlushKey 函数 (winreg.h)
将指定的打开注册表项的全部特性写到注册表中。
语法
LSTATUS RegFlushKey(
[in] HKEY hKey
);
参数
[in] hKey
打开的注册表项的句柄。 密钥必须已使用KEY_QUERY_VALUE访问权限打开。 有关详细信息,请参阅 注册表项安全和访问权限。
此句柄由 RegCreateKeyEx、 RegCreateKeyTransacted、 RegOpenKeyEx 或 RegOpenKeyTransacted 函数返回。 也可以是以下 预定义键之一:
- HKEY_CLASSES_ROOT
- HKEY_CURRENT_CONFIG
- HKEY_CURRENT_USER
- HKEY_LOCAL_MACHINE
- HKEY_PERFORMANCE_DATA
- HKEY_USERS
返回值
如果函数成功,则返回值为 ERROR_SUCCESS。
如果函数失败,则返回值为 Winerror.h 中定义的非零错误代码。 可以将 FormatMessage 函数与 FORMAT_MESSAGE_FROM_SYSTEM 标志结合使用来获取错误的常规说明。
注解
调用 RegFlushKey 是一项成本高昂的操作,会显著影响系统范围的性能,因为它会消耗磁盘带宽,并阻止正在刷新的注册表配置单元中所有进程修改所有密钥,直到刷新操作完成。 仅当应用程序必须保证注册表更改在修改后立即保存到磁盘时,才应显式调用 RegFlushKey。 对密钥所做的所有修改都对其他进程可见,无需将其刷新到磁盘。
或者,注册表具有“延迟刷新”机制,该机制会定期刷新对磁盘的注册表修改。 除了此常规刷新操作外,注册表更改还会在系统关闭时刷新到磁盘。 允许“延迟刷新”刷新注册表更改是管理注册表写入磁盘上注册表存储的最有效方法。
仅当包含指定键的 Hive 的所有数据都已写入磁盘上的注册表存储时, RegFlushKey 函数才会返回。
RegFlushKey 函数会写出自上次延迟刷新或系统启动以来已修改的配置单元中其他键的数据。
RegFlushKey 返回后,使用 RegCloseKey 关闭注册表项的句柄。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | winreg.h (包括 Windows.h) |
Library | Advapi32.lib |
DLL | Advapi32.dll |