共用方式為


RegLoadAppKeyW 函式 (winreg.h)

將指定的登錄區載入為應用程式 Hive。

語法

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

參數

[in] lpFile

Hive 檔案的名稱。 此 Hive 必須使用 RegSaveKeyRegSaveKeyEx 函式來建立。 如果檔案不存在,則會使用指定的名稱建立空的Hive檔案。

[out] phkResult

載入之 Hive 根索引鍵之句柄的指標。

存取Hive中金鑰的唯一方法是透過這個句柄。 登錄會防止應用程式使用金鑰的絕對路徑來存取此 Hive 中的密鑰。 因此,無法透過登錄的命名空間巡覽至此Hive。

[in] samDesired

遮罩,指定針對傳回的根密鑰所要求的訪問許可權。 如需詳細資訊,請參閱 登入機碼安全性和存取權限

[in] dwOptions

如果此參數是REG_PROCESS_APPKEY,呼叫端載入Hive時,就無法再次載入Hive。 這可防止另一個呼叫端存取此登錄區。

Reserved

這個參數是保留的。

傳回值

如果函式成功,則傳回值會ERROR_SUCCESS。

如果函式失敗,傳回值是 Winerror.h 中定義的非零錯誤碼。 您可以使用 FormatMessage 函式搭配 FORMAT_MESSAGE_FROM_SYSTEM 旗標來取得錯誤的泛型描述。

言論

不同於 RegLoadKeyRegLoadAppKey 不會在 HKEY_LOCAL_MACHINE 或 HKEY_USERS 下載入 hive。 相反地,Hive 會載入至無法列舉的特殊根目錄下。 因此,無法列舉目前由 RegLoadAppKey載入的 Hives。 RegLoadAppKey 所載入之 hives 的所有作業 都必須相對於在 phkResult 中傳回的句柄執行。

如果需要兩個進程才能在相同的Hive上執行作業,則每個進程都必須呼叫 RegLoadAppKey 以擷取句柄。 在 RegLoadAppKey 作業期間,登錄會確認檔案是否已載入。 如果已載入,登錄會將句柄傳回先前載入的Hive,而不是重新載入Hive。

Hive 內的所有金鑰都必須具有相同的安全性描述元,否則函式將會失敗。 此安全性描述元必須授與呼叫者 samDesired 參數所指定的存取權,否則函式將會失敗。 您無法在 hive 內的任何索引鍵上使用 RegSetKeySecurity 函式。

在 Windows 8 和更新版本中,每個進程都可以呼叫 RegLoadAppKey 以載入多個 Hives。 在 Windows 7 和更早版本中,每個進程一次只能載入一個 hive RegLoadAppKey

使用 RegLoadAppKey 載入的任何 hive,都會在使用 RegCloseKey關閉 hive 內所有索引鍵的句柄時,自動卸除。

若要編譯使用此函式的應用程式,請將_WIN32_WINNT定義為0x0600或更新版本。 如需詳細資訊,請參閱使用 Windows 標頭

注意

winreg.h 標頭會將 RegLoadAppKey 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平臺 窗戶
標頭 winreg.h (包括 Windows.h)
連結庫 Advapi32.lib
DLL Advapi32.dll

另請參閱

RegSaveKey

登錄函式

登錄Hive