Commit the registry change

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I'd like to know the following feature of Windows XP professional.

I change the data in the registry by using Windows API.
When will the change save to a disk by Windows XP?

Just after I changed the data in the registry, Windows hanged up.
So I rebooted the PC, then I saw the previous data in the registry
by RegEdit.

I'd like to know how to commit the registry change immediately.
 
Donald said:
I'd like to know the following feature of Windows XP professional.

I change the data in the registry by using Windows API.
When will the change save to a disk by Windows XP?

Just after I changed the data in the registry, Windows hanged up.
So I rebooted the PC, then I saw the previous data in the registry
by RegEdit.

I'd like to know how to commit the registry change immediately.

See the documentation for RegCloseKey and RegFlushKey.
--
Tom Porterfield
MS-MVP Windows
http://support.telop.org

Please post all follow-ups to the newsgroup only.
 
Platform SDK: Windows System Information

RegFlushKey
The RegFlushKey function writes all the attributes of the specified open registry key into the registry.

LONG RegFlushKey(
HKEY hKey // handle to key to write
);Parameters
hKey
[in] Handle to a currently open key or one of the following predefined keys:
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
Windows NT/2000/XP: HKEY_PERFORMANCE_DATA
Windows 95/98/Me: HKEY_DYN_DATA

Return Values
If the function succeeds, the return value is ERROR_SUCCESS.

If the function fails, the return value is a nonzero error code defined in Winerror.h. You can use the FormatMessage function with the FORMAT_MESSAGE_FROM_SYSTEM flag to get a generic description of the error.

Remarks
It is not necessary to call RegFlushKey to change a key. Registry changes are flushed to disk by the registry using its lazy flusher. Lazy flushing occurs automatically and regularly after a system-specified interval of time. Registry changes are also flushed to disk at system shutdown.

Unlike RegCloseKey, the RegFlushKey function returns only when all the data has been written to the registry.

The RegFlushKey function may also write out parts of or all of the other keys. Calling this function excessively can have a negative effect on an application's performance.

An application should only call RegFlushKey if it requires absolute certainty that registry changes are on disk. In general, RegFlushKey rarely, if ever, need be used.

Windows 95/98/Me: No registry subkey or value name may exceed 255 characters.

Requirements
Windows NT/2000/XP: Included in Windows NT 3.1 and later.
Windows 95/98/Me: Included in Windows 95 and later.
Header: Declared in Winreg.h; include Windows.h.
Library: Use Advapi32.lib.

See Also
Registry Overview, Registry Functions, RegCloseKey, RegDeleteKey


Platform SDK Release: August 2001 What did you think of this topic?
Let us know. Order a Platform SDK CD Online
(U.S/Canada) (International)



Requirements
Windows NT/2000/XP: Included in Windows NT 3.1 and later.
Windows 95/98/Me: Included in Windows 95 and later.
Header: Declared in Winreg.h; include Windows.h.
Library: Use Advapi32.lib.

See Also
Registry Overview, Registry Functions, RegCloseKey, RegDeleteKey
 
Hello David,

Thank you for your kind reply.

I have a further question about RegFlushKey.
It is not necessary to call RegFlushKey to change a key.
Registry changes are flushed to disk by the registry using its lazy flusher.
Lazy flushing occurs automatically and regularly after a system-specified
interval of time. Registry changes are also flushed to disk at system shutdown.

1. What is the trigger that Lazy flushing occurs automatically ?

2. How long the system-specified interval of time?
The value of the interval of time is saved in the registry?
If so, I'd like to know where the key of the registry is.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top