Share via


SRSetRestorePointA 函式 (srrestoreptapi.h)

指定一組變更的開頭和結尾,讓系統還原可以建立還原點。

如需可編寫腳本的對等專案,請參閱 CreateRestorePoint

語法

BOOL SRSetRestorePointA(
  [in]  PRESTOREPOINTINFOA pRestorePtSpec,
  [out] PSTATEMGRSTATUS    pSMgrStatus
);

參數

[in] pRestorePtSpec

指定還原點之 RESTOREPOINTINFO 結構的指標。

[out] pSMgrStatus

接收狀態資訊的 STATEMGRSTATUS 結構的指標。

傳回值

如果函式成功,則傳回值為 TRUEpSMgrStatusllSequenceNumber成員會收到還原點的序號。

如果函式失敗,則傳回值為 FALSEpSMgrStatusnStatus成員會收到錯誤資訊。

備註

您必須初始化 COM 安全性,以允許 NetworkService、LocalService 和 System 回呼任何使用 SRSetRestorePoint的程式。 這是 SRSetRestorePoint 正常運作的必要專案。 如需設定 CoInitializeExCoInitializeSecurity COM 呼叫的相關資訊,請參閱 使用系統還原

此函式無法在安全模式中呼叫。 如果系統還原已停用, (請參閱 停用) 。

當您呼叫此函式時,系統還原會擷取登錄和其他系統資料庫的完整快照集。

應用程式不應該使用載入時間動態連結來呼叫系統還原函式。 請改用 LoadLibrary 函式來載入 SrClient.dll 和 GetProcAddress 來呼叫函式。

在系統變更之前建立還原點,方法是呼叫SRSetRestorePoint,並將RESTOREPOINTINFO結構的dwEventType成員設定為 BEGIN_SYSTEM_CHANGE。 系統變更完成之後,請呼叫將 dwEventType設定為 END_SYSTEM_CHANGE 的SRSetRestorePoint

如果使用者取消應用程式安裝,安裝程式可能會移除安裝開始時所建立的還原點。 移除還原點是選擇性的,而且可以防止使用者在取消期間從安裝程式所做的意外變更中復原。 如果安裝程式要移除還原點,它可以呼叫SRRemoveRestorePoint函式,或呼叫將 dwRestorePointType設定為 CANCELLED_OPERATION的SRSetRestorePointdwEventType設定為 END_SYSTEM_CHANGE,並將 llSequenceNumber設定為初始呼叫SRSetRestorePoint所傳回的值。

SRSetRestorePoint進行巢狀呼叫時請小心。 如需詳細資訊,請參閱 SRSetRestorePoint 的巢狀呼叫

Windows 8:

新的登錄機碼可讓應用程式開發人員變更還原點建立的頻率。

應用程式應該建立此金鑰以使用它,因為它不會存在於系統中。 如果機碼不存在,則預設會套用下列專案。 如果應用程式呼叫 SRSetRestorePoint 函式來建立還原點,如果過去 24 小時內已建立任何還原點,Windows 會略過建立這個新的還原點。 系統還原會將STATEMGRSTATUS結構的IISequenceNumber成員設定為先前在日內建立之還原點的序號,並將nStatus成員的值設定為ERROR_SUCCESS

SRSetRestorePoint函式會傳回TRUE

開發人員可以在登錄機碼HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore下建立DWORDSystemRestorePointCreationFrequency的應用程式。 此登錄機碼的值可以變更還原點建立的頻率。

如果應用程式呼叫 SRSetRestorePoint 來建立還原點,而登錄機碼值為 0,系統還原就不會略過建立新的還原點。

如果應用程式呼叫 SRSetRestorePoint 來建立還原點,而登錄機碼值為整數 N,則系統還原會略過在前 N 分鐘內建立任何還原點時建立新的還原點。

Windows 8:

在 Windows 8 上執行的系統還原會監視僅與系統還原相關的開機磁片區中的檔案。 如果後續由舊版 Windows 公開快照集,可能會刪除在 Windows 8 上執行之系統還原所建立之開機磁片區的快照集。 請注意,雖然只有一個系統磁片區,但多開機系統中每個作業系統都有一個開機磁片區。

開發人員可以在登錄機碼HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore下建立DWORDScopeSnapshots的應用程式。 如果此登錄機碼值為 0,系統還原會以與舊版 Windows 相同的方式建立開機磁片區的快照集。 如果刪除此值,在 Windows 8 上執行的系統還原會繼續建立快照集,以監視僅與系統還原相關的開機磁片區中的檔案。

範例

如需範例,請參閱 使用系統還原

注意

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

規格需求

   
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 都不支援
目標平台 Windows
標頭 srrestoreptapi.h
Dll SrClient.dll

另請參閱

SRRemoveRestorePoint