VSS_RESTOREMETHOD_ENUM-Enumeration (vswriter.h)

Die VSS_RESTOREMETHOD_ENUM-Enumeration wird von einem Writer zur Sicherungszeit verwendet, um über das Writer Metadata Document die Standarddateiwiederherstellungsmethode anzugeben, die mit allen Dateien in allen von ihm verwalteten Komponenten verwendet werden soll.

Die Wiederherstellungsmethode ist writerweit und wird auch als ursprüngliches Wiederherstellungsziel bezeichnet und durch einen VSS_RESTORE_TARGET Wert von VSS_RT_ORIGINAL angegeben.

Syntax

typedef enum VSS_RESTOREMETHOD_ENUM {
  VSS_RME_UNDEFINED = 0,
  VSS_RME_RESTORE_IF_NOT_THERE,
  VSS_RME_RESTORE_IF_CAN_REPLACE,
  VSS_RME_STOP_RESTORE_START,
  VSS_RME_RESTORE_TO_ALTERNATE_LOCATION,
  VSS_RME_RESTORE_AT_REBOOT,
  VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE,
  VSS_RME_CUSTOM,
  VSS_RME_RESTORE_STOP_START
} ;

Konstanten

 
VSS_RME_UNDEFINED
Wert: 0
Es ist keine Wiederherstellungsmethode definiert.


Dies weist auf einen Fehler seitens des Writers hin.

Dieser Wert wird für Express-Writer nicht unterstützt.
VSS_RME_RESTORE_IF_NOT_THERE
Der Anforderer sollte die Dateien einer ausgewählten Komponente oder Komponentenmenge nur wiederherstellen, wenn keine Versionen von vorhanden sind.
diese Dateien, die sich derzeit auf dem Datenträger befinden.


Es sei denn, für die Dateiwiederherstellung werden alternative Speicherortzuordnungen definiert, wenn eine Version einer von einem verwalteten Datei
Die ausgewählte Komponente oder der ausgewählte Komponentensatz befindet sich derzeit auf dem Datenträger, keine der dateien, die vom ausgewählten verwaltet werden
Die Komponente oder der Komponentensatz sollte wiederhergestellt werden.

Wenn die alternative Speicherortzuordnung einer Datei definiert ist und eine Version der Dateien auf dem Datenträger auf dem
Ursprünglicher Speicherort, Dateien sollten nur an den alternativen Speicherort geschrieben werden, wenn keine Version der Datei vorhanden ist
der alternative Speicherort.
VSS_RME_RESTORE_IF_CAN_REPLACE
Der Anforderer sollte Dateien einer ausgewählten Komponente oder Komponentenmenge nur wiederherstellen, wenn die dateien, die sich derzeit auf dem Datenträger befinden, überschrieben werden können.


Es sei denn, es werden alternative Speicherortzuordnungen für die Dateiwiederherstellung definiert, wenn eine Version einer Datei vorhanden ist, die
kann nicht von der ausgewählten Komponente oder Komponente auf dem Datenträger überschrieben werden.
Die Komponente oder der Komponentensatz sollte wiederhergestellt werden.

Wenn die Alternative Speicherortzuordnung einer Datei definiert ist, sollten Dateien an den alternativen Speicherort geschrieben werden.
VSS_RME_STOP_RESTORE_START
Der Anforderer sollte den Wiederherstellungsvorgang wie folgt ausführen:


  1. Senden Sie das PreRestore-Ereignis, und warten Sie, bis alle Autoren es verarbeiten.

  2. Beenden Sie den Dienst.

  3. Stellen Sie die Dateien an ihren ursprünglichen Speicherorten wieder her.

  4. Starten Sie den Dienst neu.

  5. Senden Sie das PostRestore-Ereignis, und warten Sie, bis es von allen Autoren verarbeitet wird.


Der zu beendende Dienst wird im Voraus als Writer angegeben, wenn er die IVssCreateWriterMetadata::SetRestoreMethod-Methode aufruft . Der Anforderer kann den Namen des Diensts abrufen, indem er die IVssExamineWriterMetadata::GetRestoreMethod-Methode aufruft .

Beachten Sie, dass, wenn der Writer in dem Dienst gehostet wird, der beendet wird, dieser Writer das PostRestore-Ereignis nicht empfängt, da sich der Writer instance ID ändert, wenn der Dienst beendet und neu gestartet wird.
VSS_RME_RESTORE_TO_ALTERNATE_LOCATION
Der Anforderer sollte die Dateien der ausgewählten Komponente oder Komponente an dem durch den angegebenen Speicherort wiederherstellen.
Alternative Speicherortzuordnung, die in der Metadatendatei der Writer-Komponente angegeben ist. (Weitere Informationen finden Sie unter
IVssCreateWriterMetadata::AddAlternateLocationMapping,
IVssComponent::GetAlternateLocationMapping,
IVssExamineWriterMetadata::GetAlternateLocationMapping,
und IVssWMFiledesc::GetAlternateLocation.)

Dieser Wert wird für Express-Writer nicht unterstützt.
VSS_RME_RESTORE_AT_REBOOT
Der Anforderer sollte die Dateien einer ausgewählten Komponente oder Komponente wiederherstellen, nachdem der Computer neu gestartet wurde.


Die wiederherzustellenden Dateien sollten an einen temporären Speicherort kopiert werden, und der Anforderer sollte verwenden.
MoveFileEx mit dem
MOVEFILE_DELAY_UNTIL_REBOOT Flag, um die Wiederherstellung dieser Dateien in ihren
Der richtige Speicherort nach dem Neustart des Computers.
VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE
Wenn möglich, sollte der Anforderer die Dateien der ausgewählten Komponente oder Komponente auf ihren richtigen Wert wiederherstellen.
sofort.


Wenn Versionen einer der Dateien vorhanden sind, die von der ausgewählten Komponente oder Komponente verwaltet werden, die auf dem Datenträger festgelegt ist,
kann nicht überschrieben werden, dann sollten alle Dateien, die von der ausgewählten Komponente oder dem ausgewählten Komponentensatz verwaltet werden, wiederhergestellt werden.
nachdem der Computer neu gestartet wurde.

In diesem Fall sollten dateien, die wiederhergestellt werden sollen, an einen temporären Speicherort auf dem Datenträger kopiert werden, und der Anforderer sollte
Verwenden Sie MoveFileEx mit dem
MOVEFILE_DELAY_UNTIL_REBOOT Flag, um die Wiederherstellung dieser Dateien in ihren
Der richtige Speicherort nach dem Neustart des Computers.
VSS_RME_CUSTOM
Der Anforderer sollte eine benutzerdefinierte Wiederherstellungsmethode verwenden, um die Dateien wiederherzustellen, die von dem ausgewählten verwaltet werden.
Komponente oder Komponentensatz.


Eine benutzerdefinierte Wiederherstellung kann Dateiabruf-API-Funktionen oder Protokolle verwenden, die für einen bestimmten Writer privat sind.
Anwendung. Eine solche Wiederherstellung muss nicht die Informationen in der Metadatendatei der Writer-Komponente verwenden. (Weitere Informationen finden Sie unter
Benutzerdefinierte Sicherungen und Wiederherstellungen für weitere Informationen
Informationen.)

Dieser Wert wird für Express-Writer nicht unterstützt.
VSS_RME_RESTORE_STOP_START
Der Anforderer sollte den Wiederherstellungsvorgang wie folgt ausführen:


  1. Senden Sie das PreRestore-Ereignis, und warten Sie, bis alle Autoren es verarbeiten.

  2. Stellen Sie die Dateien an ihren ursprünglichen Speicherorten wieder her.

  3. Senden Sie das PostRestore-Ereignis, und warten Sie, bis es von allen Autoren verarbeitet wird.

  4. Beenden Sie den Dienst.

  5. Starten Sie den Dienst neu.


Der zu beendende Dienst wird vom Writer im Voraus angegeben, wenn er die IVssCreateWriterMetadata::SetRestoreMethod-Methode aufruft . Der Anforderer kann den Namen des Diensts abrufen, indem er die IVssExamineWriterMetadata::GetRestoreMethod-Methode aufruft .

Hinweise

Ein Writer legt die Wiederherstellungsmethode im Writer Metadata Document fest, indem er IVssCreateWriterMetadata::SetRestoreMethod während der Sicherung aufruft, um die gewünschte Wiederherstellungsmethode in den Metadaten anzugeben.

Ein Anforderer ruft die angeforderte Wiederherstellungsmethode eines Writers ab, indem er IVssExamineWriterMetadata::GetRestoreMethod aufruft und entsprechend handelt.

Die Wiederherstellungsmethode gilt für alle Dateien in allen Komponenten eines bestimmten Writers.

Die Wiederherstellungsmethode kann zur Wiederherstellungszeit komponentenweise überschrieben werden, wenn ein Writer einen anderen VSS_RESTORE_TARGET Wert als VSS_RT_ORIGINAL mit IVssComponent::SetRestoreTarget festlegt.

Eine Wiederherstellungsmethode von VSS_RME_RESTORE_TO_ALTERNATE_LOCATION ohne eine alternative Standortzuordnung, die definiert ist, stellt einen Schreibfehler dar, der vom Anforderer als solche gemeldet werden sollte.

Wenn eine Wiederherstellungsmethode eine Überprüfung der status von Dateien erfordert, die sich derzeit auf dem Datenträger befinden (VSS_RME_RESTORE_IF_NOT_THERE, VSS_RME_RESTORE_IF_CAN_REPLACE oder VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE), sollten Sie idealerweise Datei-E/A-Vorgänge verwenden, um zu überprüfen, ob eine gesamte Komponente wiederhergestellt werden kann, bevor Sie mit der Wiederherstellung fortfahren.

Die sicherste Möglichkeit wäre, alle Zieldateien mit CreateFile vor der Wiederherstellung exklusiv (ohne Freigabe) zu öffnen.

Bei VSS_RME_RESTORE_IF_NOT_THERE sollte auch ein Erstellungsdispositionsflag von CREATE_NEW festgelegt werden.

Wenn die geöffneten Vorgänge erfolgreich sind, kann die Wiederherstellung fortgesetzt werden und sollte die von CreateFile zurückgegebenen Handles verwenden, um wiederhergestellte Daten tatsächlich auf den Datenträger zu schreiben.

Andernfalls kann je nach Methode ein Fehler zurückgegeben oder die alternative Standortzuordnung aktiviert und (sofern verfügbar) verwendet oder die Komponentendateien für die Wiederherstellung beim nächsten Neustart bereitgestellt werden.

Dies kann aufgrund des Systemaufwands ein Problem für sehr große Komponenten sein (von denen einige Tausende von Dateien enthalten können).

In diesem Fall besteht eine verfügbare, wenn auch weniger zuverlässige Option darin, Folgendes zu tun:

  1. Kopieren Sie alle Dateien, die sich derzeit auf dem Datenträger befinden und in einen temporären Cache wiederhergestellt werden sollen.
  2. Versuchen Sie, die dateien, die sich derzeit auf dem Datenträger befinden, durch die gesicherten Dateien zu ersetzen (die sich entweder auf dem Datenträger in einem zweiten temporären Bereich oder auf einem Sicherungsmedium befinden können).
  3. Wenn dateien nicht wiederhergestellt werden können, beenden Sie den Wiederherstellungsvorgang, und kopieren Sie die ursprünglichen Dateien von ihrem temporären Speicherort zurück, und fahren Sie mit der alternativen Speicherortzuordnung oder der Wiederherstellung bei Neustartvorgängen fort.
Weitere Informationen zu Sicherungs- und Wiederherstellungsdateispeicherorten unter VSS finden Sie unter Nicht standardmäßige Sicherungs- und Wiederherstellungsspeicherorte.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile vswriter.h

Weitere Informationen

IVssBackupComponents::AddAlternativeLocationMapping

IVssComponent::GetAlternateLocationMapping

IVssCreateWriterMetadata::AddAlternateLocationMapping

IVssCreateWriterMetadata::SetRestoreMethod

IVssExamineWriterMetadata::GetAlternateLocationMapping

IVssExamineWriterMetadata::GetRestoreMethod

IVssWMFiledesc::GetAlternateLocation

VSS_WRITERRESTORE_ENUM