Arbeiten mit neuen Zielen während der Wiederherstellung
Ein Anforderer muss möglicherweise Dateien an einem Speicherort wiederherstellen, der durch einen anderen Speicherort als den Standardpfad eines Dateisatzes oder dessen alternative Speicherortzuordnung angegeben wird. Es gibt viele Gründe, warum dies passieren kann– beispielsweise war weder auf das Wiederherstellungsziel zugegriffen noch fordert ein Anforderer absichtlich die Wiederherstellung von Dateien an einem zuvor unbekannten Speicherort an. In diesem Fall verwendet der Anforderer den neuen Zielmechanismus, um autoren mitzuteilen, dass eine Datei in einem anderen Bereich auf dem Datenträger wiederhergestellt wurde.
Nicht alle Autoren unterstützen einen Anforderer, der das Wiederherstellungsziel einer Datei ändert. Ein Anforderer muss die Writerunterstützung überprüfen, indem er die Sicherungsschemamaske des Writers überprüft (von IVssExamineWriterMetadata::GetBackupSchema zurückgegeben) und überprüft, ob es das VSS_BS_WRITER_SUPPORTS_NEW_TARGET-Flag enthält.
Der Anforderer gibt eine solche Wiederherstellung über die IVssBackupComponents::AddNewTarget-Methode an. Neben der Angabe einer Dateispezifikation sowie eines ursprünglichen und eines neuen Wiederherstellungsziels gibt der Anfordernde Komponenteninformationen an – einen logischen Pfad und einen Komponentennamen.
Welche Informationen der Komponente verwendet werden, hängt davon ab, ob die Komponente, die die Datei verwaltet, die ein neues Ziel hinzugefügt hat , explizit oder implizit in die Sicherung einbezogen wurde.
Wenn die Verwaltungskomponente explizit eingeschlossen wurde, werden ihre Informationen verwendet. Wenn die verwaltungsbasierte Komponente implizit eingeschlossen wurde, handelt es sich um eine Unterkomponente in einem Komponentensatz. In diesem Fall werden die Informationen der definierenden Komponente des Komponentensatzes verwendet.
Beim Behandeln des PostRestore-Ereignisses sollten Autoren überprüfen, ob eine der zugehörigen Dateien an einem neuen Speicherort wiederhergestellt wurde. Dies kann mithilfe der Methoden IVssComponent::GetNewTargetCount und IVssComponent::GetNewTarget erfolgen .
Die instance der verwendeten IVssComponent-Schnittstelle hängt davon ab, ob die verwaltende Komponente der Datei explizit oder implizit der Sicherung hinzugefügt wurde.