Freigeben über


SRSetRestorePointA-Funktion (srrestoreptapi.h)

Gibt den Anfang und das Ende einer Reihe von Änderungen an, damit die Systemwiederherstellung einen Wiederherstellungspunkt erstellen kann.

Eine skriptfähige Entsprechung finden Sie unter CreateRestorePoint.

Syntax

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

Parameter

[in] pRestorePtSpec

Ein Zeiger auf eine RESTOREPOINTINFO-Struktur , die den Wiederherstellungspunkt angibt.

[out] pSMgrStatus

Ein Zeiger auf eine STATEMGRSTATUS-Struktur, die die status Informationen empfängt.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert TRUE. Der llSequenceNumber-Member von pSMgrStatus empfängt die Sequenznummer des Wiederherstellungspunkts.

Wenn die Funktion fehlschlägt, ist der Rückgabewert FALSE. Das nStatus-Element von pSMgrStatus empfängt Fehlerinformationen.

Hinweise

Sie müssen die COM-Sicherheit initialisieren, damit NetworkService, LocalService und System alle Prozesse, die SRSetRestorePoint verwenden, zurückrufen können. Dies ist erforderlich, damit SRSetRestorePoint ordnungsgemäß funktioniert. Informationen zum Einrichten der COM-Aufrufe von CoInitializeEx und CoInitializeSecurity finden Sie unter Verwenden der Systemwiederherstellung.

Diese Funktion kann nicht im abgesicherten Modus aufgerufen werden. Außerdem tritt ein Fehler auf, wenn die Systemwiederherstellung deaktiviert wurde (siehe Deaktivieren).

Wenn Sie diese Funktion aufrufen, übernimmt die Systemwiederherstellung eine vollständige Momentaufnahme der Registrierung und anderer Systemdatenbanken.

Anwendungen sollten systemwiederherstellungsfunktionen nicht mithilfe der dynamischen Verknüpfung zur Ladezeit aufrufen. Verwenden Sie stattdessen die LoadLibrary-Funktion , um SrClient.dll und GetProcAddress zu laden, um die Funktion aufzurufen.

Erstellen Sie Wiederherstellungspunkte unmittelbar vor einer Systemänderung, indem Sie SRSetRestorePoint aufrufen, wobei der dwEventType-Member der RESTOREPOINTINFO-Struktur auf BEGIN_SYSTEM_CHANGE festgelegt ist. Nachdem die Änderungen am System abgeschlossen sind, rufen Sie SRSetRestorePoint auf, wobei dwEventType auf END_SYSTEM_CHANGE festgelegt ist.

Wenn der Benutzer die Anwendungsinstallation abbricht, entfernt das Installationsprogramm möglicherweise den Wiederherstellungspunkt, den es bei Beginn der Installation erstellt hat. Das Entfernen des Wiederherstellungspunkts ist optional und kann verhindern, dass der Benutzer unbeabsichtigte Änderungen wiederherstellen kann, die das Installationsprogramm während des Abbruchs vorgenommen hat. Wenn das Installationsprogramm einen Wiederherstellungspunkt entfernen soll, kann es die SRRemoveRestorePoint-Funktion aufrufen oder SRSetRestorePoint aufrufen, wobei dwRestorePointType auf CANCELLED_OPERATION, dwEventType auf END_SYSTEM_CHANGE und llSequenceNumber auf den Wert festgelegt ist, der vom ersten Aufruf von SRSetRestorePoint zurückgegeben wird.

Seien Sie vorsichtig, wenn Sie geschachtelte Aufrufe an SRSetRestorePoint ausführen. Weitere Informationen finden Sie unter Geschachtelte Aufrufe von SRSetRestorePoint.

Windows 8:

Mit einem neuen Registrierungsschlüssel können Anwendungsentwickler die Häufigkeit der Erstellung von Wiederherstellungspunkten ändern.

Anwendungen sollten diesen Schlüssel erstellen, um ihn zu verwenden, da er im System nicht vorhanden ist. Folgendes gilt standardmäßig, wenn der Schlüssel nicht vorhanden ist. Wenn eine Anwendung die SRSetRestorePoint-Funktion aufruft, um einen Wiederherstellungspunkt zu erstellen, überspringt Windows die Erstellung dieses neuen Wiederherstellungspunkts, wenn in den letzten 24 Stunden Wiederherstellungspunkte erstellt wurden. Die Systemwiederherstellung legt den IISequenceNumber-Member der STATEMGRSTATUS-Struktur auf die Sequenznummer für den zuvor am Tag erstellten Wiederherstellungspunkt und den Wert des nStatus-Elements auf ERROR_SUCCESS fest.

Die SRSetRestorePoint-Funktion gibt TRUE zurück.

Entwickler können Anwendungen schreiben, die den DWORD-WertSystemRestorePointCreationFrequency unter dem Registrierungsschlüssel HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore erstellen. Der Wert dieses Registrierungsschlüssels kann die Häufigkeit der Erstellung des Wiederherstellungspunkts ändern.

Wenn die Anwendung SRSetRestorePoint aufruft, um einen Wiederherstellungspunkt zu erstellen, und der Registrierungsschlüsselwert 0 ist, überspringt die Systemwiederherstellung das Erstellen des neuen Wiederherstellungspunkts nicht.

Wenn die Anwendung SRSetRestorePoint aufruft, um einen Wiederherstellungspunkt zu erstellen, und der Registrierungsschlüsselwert die ganze Zahl N ist, überspringt die Systemwiederherstellung die Erstellung eines neuen Wiederherstellungspunkts, wenn in den vorherigen N Minuten Wiederherstellungspunkte erstellt wurden.

Windows 8:

Die unter Windows 8 ausgeführte Systemwiederherstellung überwacht Dateien auf dem Startvolume, die nur für die Systemwiederherstellung relevant sind. Momentaufnahmen des Startvolumes, das von der Systemwiederherstellung unter Windows 8 erstellt wurde, können gelöscht werden, wenn die Momentaufnahme anschließend von einer früheren Version von Windows verfügbar gemacht wird. Beachten Sie, dass zwar nur ein Systemvolume vorhanden ist, aber für jedes Betriebssystem in einem Multistartsystem ein Startvolume vorhanden ist.

Entwickler können Anwendungen schreiben, die den DWORD-WertScopeSnapshots unter dem Registrierungsschlüssel HKLM\Software\Microsoft\Windows NT\CurrentVersion\SystemRestore 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 unter Windows 8 ausgeführte Systemwiederherstellung die Erstellung von Momentaufnahmen fort, die Dateien auf dem Startvolume überwachen, die nur für die Systemwiederherstellung relevant sind.

Beispiele

Ein Beispiel finden Sie unter Verwenden der Systemwiederherstellung.

Hinweis

Der Srrestoreptapi.h-Header definiert SRSetRestorePoint als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Nicht unterstützt
Zielplattform Windows
Kopfzeile srrestoreptapi.h
DLL SrClient.dll

Weitere Informationen

SRRemoveRestorePoint