次の方法で共有


RegSaveKeyExA 関数 (winreg.h)

指定したキーとそのすべてのサブキーと値を、指定した形式でレジストリ ファイルに保存します。

システム ファイルやレジストリ ハイブを含むシステム状態をバックアップまたは復元するアプリケーションでは、レジストリ関数の代わりに ボリューム シャドウ コピー サービス を使用する必要があります。

構文

LSTATUS RegSaveKeyExA(
  [in]           HKEY                        hKey,
  [in]           LPCSTR                      lpFile,
  [in, optional] const LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  [in]           DWORD                       Flags
);

パラメーター

[in] hKey

開いているレジストリ キーへのハンドル。

この関数は、HKEY_CLASSES_ROOT 定義済みキーをサポートしていません。

[in] lpFile

指定したキーとサブキーを保存するファイルの名前。 ファイルが既に存在する場合、関数は失敗します。

新しいファイルにはアーカイブ属性があります。

文字列にパスが含まれていない場合、ファイルはローカル キーの呼び出し元プロセスの現在のディレクトリ、またはリモート キーの %systemroot%\system32 ディレクトリに作成されます。

[in, optional] lpSecurityAttributes

新しいファイルのセキュリティ記述子を指定する SECURITY_ATTRIBUTES 構造体へのポインター。 lpSecurityAttributes NULL場合、ファイルは既定のセキュリティ記述子を取得します。 ファイルの既定のセキュリティ記述子の ACL は、その親ディレクトリから継承されます。

[in] Flags

保存されたキーまたはハイブの形式。 このパラメーターには、次のいずれかの値を指定できます。

価値 意味
REG_STANDARD_FORMAT
1
キーまたはハイブは標準形式で保存されます。 標準形式は、Windows 2000 でサポートされている唯一の形式です。
REG_LATEST_FORMAT
2
キーまたはハイブは最新の形式で保存されます。 最新の形式は、Windows XP 以降でサポートされています。 この形式でキーまたはハイブを保存した後は、以前のシステムに読み込むことができません。
REG_NO_COMPRESSION
4
高速な保存操作のために、ハイブは圧縮なしで保存されます。 hKey パラメーターは、HKEY_LOCAL_MACHINE または HKEY_USERSのハイブのルートを指定する必要があります。 たとえば、HKLM\SOFTWARE はハイブのルートです。

戻り値

関数が成功した場合、戻り値はERROR_SUCCESS。

関数が失敗した場合、戻り値は Winerror.h で定義されている 0 以外のエラー コードです。 FormatMessage 関数を FORMAT_MESSAGE_FROM_SYSTEM フラグと共に使用すると、エラーの一般的な説明を取得できます。

この関数の 1 回の呼び出しで、Flags パラメーターに上記で示した複数の値が指定されている場合 (たとえば、2 つ以上の値が OR'ed である場合)、またはREG_NO_COMPRESSIONが指定され、hKey ハイブのルートではないキーが指定されている場合、この関数はERROR_INVALID_PARAMETERを返します。

備考

regSaveKeyとは異なり、この関数は定義済みのキー HKEY_CLASSES_ROOT サポートしていません。

hKey がリモート コンピューター上のキーを表す場合、lpFile 記述されるパスはリモート コンピューターを基準とします。

RegSaveKeyEx 関数は、不揮発性キーのみを保存します。 揮発性キーは保存されません。 キーは、その作成時に揮発性または不揮発性になります。RegCreateKeyEx参照してください。

RegSaveKeyEx によって作成されたファイルは、RegLoadKey、regReplaceKey、または RegRestoreKey 関数 後続の呼び出しで使用できます。 RegSaveKeyEx 操作の途中で失敗した場合、ファイルは破損し、その後、ファイルの RegLoadKeyRegReplaceKey、または regRestoreKey への呼び出しが失敗します。

レジストリ サブツリーをコピーする RegRestoreKey regSaveKeyEx を使用することはお勧めしません。 このメソッドは通知をトリガーせず、他のアプリケーションで使用されるハンドルを無効にすることができます。 代わりに、SHCopyKey 関数または RegCopyTree 関数を使用します。

呼び出し元のプロセスでは、SE_BACKUP_NAME特権が有効になっている必要があります。 詳細については、「特別な特権を使用した実行 」を参照してください。

手記

winreg.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして RegSaveKeyEx を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winreg.h (Windows.h を含む)
ライブラリ Advapi32.lib
DLL Advapi32.dll

関連項目

RegCreateKeyEx の

RegDeleteKey を する

RegLoadKey を する

RegReplaceKey を する

RegRestoreKey の

RegSaveKey

レジストリ ファイル の

レジストリ関数 を する

SECURITY_ATTRIBUTES