Forum: Win32/Win64 API (native code)
Delphi
by HeikoAdams,
22. Feb 2010
Also was ich bis jetzt definitiv sagen kann, ist, dass man (unter Vista/7) beim Start der Anwendung CoInitSecurity aufrufen muss. Ansonsten gibt es einen Haufen "Zugriff verweigert" Einträge im Ereignissprotokoll von Windows.
Forum: Win32/Win64 API (native code)
Delphi
by HeikoAdams,
15. Feb 2010
Das Problem dürfte wohl eher bei Windows liegen:
Für den Einsatz VSCS benötigt man Backup- oder Admin-Rechte. Zumindest letztere hat eine Anwendung ja seit Vista nicht mehr per se, selbst wenn Sie von einem Admin gestartet wird.
Geb einfach mal als Admin in der cmd "vssadmin list writer" ein, dann siehst Du, was ich meine.
Forum: Win32/Win64 API (native code)
Delphi
by HeikoAdams,
15. Feb 2010
Das Zauberwort scheint CoInitializeSecurity zu heißen. Näheres aber erst Mittwoch. Morgen habe ich Urlaub :twisted:
Forum: Win32/Win64 API (native code)
Delphi
by HeikoAdams,
15. Feb 2010
Ich bin mir noch nicht sicher, ob das etwas mit dem Ausgangsproblem zu tun hat, aber der Aufruf von
OleCheck(BackupComps.GatherWriterMetadata(Async));
in der GetBackupComponentsAndInitialize Prozedur der VssUtils.pas erzeugt einen "Zugriff verweigert" Eintrag im Ereignisprotokoll von Windows, obwohl ich Admin-Rechte habe. :wiejetzt: Evtl. ist mein ursprüngliches Problem nur ein Folgefehler...
Forum: Win32/Win64 API (native code)
Delphi
by HeikoAdams,
15. Feb 2010
Naja, man kann sich die VSSApi, die VSSUtils per Copy&Paste "runterladen" und die Testroutine hab ich ja auch schon gepostet
Forum: Win32/Win64 API (native code)
Delphi
by HeikoAdams,
15. Feb 2010
AddToSnapshotSet liefert als Ergebnis -2147212529 zurück
Der Link im ersten Post führt zu einer Demo ;-)
Forum: Win32/Win64 API (native code)
Delphi
by HeikoAdams,
15. Feb 2010
Mein Problem, das
OleCheck(BackupComps.AddToSnapshotSet(Drive,GUID_NULL,SnapGUID));
immer einen Integer overflow verursacht, ist leider nicht dadurch behoben, das ich den Aufruf von CreateVssBackupComponents bzw. CreateVssBackupComponentsInternal ändere. Das IVssBackupComponents wird auch korrekt initialisiert, da die Funktionsaufrufe davor klappen.
Forum: Win32/Win64 API (native code)
Delphi
by HeikoAdams,
15. Feb 2010
Keine Ahnung, nur finde ich es sicherer, über den Namen anstatt des Indexes zu gehen. Ändert sich der Index aus irgendeinem Grund, hätte ich ein Problem. Gehe ich über den Namen, kann mir der Index schnuppe sein.
Ändert M$ jedoch den exportierten Namen einer Funktion, darf man wohl davon ausgehen, das der alte Name zumindest als Dummy auch weiterhin exportiert wird. Ansonsten wäre es mit der...
Forum: Win32/Win64 API (native code)
Delphi
by HeikoAdams,
15. Feb 2010
Darum ja auch das dynamische Linken in der VssUtilities.pas mittels SafeLoadLibrary und GetProcAddress 8-)
Forum: Win32/Win64 API (native code)
Delphi
by HeikoAdams,
15. Feb 2010
Ich habe mal die VSS-Dateien des Delphi Magazins, die ich verwende angehängt. Das einzige, was ich geändert habe, ist die Umstellung von static auf dynamic linking.
Folgende Routine dürfte ergo unter Vista/7 nicht durchlaufen
Const
SYSTEM_WRITER_NAME = 'System Writer';
SYSTEM_FILES_COMPONENT_NAME = 'System Files';
Var
InstanceGUID : TGUID;
Forum: Win32/Win64 API (native code)
Delphi
by HeikoAdams,
15. Feb 2010
Hallo,
gibt es hier jemanden, der den Volume Shadow Copy Service mit Delphi nutzt? :gruebel:
Die übersetzten Header-Dateien, die das Delphi Magazine veröffentlicht hat, funktionieren leider nicht mehr unter Vista oder neuer. Beim Aufruf von "AddToSnapshotSet" gibt es jedes mal einen Integer-Overflow. Google war bei der Suche nach einer Lösung leider auch nicht hilfreich.
Viele Grüße
...