IVssComponent::GetDifferencedFile-Methode (vswriter.h)

Die GetDifferencedFile-Methode gibt Informationen zu einem Dateisatz (eine angegebene Datei oder Dateien) zurück, die an einer inkrementellen oder differenziellen Sicherung oder Wiederherstellung als differenzierte Datei teilnehmen. Das heißt, sicherungen und wiederherstellen, die damit verknüpft sind, müssen so implementiert werden, als ob ganze Dateien auf und von Sicherungsmedien kopiert werden (im Gegensatz zur Verwendung von Teildateien).

Diese Methode kann von einem Anforderer oder einem Writer während sicherungs- oder wiederherstellungsvorgängen aufgerufen werden.

Syntax

HRESULT GetDifferencedFile(
  [in]  UINT     iDifferencedFile,
  [out] BSTR     *pbstrPath,
  [out] BSTR     *pbstrFilespec,
  [out] BOOL     *pbRecursive,
  [out] BSTR     *pbstrLsnString,
  [out] FILETIME *pftLastModifyTime
);

Parameter

[in] iDifferencedFile

Indexnummer der zu untersuchenden differenzierten Datei. Der Wert dieses Parameters ist eine ganze Zahl von 0 bis einschließlich n–1, wobei n die Gesamtzahl der unterschiedlichen Dateien ist, die einer bestimmten Komponente zugeordnet sind (und deren Unterkomponenten, wenn sie einen Komponentensatz definiert). Der Wert von n wird von IVssComponent::GetDifferencedFilesCount zurückgegeben.

[out] pbstrPath

Die Adresse einer vom Aufrufer zugeordneten Variablen, die eine Zeichenfolge empfängt, die den Pfad zu den unterschiedlichen Dateien enthält.

Benutzer dieser Methode müssen überprüfen, ob dieser Pfad mit einem umgekehrten Schrägstrich (\) endet.

[out] pbstrFilespec

Die Adresse einer vom Aufrufer zugeordneten Variablen, die eine Zeichenfolge empfängt, die die Dateispezifikation der unterschiedlichen Dateien enthält.

[out] pbRecursive

Die Adresse einer vom Aufrufer zugeordneten Variablen, die einen booleschen Wert empfängt, der angibt, ob die Dateispezifikation für die unterschiedlichen Dateien rekursiv interpretiert werden soll. Bei TRUE muss die gesamte Verzeichnishierarchie nach Dateien gesucht werden, die der Dateispezifikation pbstrFilespec entsprechen, um Dateien zu finden, die während inkrementeller oder differenzieller Sicherungen als differenzierte Dateien behandelt werden sollen. Bei FALSE muss nur das Stammverzeichnis durchsucht werden.

[out] pbstrLsnString

Für die zukünftige Verwendung reserviert.

[out] pftLastModifyTime

Die Adresse einer vom Aufrufer zugeordneten Variablen, die die Writer-Spezifikation des Zeitpunkts der letzten Änderung für die Differenzdateien empfängt, ausgedrückt als FILETIME-Struktur .

Rückgabewert

Im Folgenden finden Sie die gültigen Rückgabecodes für diese Methode.

Wert Bedeutung
S_OK
Der Attributwert wurde erfolgreich zurückgegeben.
E_INVALIDARG
Einer der Parameterwerte ist ungültig.
E_OUTOFMEMORY
Der Aufrufer verfügt über nicht genügend Arbeitsspeicher oder andere Systemressourcen.
VSS_E_OBJECT_NOT_FOUND
Es wurde keine differenzierte Datei gefunden, die dem angegebenen Index entspricht.
VSS_E_INVALID_XML_DOCUMENT
Das XML-Dokument ist ungültig. Überprüfen Sie das Ereignisprotokoll auf Details. Weitere Informationen finden Sie unter Ereignis- und Fehlerbehandlung unter VSS.

Hinweise

GetDifferencedFile kann von einem Anforderer oder einem Writer während sicherungs- oder wiederherstellungsvorgängen aufgerufen werden.

Wenn der Aufruf von GetDifferencedFile erfolgreich ist, ist der Aufrufer dafür verantwortlich, die in den Parametern pbstrPath und pbstrFilespec zurückgegebene Zeichenfolge durch Aufrufen der SysFreeString-Funktion freizugeben.

Da Writer unterschiedliche Dateien mit Aufrufen von IVssComponent::AddDifferencedFilesByLastModifyTime jederzeit vor der eigentlichen Sicherung von Dateien angeben können, in der Regel bei der Behandlung eines PostSnapshot-Ereignisses (CVssWriter::OnPostSnapshot) wird bei Sicherungen GetDifferencedFile nicht nützlich aufgerufen, bevor IVssBackupComponents::D oSnapshotSet erfolgreich zurückgegeben wurde.

Der von GetDifferencedFile zurückgegebene Zeitstempel gilt für alle Dateien, die dem zurückgegebenen Pfad (pbstrPath) und der Dateispezifikation (pbstrFilespec) entsprechen.

Wenn der von GetDifferencedFile (pftLastModifyTime) zurückgegebene Zeitstempelwert ungleich null ist, muss ein Anforderer diesen Wert unabhängig von seinen eigenen Datensätzen und Dateisysteminformationen berücksichtigen und ihn verwenden, um zu bestimmen, ob die differenzierte Datei in eine differenzielle oder inkrementelle Sicherung eingeschlossen werden soll.

Wenn der von GetDifferencedFile zurückgegebene Zeitstempel null ist, kann der Anforderer Dateisysteminformationen und seine eigenen Datensätze verwenden, um zu bestimmen, ob die unterschiedlichen Dateien in eine differenzielle oder inkrementelle Sicherung einbezogen werden sollen.

Unterschiedliche Dateien können eine der folgenden Sein:

Wenn Sie auf einen Dateisatz verweisen, der bereits Teil der Komponente ist, sollte die Kombination aus Pfad, Dateispezifikation und Rekursionflag (wszPath, wszFileSpec bzw . bRecursive), die beim Aufrufen von GetDifferencedFile verwendet wird, mit der eines Dateisatzes übereinstimmen, der bereits in der Komponente enthalten ist, oder einem seiner Unterkomponenten (wenn die Komponente einen Komponentensatz definiert).

Wenn GetDifferencedFile eine differenzierte neue Datei zurückgibt, sollte der Pfad dieser Datei (pbstrPath) mit einem Pfad übereinstimmen, der bereits in der Komponente oder einem ihrer Unterkomponenten enthalten ist (wenn die Komponente einen Komponentensatz definiert).

Darüber hinaus sollten die von GetDifferencedFile zurückgegebenen Dateien nicht bereits von einer Komponente oder einem Writer verwaltet werden.

Wenn eines dieser Kriterien verletzt wird, stellen sie einen Fehler des Schreibers dar und sollten gemeldet werden.

Es gibt keine Methode in der IVssComponent-Schnittstelle , die das Ändern oder Hinzufügen einer alternativen Speicherortzuordnung für neue Dateien ermöglicht, die von GetDifferencedFilesByLastModifyTime zurückgegeben werden. Wenn der neuen Datei eine alternative Speicherortzuordnung entspricht, wird dieser alternative Speicherort verwendet.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile vswriter.h (enthalten Vss.h, VsWriter.h)
Bibliothek VssApi.lib

Weitere Informationen

IVssComponent

IVssComponent::AddDifferencedFilesByLastModifyTime

IVssComponent::GetDifferencedFilesCount

Inkrementelle und differenzielle Sicherungen