SRSetRestorePointA 函式 (srrestoreptapi.h)
指定一組變更的開頭和結尾,讓系統還原可以建立還原點。
如需可編寫腳本的對等專案,請參閱 CreateRestorePoint。
語法
BOOL SRSetRestorePointA(
[in] PRESTOREPOINTINFOA pRestorePtSpec,
[out] PSTATEMGRSTATUS pSMgrStatus
);
參數
[in] pRestorePtSpec
指定還原點之 RESTOREPOINTINFO 結構的指標。
[out] pSMgrStatus
接收狀態資訊的 STATEMGRSTATUS 結構的指標。
傳回值
如果函式成功,則傳回值為 TRUE。 pSMgrStatus的llSequenceNumber成員會收到還原點的序號。
如果函式失敗,則傳回值為 FALSE。 pSMgrStatus的nStatus成員會收到錯誤資訊。
備註
您必須初始化 COM 安全性,以允許 NetworkService、LocalService 和 System 回呼任何使用 SRSetRestorePoint的程式。 這是 SRSetRestorePoint 正常運作的必要專案。 如需設定 CoInitializeEx 和 CoInitializeSecurity COM 呼叫的相關資訊,請參閱 使用系統還原。
此函式無法在安全模式中呼叫。 如果系統還原已停用, (請參閱 停用) 。
當您呼叫此函式時,系統還原會擷取登錄和其他系統資料庫的完整快照集。
應用程式不應該使用載入時間動態連結來呼叫系統還原函式。 請改用 LoadLibrary 函式來載入 SrClient.dll 和 GetProcAddress 來呼叫函式。
在系統變更之前建立還原點,方法是呼叫SRSetRestorePoint,並將RESTOREPOINTINFO結構的dwEventType成員設定為 BEGIN_SYSTEM_CHANGE。 系統變更完成之後,請呼叫將 dwEventType設定為 END_SYSTEM_CHANGE 的SRSetRestorePoint。
如果使用者取消應用程式安裝,安裝程式可能會移除安裝開始時所建立的還原點。 移除還原點是選擇性的,而且可以防止使用者在取消期間從安裝程式所做的意外變更中復原。 如果安裝程式要移除還原點,它可以呼叫SRRemoveRestorePoint函式,或呼叫將 dwRestorePointType設定為 CANCELLED_OPERATION的SRSetRestorePoint、dwEventType設定為 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下建立DWORD值SystemRestorePointCreationFrequency的應用程式。 此登錄機碼的值可以變更還原點建立的頻率。
如果應用程式呼叫 SRSetRestorePoint 來建立還原點,而登錄機碼值為 0,系統還原就不會略過建立新的還原點。
如果應用程式呼叫 SRSetRestorePoint 來建立還原點,而登錄機碼值為整數 N,則系統還原會略過在前 N 分鐘內建立任何還原點時建立新的還原點。
Windows 8:
在 Windows 8 上執行的系統還原會監視僅與系統還原相關的開機磁片區中的檔案。 如果後續由舊版 Windows 公開快照集,可能會刪除在 Windows 8 上執行之系統還原所建立之開機磁片區的快照集。 請注意,雖然只有一個系統磁片區,但多開機系統中每個作業系統都有一個開機磁片區。
開發人員可以在登錄機碼HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore下建立DWORD值ScopeSnapshots的應用程式。 如果此登錄機碼值為 0,系統還原會以與舊版 Windows 相同的方式建立開機磁片區的快照集。 如果刪除此值,在 Windows 8 上執行的系統還原會繼續建立快照集,以監視僅與系統還原相關的開機磁片區中的檔案。
範例
如需範例,請參閱 使用系統還原。
注意
srrestoreptapi.h 標頭會將 SRSetRestorePoint 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | 都不支援 |
目標平台 | Windows |
標頭 | srrestoreptapi.h |
Dll | SrClient.dll |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應