共用方式為


關於離線登錄連結庫

離線登錄庫可用來修改使用中系統登錄外部的登錄區。

離線登錄連結庫適用於登錄更新案例,例如維護作業系統映像。 離線登錄函式提供標準登錄功能無法使用的下列功能:

  • 離線登錄功能可用來修改任何支援登錄格式的登錄區。 標準登錄功能只能對作用中的登錄區進行變更,而且變更必須與系統上執行的 Windows 版本相容。
  • 離線登錄庫只需要讀取許可權才能開啟登錄區檔案和寫入許可權才能儲存盤案。 Hive 中的物件不會執行其他存取檢查,因此可以修改具有標準用戶許可權的 Hive。 使用標準登錄功能時,將Hive載入使用中登錄是需要系統管理存取的特殊許可權作業。

離線登錄函式不應作為系統登錄函式的替代專案,原因如下:

  • 無法使用離線登錄功能在進程之間共用登錄區。
  • 離線登錄函式會使用簡單的鎖定,這可能會導致多線程應用程式的效能嚴重降低。
  • 在呼叫 ORSaveHive 函式之前,不會儲存使用離線登錄函式所做的變更。

應用程式不應該使用離線登錄功能來略過系統登錄的安全性需求。 若要載入 Hive,執行且沒有 RegLoadKey 函式所需特殊許可權的應用程式可以使用 RegLoadAppKey 函式。

Windows Server 2003 和 Windows XP:不支援 RegLoadAppKey 函式。

離線登錄區是使用離線登錄功能載入記憶體的登錄區。 若要建立空的離線登錄區,請使用 ORCreateHive 函式。 若要修改現有的登錄區,請使用 RegSaveKey 或 RegSaveKeyEx 函式,將 Hive 從使用中系統登錄儲存到檔案,然後使用 OROpenHive 函式開啟檔案。

ORCreateHive 和 OROpenHive 函式會傳回離線登錄區根機碼的句柄。 此句柄可以像離線登錄區中任何其他索引鍵的句柄一樣使用,但有下列例外狀況:ORCreateKey 和 OROpenKey 函式無法用來傳回根機碼的句柄;ORCloseKey 函式無法用來關閉根機碼;ORDeleteKey 函式無法用來刪除根機碼。 在上述所有情況下,函式會失敗並出現 ERROR_INVALID_PARAMETER

使用 ORCreateKey 函式,將機碼新增至開啟的離線登錄區,以及 ORSetValue 函式來設定機碼的值。 離線登錄庫支援其他基本登錄作業,例如列舉、擷取和刪除機碼和值,以及設定安全性與虛擬化行為等索引鍵屬性。 如需函式清單,請參閱 離線登錄連結庫函式

若要儲存對開啟離線登錄區所做的變更,請使用 ORSaveHive 函式將 Hive 儲存至檔案。 (除非 呼叫 ORSaveHive 。)儲存Hive之後,請使用 ORCloseHive 函式來關閉Hive並釋放與其相關聯的資源。

只有在使用 OROpenHive 函式開啟離線登錄區時,才會驗證離線登錄區。 如果Hive損毀,則作業只會失敗;不會嘗試修復Hive。 在Hive載入使用 RegLoadKey 函式的作用中登錄之前,不會執行 Hive 中物件的存取檢查。

離線登錄功能不支援 預先定義的機碼

傳遞至離線登錄函式的所有機碼和值名稱字串都必須是 Unicode。

離線登錄Library_Functions