Aufrufen von SRSetRestorePoint
Eine Anwendung kann einen Wiederherstellungspunkt erstellen, bevor eine erhebliche Systemänderung verursacht wird, z. B. eine Installation, eine Deinstallation oder ein Update.
Installationsprogramme sollten vor der Installation einen Wiederherstellungspunkt erstellen, indem sie die SRSetRestorePoint-Funktion mit dem Mitglied dwEventType
der Struktur RESTOREPOINTINFO
aufrufen, das auf BEGIN_SYSTEM_CHANGE
festgelegt ist. Rufen Sie SRSetRestorePoint mit dwEventType
auf END_SYSTEM_CHANGE
festgelegt auf, um die Systemwiederherstellung zu benachrichtigen, dass die Installation abgeschlossen wurde.
Wenn der Benutzer die Anwendungsinstallation abbricht, kann das Installationsprogramm den Wiederherstellungspunkt entfernen, der beim Starten der Installation erstellt wurde. Das Entfernen des Wiederherstellungspunkts ist optional und kann verhindern, dass der Benutzer unbeabsichtigte Änderungen, die vom Installationsprogramm während des Abbruchs vorgenommen wurden, wiederherstellen kann. Wenn das Installationsprogramm einen Wiederherstellungspunkt entfernen soll, kann es die SRRemoveRestorePoint-Funktion aufrufen oder SRSetRestorePoint mit dwRestorePointType
festgelegt auf CANCELLED_OPERATION
, dwEventType
auf END_SYSTEM_CHANGE
und llSequenceNumber
auf den Wert, der vom anfänglichen Aufruf von SRSetRestorePoint zurückgegeben wird.
Ab Windows 8 können Entwickler Anwendungen schreiben, die den DWORD-Wert SystemRestorePointCreationFrequency unter dem HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore
-Registrierungsschlüssel erstellen. Der Wert dieses Registrierungsschlüssels kann die Häufigkeit der Erstellung von Wiederherstellungspunkten ändern. Dieser Schlüssel ist standardmäßig nicht vorhanden.
Wenn eine Anwendung die SRSetRestorePoint-Funktion aufruft, um einen Wiederherstellungspunkt zu erstellen, geschieht eine der folgenden Aktionen abhängig vom Inhalt des Schlüssels:
Wenn der Schlüssel nicht vorhanden ist (Standard) und alle Wiederherstellungspunkte in den letzten 24 Stunden erstellt wurden, überspringt Windows das Erstellen dieses neuen Wiederherstellungspunkts. Eine Systemwiederherstellung legt das
IISequenceNumber
-Mitglied derSTATEMGRSTATUS
-Struktur auf die Sequenznummer für den Wiederherstellungspunkt fest, der zuvor am Tag erstellt wurde, und legt den Wert desnStatus
-Mitglieds aufERROR_SUCCESS
fest. Die SRSetRestorePoint-Funktion gibtTRUE
zurück.Wenn der Registrierungsschlüsselwert 0 ist, überspringt die Systemwiederherstellung das Erstellen des neuen Wiederherstellungspunkts nicht.
Wenn der Registrierungsschlüsselwert die ganze Zahl N ist, überspringt die Systemwiederherstellung das Erstellen eines neuen Wiederherstellungspunkts, wenn in den vorherigen N Minuten Wiederherstellungspunkte erstellt wurden.
Die Systemwiederherstellung unter Windows 8 überwacht Dateien im Startvolume, die nur für die Systemwiederherstellung relevant sind. Momentaufnahmen des Startvolumes, das von der Systemwiederherstellung unter Windows 8 erstellt wird, werden möglicherweise gelöscht, wenn die Momentaufnahme anschließend von einer früheren Version von Windows verfügbar gemacht wird. Beachten Sie, dass obwohl nur ein Systemvolume vorhanden ist, ein Startvolume für jedes Betriebssystem in einem Mehrstartsystem vorhanden ist.
Entwickler können Anwendungen schreiben, die den DWORD-Wert ScopeSnapshots unter dem HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore
-Registrierungsschlüssel erstellen. Wenn dieser Registrierungsschlüsselwert 0 ist, erstellt die Systemwiederherstellung Momentaufnahmen des Startvolumes auf die gleiche Weise wie in früheren Versionen von Windows. Wenn dieser Wert gelöscht wird, setzt die Systemwiederherstellung unter Windows 8 das Erstellen von Momentaufnahmen fort, die Dateien im Startvolume überwachen, die nur für die Systemwiederherstellung relevant sind.
Ein Beispiel finden Sie unter Verwenden der Systemwiederherstellung.