次の方法で共有


RegLoadAppKeyA 関数 (winreg.h)

指定したレジストリ ハイブをアプリケーション ハイブとして読み込みます。

構文

LSTATUS RegLoadAppKeyA(
  [in]  LPCSTR lpFile,
  [out] PHKEY  phkResult,
  [in]  REGSAM samDesired,
  [in]  DWORD  dwOptions,
        DWORD  Reserved
);

パラメーター

[in] lpFile

Hive ファイルの名前。 このハイブは、RegSaveKey または RegSaveKeyEx 関数を使用して作成されている必要があります。 ファイルが存在しない場合は、指定した名前の空のハイブ ファイルが作成されます。

[out] phkResult

読み込まれたハイブのルート キーのハンドルへのポインター。

ハイブ内のキーにアクセスする唯一の方法は、このハンドルを使用することです。 レジストリは、アプリケーションがキーへの絶対パスを使用してこのハイブ内のキーにアクセスできないようにします。 その結果、レジストリの名前空間を介してこのハイブに移動することはできません。

[in] samDesired

返されたルート キーに対して要求されるアクセス権を指定するマスク。 詳細については、「 レジストリ キーのセキュリティとアクセス権」を参照してください。

[in] dwOptions

このパラメーターがREG_PROCESS_APPKEYされている場合、呼び出し元によって読み込まれている間は、ハイブを再度読み込むことができません。 これにより、別の呼び出し元がこのレジストリ ハイブにアクセスできなくなります。

Reserved

このパラメーターは予約されています。

戻り値

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

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

注釈

RegLoadKey とは異なり、RegLoadAppKey では、HKEY_LOCAL_MACHINEまたはHKEY_USERSの下でハイブが読み込まれません。 代わりに、ハイブは列挙できない特殊なルートの下に読み込まれます。 その結果、 RegLoadAppKey によって現在読み込まれているハイブを列挙する方法はありません。 RegLoadAppKey によって読み込まれたハイブに対するすべての操作は、phkResult で返されるハンドルに対して相対的に実行する必要があります。

同じハイブに対して操作を実行するために 2 つのプロセスが必要な場合、各プロセスは RegLoadAppKey を呼び出してハンドルを取得する必要があります。 RegLoadAppKey 操作中に、レジストリはファイルが既に読み込まれているかどうかを確認します。 読み込まれている場合、レジストリは、ハイブを再読み込みするのではなく、以前に読み込まれたハイブへのハンドルを返します。

ハイブ内のすべてのキーは同じセキュリティ記述子を持つ必要があります。そうしないと、関数は失敗します。 このセキュリティ記述子は、 samDesired パラメーターで指定されたアクセス権を呼び出し元に付与する必要があります。または、関数が失敗します。 Hive 内のどのキーでも RegSetKeySecurity 関数を使用することはできません。

Windows 8 以降では、各プロセスで RegLoadAppKey を呼び出して複数のハイブを読み込むことができます。 Windows 7 以前では、各プロセスでは 、RegLoadAppKey を使用して一度に 1 つのハイブのみを読み込むことができます。

RegLoadAppKey を使用して読み込まれたハイブは、Hive 内のキーに対するすべてのハンドルが RegCloseKey を使用して閉じられると、自動的にアンロードされます。

この関数を使用するアプリケーションをコンパイルするには、_WIN32_WINNTを 0x0600 以降として定義します。 詳細については、「 Windows ヘッダーの使用」を参照してください。

注意

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

要件

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

こちらもご覧ください

RegSaveKey

レジストリ関数

レジストリ Hive