J'ai simplifié.... juste l'essentiel. Exemple pour ma clé USB avec ouverture au niveau physique
HANDLE cle=CreateFile("\\\\.\\PHYSICALDRIVE3",GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL |FILE_FLAG_NO_BUFFERING,NULL);
if (cle== INVALID_HANDLE_VALUE) { traitement erreur; return false;}
__int64 offset=160071660*512; //secteur 160071660
/*je passe le tout à une structure LARGE_INTEGER*/
LARGE_INTEGER li;
.....
.....
SetFilePointer(cle,li.LowPart,&li.HighPart,FILE_BEGIN); //je teste si erreur ou pas
....
....
/*buffer octet de taille 512 */
if (!WriteFile(cle,octet,512,&BytesEcrits,NULL))
{
/*j'obtiens code erreur 5*/
return false;
}
....
....
....
return true;
J'ai simplifié.... juste l'essentiel. Exemple pour ma clé USB avec ouverture au niveau physique
HANDLE cle=CreateFile("\\\\.\\PHYSICALDRIVE3",GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL |FILE_FLAG_NO_BUFFERING,NULL);
if (cle== INVALID_HANDLE_VALUE) { traitement erreur; return false;}
__int64 offset=160071660*512; //secteur 160071660
/*je passe le tout à une structure LARGE_INTEGER*/
LARGE_INTEGER li;
.....
.....
SetFilePointer(cle,li.LowPart,&li.HighPart,FILE_BEGIN); //je teste si erreur ou pas
....
....
/*buffer octet de taille 512 */
if (!WriteFile(cle,octet,512,&BytesEcrits,NULL))
{
/*j'obtiens code erreur 5*/
return false;
}
....
....
....
return true;