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 : 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;
}
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...

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,