共用方式為


呼叫 SRSetRestorePoint

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

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

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

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

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

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

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

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

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

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

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