Bonjour,
Je cherche une fonction en C qui fonctionne trés bien permettant de calculer
le nombre de cylindre / piste par secteur /secteur / 512 octets à partir d'une taille int64 donnée.
Il y a imgdisk mais c'est assez complexe
Merci beaucoup.
Bonjour,
Je cherche une fonction en C qui fonctionne trés bien permettant de calculer
le nombre de cylindre / piste par secteur /secteur / 512 octets à partir d'une taille int64 donnée.
Il y a imgdisk mais c'est assez complexe
Merci beaucoup.
Cela se résume à un changement de base numérique entre l'adressage linéaire par octet et l'adressage CHS+offset.
Tu commences par avoir l'offset en prenant le modulo 512 de ton adresse 64 bits, puis tu retranches, puis tu divises par 512, et tu refais pareil avec le nombre de secteurs, têtes et cylindres.
Toutefois, à part sur un disque utilisé en mode RAW (et donc sans partition / formatage usuel), cette formule de conversion n'a aucun sens. On peut effectivement convertir (avec un sens) d'un adressage de SECTEURS en mode LBA vers un mode CHS, et réciproquement. Mais convertir l'adresse d'une donnée dans un fichier vers un mode "CHS+offset" n'a de sens que si les secteurs contenant les données sont contigus ET que ton "fichier" commence bel et bien au secteur 0 (qui est habituellement le MBR, donc pas franchement exploitable...).
Aidez-moi :
DWORD size=100*1024*1024;
//size-=512;
DWORD s512=size%512;
DWORD nombresecteur=(size/512);
/*DWORD secteur=(nombresecteur%64)+1;
DWORD tete=((nombresecteur/(secteur))%64)+1;
DWORD cylindre=(nombresecteur)/(tete*secteur);*/
DWORD cylindre=nombresecteur/2048;
nombresecteur=cylindre;
DWORD tete=nombresecteur/32;
DWORD secteur=nombresecteur-(32*tete);
DWORD sizec=cylindre*tete*secteur*512;
printf("Cylindre %d Tete %d Secteur %d org size: %u newsize %u\n",cylindre,tete,secteur,size,sizec);
return 0;
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager