La mémoire ne peut pas être "read"
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):
Code:
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;
} |
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);
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...:aie::aie:
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,