Share via


RegFlushKey 関数 (winreg.h)

指定したオープン レジストリ キーのすべての属性をこのレジストリへ書き込みます。

構文

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 で定義されている 0 以外のエラー コードです。 FormatMessage 関数を FORMAT_MESSAGE_FROM_SYSTEM フラグと共に使用すると、エラーの一般的な説明を取得できます。

注釈

RegFlushKey の呼び出しは、ディスク帯域幅を消費し、フラッシュ操作が完了するまでフラッシュされるレジストリ ハイブ内のすべてのプロセスによるすべてのキーの変更をブロックするため、システム全体のパフォーマンスに大きな影響を与える負荷の高い操作です。 RegFlushKey は 、変更直後にレジストリの変更がディスクに保持されることをアプリケーションが保証する必要がある場合にのみ、明示的に呼び出す必要があります。 キーに加えられたすべての変更は、ディスクにフラッシュする必要なく、他のプロセスに表示されます。

または、レジストリには、レジストリの変更を一定の間隔でディスクにフラッシュする "遅延フラッシュ" メカニズムがあります。 この通常のフラッシュ操作に加えて、レジストリの変更もシステムのシャットダウン時にディスクにフラッシュされます。 'lazy flush' を使用してレジストリの変更をフラッシュできるようにすることは、ディスク上のレジストリ ストアへのレジストリ書き込みを管理する最も効率的な方法です。

RegFlushKey 関数は、指定したキーを含むハイブのすべてのデータがディスク上のレジストリ ストアに書き込まれた場合にのみを返します。

RegFlushKey 関数は、最後の遅延フラッシュまたはシステムの開始以降に変更されたハイブ内の他のキーのデータを書き込みます。

RegFlushKey が返されたら、RegCloseKey を使用してレジストリ キーへのハンドルを閉じます。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winreg.h (Windows.h を含む)
Library Advapi32.lib
[DLL] Advapi32.dll

こちらもご覧ください

RegCloseKey

RegDeleteKey

レジストリ関数

レジストリの概要