RegRestoreKeyA 関数 (winreg.h)
指定したファイル内のレジストリ情報を読み取り、指定したキーにコピーします。 このレジストリ情報は、キーと複数レベルのサブキーの形式である場合があります。
システム ファイルやレジストリ ハイブを含むシステム状態をバックアップまたは復元するアプリケーションでは、レジストリ関数の代わりに ボリューム シャドウ コピー サービス を使用する必要があります。
構文
LSTATUS RegRestoreKeyA(
[in] HKEY hKey,
[in] LPCSTR lpFile,
[in] DWORD dwFlags
);
パラメーター
[in] hKey
開いているレジストリ キーへのハンドル。 このハンドルは、 RegCreateKeyEx または RegOpenKeyEx 関数によって返されます。 また、次の 定義済みキーのいずれかを指定することもできます。
HKEY_CLASSES_ROOTHKEY_CURRENT_CONFIGHKEY_CURRENT_USER HKEY_LOCAL_MACHINEHKEY_USERSこのキーとその子孫キーに含まれる情報は、lpFile パラメーターが指すファイル内の情報によって上書きされます。
[in] lpFile
レジストリ情報を含むファイルの名前。 このファイルは通常、 RegSaveKey 関数を使用して作成されます。
[in] dwFlags
キーまたはキーの復元方法を示すフラグ。 このパラメーターには、次の値のいずれかを指定できます。
戻り値
関数が成功した場合、戻り値は ERROR_SUCCESS です。
関数が失敗した場合、戻り値は Winerror.h で定義されている 0 以外のエラー コードです。 FormatMessage 関数を FORMAT_MESSAGE_FROM_SYSTEM フラグと共に使用すると、エラーの一般的な説明を取得できます。
注釈
2 つの異なるレジストリ ハイブ ファイル形式があります。 現在のオペレーティング システムで作成されたレジストリ ハイブは、通常、以前のオペレーティング システムでは読み込めません。
hKey パラメーターのサブキーが開いている場合、RegRestoreKey は失敗します。
呼び出し元のプロセスには、レジストリが存在するコンピューターに対するSE_RESTORE_NAMEとSE_BACKUP_NAMEの特権が必要です。 詳細については、「特別な特権を使用して実行する」を参照してください。
この関数は、ファイル内の最上位キーの名前に関係なく、指定したキーの下のキーと値を、ファイル内の最上位のキーの補助となるキーと値に置き換えます。 たとえば、 hKey はサブキー B と C を持つキー A を識別し、 lpFile パラメーターはサブキー Y と Z を持つキー X を含むファイルを指定します。 RegRestoreKey の呼び出し後、レジストリには、サブキー Y と Z を持つキー A が含まれます。A の値エントリは、X の値エントリに置き換えられます。
lpFile で指定されたファイル内の新しい情報は、キー名を除き、hKey パラメーターで指定されたキーの内容を上書きします。
hKey がリモート コンピューターのキーを表す場合、lpFile によって記述されるパスはリモート コンピューターに対する相対パスです。
注意
winreg.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして RegRestoreKey を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winreg.h (Windows.h を含む) |
Library | Advapi32.lib |
[DLL] | Advapi32.dll |