共用方式為


呼叫 SRSetRestorePoint

應用程式可以在造成重大系統變更之前建立還原點,例如安裝、卸載或更新。

安裝程式應該先建立還原點再安裝,方法是呼叫 SRSetRestorePoint 函式,並將 RESTOREPOINTINFO 結構 dwEventType 成員設定為 BEGIN_SYSTEM_CHANGE。 若要通知系統還原安裝已完成,請呼叫 SRSetRestorePoint,並將 dwEventType 設定為 END_SYSTEM_CHANGE

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

從 Windows 8 開始,開發人員可以撰寫在 HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore 登錄機碼下建立 DWORD 值 SystemRestorePointCreationFrequency 的應用程式。 此登錄機碼的值可以變更還原點建立的頻率。 根據預設,此機碼不存在。

當應用程式呼叫 SRSetRestorePoint 函式來建立還原點時,會視密鑰的內容而定,發生下列其中一項:

  • 如果密鑰不存在(預設值),且在過去 24 小時內已建立任何還原點,Windows 會略過建立這個新的還原點。 系統還原會將 STATEMGRSTATUS 結構的 IISequenceNumber 成員設定為先前在日中建立之還原點的序號,並將 nStatus 成員的值設定為 ERROR_SUCCESSSRSetRestorePoint 函式會傳回 TRUE

  • 如果登錄機碼值為 0,系統還原不會略過建立新的還原點。

  • 如果登錄機碼值是整數 N,如果前 N 分鐘內建立任何還原點,系統還原會略過建立新的還原點。

在 Windows 8 上執行的系統還原會監視僅與系統還原相關的開機磁碟區中的檔案。 如果 Windows 8 上執行的系統還原所建立的開機磁碟區快照,之後被早期版本的 Windows 暴露,該快照可能會被刪除。 請注意,雖然只有一個系統磁碟區,但多開機系統中每個作系統都有一個開機磁碟區。

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

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