Bonjour à tous,
Toujours avec les Shadow Copy sous WinXP SP3, j'ai une erreur de ce type quand je lance mon executable release ou debug:
Erreur d'application*: L'instruction à "0x7c9208b3" emploie l'adresse mémoire "0xfffffff8". La mémoire ne peut pas être "read".
Voici la portion de code qui semble poser problème (Logiquement, C:\ supporte les Sadow Copy):
Le code s'exécute jusqu'au wprintf(L"The volume don't support shadow copy, exiting...\n"); mais n'exécute pas le exit(1);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 void SaveAfile(WCHAR SourceFile[], WCHAR DestFile[], WCHAR BackupDocumentFileName[]) { VSS_PWSZ pSourceVolumeName = (VSS_PWSZ)CoTaskMemAlloc(4); wcscpy(pSourceVolumeName, SourceFile); if(wcslen(SourceFile) > 3) pSourceVolumeName[3] = 0; wprintf(L"File to save: %s\n", SourceFile); wprintf(L"Name of the volume: %s\n", pSourceVolumeName); BOOL pIsShadowCopySupported = TRUE; pBackupComponent->StartSnapshotSet(&pSnapShotSetId); pBackupComponent->IsVolumeSupported(GUID_NULL, pSourceVolumeName, &pIsShadowCopySupported); //Testing if the volume support Shadow Copy if(pIsShadowCopySupported == FALSE) { wprintf(L"The volume don't support shadow copy, exiting...\n"); exit(1); } } int _tmain(int argc, _TCHAR* argv[]) { WCHAR Source[_MAX_PATH]; WCHAR Destination[_MAX_PATH]; WCHAR BackupDocument[_MAX_PATH]; wcscpy(Source, argv[1]); wcscpy(Destination, argv[2]); wcscpy(BackupDocument, argv[3]); SaveAfile(Source, Destination, BackupDocument); return 0; }
Quand je lance un debug, j'ai l'erreur suivante en pop-up:
Exception non gérée à 0x00401555 dans VssSaveRestore1.exe*: 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0x00000000.
Il met aussi une petite flèche en face de wcscpy(Source, argv[1]); dans le main disant que c'eest la prochaine instruction à exécuter.
Il me précise aussi que pour argv[1] le pointeur est incorrect (<Ptr> incorrect) avec une erreur CXX0030: impossible d'évaluer l'expression.
J'ai aussi des choses dans l'observateur d'évènement quand je lance la version debug, mais pas à chaque fois...
J'ai une erreur de la par de VSS:
Erreur du service de cliché instantané des volumes : erreur lors de l'appel de la routine CoCreateInstance. hr = 0x80040154.
et de la part d'EventSystem:
Le système d'événements de COM+ a provoqué une violation d'accès à l'adresse 0x7C920193, lors d'une tentative d'accès à l'adresse 0x006E0063.
J'ai googler avec ces divers messages d'erreurs, mais sans succès. J'ai l'impression que je fout un bazar monstre en mémoire, mais je ne sais pas comment.
Si quelqu'un à une suggestion...
D'avance merci
Si quelqu'un à une idée sur le problème,
Partager