Share via


RegFlushKey 函式 (winreg.h)

將指定的開啟登錄機碼的所有屬性 (Attribute) 寫入登錄中。

語法

LSTATUS RegFlushKey(
  [in] HKEY hKey
);

參數

[in] hKey

開啟登錄機碼的句柄。 金鑰必須已以KEY_QUERY_VALUE訪問許可權開啟。 如需詳細資訊,請參閱 登錄機碼安全性和訪問許可權

RegCreateKeyExRegCreateKeyTransactedRegOpenKeyEx 或 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 函式會寫出Hive中自上次延遲排清或系統啟動後已修改之其他索引鍵的數據。

在 RegFlushKey 傳回之後,請使用 RegCloseKey 關閉登錄機碼的句柄。

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 winreg.h (包含 Windows.h)
程式庫 Advapi32.lib
Dll Advapi32.dll

另請參閱

RegCloseKey

RegDeleteKey

登錄函式

登錄概觀