ORSaveHive 函式

將指定的離線登錄區寫入檔案。

語法

DWORD ORSaveHive(
  _In_ ORHKEY Handle,
  _In_ PCWSTR lpHivePath,
  _In_ DWORD  dwOsMajorVersion,
  _In_ DWORD  dwOsMinorVersion
);

參數

處理 [in]

要儲存之離線登錄區控制碼。

lpHivePath [in]

指定登錄區檔名稱之 Unicode 字串的指標。 這不可以是現有檔案的名稱。

dwOsMajorVersion [in]

作業系統的主要版本號碼。 這個成員可以是下列其中一個值。

意義
5
如果 dwOsMinorVersion 為 1,則作業系統為 Windows XP。
如果 dwOsMinorVersion 為 2,作業系統為 Windows Server 2003 R2、Windows Server 2003 或 Windows XP Professional x64 Edition。
6
如果 dwOsMinorVersion 為 0,則作業系統為 Windows Server 2008 或 Windows Vista。
如果 dwOsMinorVersion 為 1,則作業系統為 Windows Server 2008 R2 或 Windows 7。

 

dwOsMinorVersion [in]

作業系統的次要版本號碼。 這個成員可以是下列其中一個值。

意義
0
如果 dwOsMajorVersion 為 6,則作業系統為 Windows Server 2008 或 Windows Vista。
1
如果 dwOsMajorVersion 為 5,則作業系統為 Windows XP。
如果 dwOsMajorVersion 為 6,作業系統為 Windows Server 2008 R2 或 Windows 7。
2
如果 dwOsMajorVersion 為 5,作業系統為 Windows Server 2003 R2、Windows Server 2003 或 Windows XP Professional x64 Edition。
如果 dwOsMajorVersion 為 6, dwOsMinorVersion 參數必須是 0 或 1。

 

傳回值

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

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

  • 如果呼叫端沒有寫入檔案所需的存取權限,函式會傳回ERROR_ACCESS_DENIED。
  • 如果指定的檔案已經存在,函式會傳回ERROR_ALREADY_EXISTS。

備註

ORSaveHive函式必須用來儲存對離線登錄區所做的變更。 在呼叫 ORSaveHive 以將 Hive 儲存至檔案之前,不會保留變更。

dwOsMajorVersiondwOsMinorVersion參數會同時指定登錄區檔案的目標格式。 下表摘要說明最新的作業系統版本號碼。

作業系統 版本號碼
Windows Server 2008 R2 6.1
Windows 7 6.1
Windows Server 2008 6.0
Windows Vista 6.0
Windows Server 2003 R2 5.2
Windows Server 2003 5.2
Windows XP Professional x64 Edition 5.2
Windows XP 5.1

 

使用 GetVersionEx 函式來擷取目前作業系統的相關資訊。

ORSaveHive函式會在將 Hive 寫入檔案時鎖定登錄區,然後關閉檔案並釋放鎖定。 登錄區會保留在記憶體中,直到呼叫 ORCloseHive 函式關閉為止。 在登錄區開啟時,可能會對登錄區進行進一步的變更;不過,若要保留這些變更,Hive 必須儲存到新的檔案,因為 ORSaveHive 函式不會覆寫現有的檔案。

ORSaveHive函式可用來儲存離線登錄區中的一部分。 Handle參數中指定的索引鍵會成為 Hive 的根索引鍵,其中包含指定的索引鍵及其所有子機碼。

規格需求

需求
可轉散發套件
Windows 離線登錄程式庫 1.0 版或更新版本
標頭
Offreg.h
DLL
Offreg.dll

另請參閱

GetVersionEx

ORCloseHive

OROpenHive