Поделиться через


Функция 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 следует вызывать явным образом, только если приложение должно гарантировать, что изменения реестра сохраняются на диске сразу после изменения. Все изменения, внесенные в ключи, видны другим процессам без необходимости сбрасывать их на диск.

Кроме того, реестр имеет механизм "ленивого сброса", который сбрасывает изменения реестра на диск через регулярные интервалы времени. В дополнение к этой обычной операции очистки изменения реестра также сбрасываются на диск при завершении работы системы. Разрешение "отложенной очистки" для очистки изменений реестра является наиболее эффективным способом управления записями реестра в хранилище реестра на диске.

Функция RegFlushKey возвращает только в том случае, если все данные куста, содержащего указанный ключ, были записаны в хранилище реестра на диске.

Функция RegFlushKey записывает данные для других ключей в кусте, которые были изменены с момента последнего отложенного сброса или запуска системы.

После возврата RegFlushKey используйте RegCloseKey , чтобы закрыть дескриптор раздела реестра.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winreg.h (включая Windows.h)
Библиотека Advapi32.lib
DLL Advapi32.dll

См. также раздел

RegCloseKey

RegDeleteKey

Функции реестра

Общие сведения о реестре