![]() |
AW: Volume Shadow Copy Service
Push*
|
AW: Volume Shadow Copy Service
Hast du auch für den neuen Thread CoInitialize aufgerufen?
|
AW: Volume Shadow Copy Service
Danke generic.
Ein CoInitialize(nil) hat schon mal funktioniert ;-) |
AW: Volume Shadow Copy Service
Scheint soweit zu laufen.
Leider habe ich das Problem, dass in der Logdatei des VssThread HResult $80042302 angegeben wird, was dem Errorcode entspricht, den das VSS zurückgibt.
Code:
Hat da noch jemand eine Idee zu? Die Webseiten, in denen empfohlen wird einige Dienste zu starten habe ich bereits durch.
Starting snapshot creation for "D:"
Initializing IVssBackupComponents Interface ... ERROR : COM call "TVolumeShadowCopy.Initialize:VssBackupComponents.InitializeForBackup" failed. - Returned HRESULT = $80042302 - Error text: VSS: an unexpected error was encountered ERROR : TVolumeShadowCopy.Initialize:VssBackupComponents.InitializeForBackup (VSS: an unexpected error was encountered) Zielsysstem ist ein Windows Server 2012 R2. Schattenkopie erstellen über "vssadmin create shadow /for=D:" funktioniert fehlerfrei. |
AW: Volume Shadow Copy Service
Problem gelöst.
Letztere Fehlermeldung kam, weil ich das als Win32 compiliert hatte. Als Win64 läuft's. |
AW: Volume Shadow Copy Service
Sehr altes Thema, möchte aber gerne frage, ob das hier so richtig ist. Basis ist die VsToolkit-Demo.
Meine ganz einfache eigene Demo. Alles was ich nicht brauche ist raus. Es wird nur eine Datei kopiert (bei CopyFile). Muss man das pro Datei aufrufen oder kann ich bei CopyFile 10 Dateien kopieren?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var s: string; VolumeShadowCopy: TVolumeShadowCopy; VolList: TStringList; begin VolList := TStringList.Create; s := GetVolumeUniqueName(SetPathDelimiter('C:\')); if length(s) > 0 then VolList.Add(s); if VolList.Count > 0 then begin VolumeShadowCopy := TVolumeShadowCopy.Create; with VolumeShadowCopy do begin ListBox1.Items.Add('(Option: Create shadow copy set)'); // Initialize the VSS client Initialize(VSS_CTX_BACKUP); // Create the shadow copy set CreateSnapshotSet(VolList); CopyFile('C:\Windows\explorer.exe', 'C:\explorer.exe', false); // Execute BackupComplete, except in fast snapshot creation if VssContext and VSS_VOLSNAP_ATTR_DELAYED_POSTSNAPSHOT = 0 then begin // Complete the backup // Note that this will notify writers that the backup is successful! // (which means eventually log truncation) if VssContext and VSS_VOLSNAP_ATTR_NO_WRITERS = 0 then BackupComplete(True); DeleteAllSnapshots; end; ListBox1.Items.Add('Snapshot creation done.'); end; VolList.Free; end else ListBox1.Items.Add('Invalid volume'); end; |
AW: Volume Shadow Copy Service
Nein.
![]() Außer du nutzt Alternativen, wie Copy von IFolder oder so. Aber CopyFile mit diesem Pfad, wird doch auf die aktuelle Datei gehen und nicht auf den Snapshot, oder nicht? :gruebel: |
AW: Volume Shadow Copy Service
Verestehe nicht was hier an Copy verkehrt sein soll.
Falls du mich falsch verstanden hast: ich möchte mit einem CopyFile-Aufruf nicht 10 Dateien kopieren. Meine Frage war: darf ich an dieser Stelle überhaupt eine Datei kopieren und darf ich an dieser Stelle blöd ausgedrückt 10x hintereinander eine Datei kopieren oder muss ich für jede einzelne Datei alles was drumherum ist erzeugen? |
AW: Volume Shadow Copy Service
CopyFile kann nur eine Datei.
Mehrmals Copy für mehrere Dateien oder ein anderes "Copy", was mehrere Dateien / File-Masks kann. Und CopyFile wird hier auf die aktuellen Dateien gehen, denn es kennt den Snapshot ja garnicht. Also anderes Copy, welchem man den Snapshot mitgibt, oder einen Pfad verwenden, welcher für den Snapshot steht. Zitat:
![]() |
AW: Volume Shadow Copy Service
Siehe
Zitat:
Das heißt
Code:
?
C:\Verzeichnis1 == \\?\Volume{id}\Verzeichnis1
Ein simples CopyFile funktioniert so jedenfalls
Code:
CopyFile('\\?\Volume{id}\Windows\explorer.exe', 'explorer.exe', false);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz