bonjour,
je souhaite écrire un programme de lecture de secteurs disque : qqn aurait-il un idée ? (prog très simple)
le but est d'expliquer la FAT et de montrer la complexité prise en charge par l'OS et le SGF
Merci
bonjour,
je souhaite écrire un programme de lecture de secteurs disque : qqn aurait-il un idée ? (prog très simple)
le but est d'expliquer la FAT et de montrer la complexité prise en charge par l'OS et le SGF
Merci
oui, sous quel O/S !?Envoyé par patdez
il faut ouvrir un fichier comme suit :Envoyé par patdez
avec DeviceLogicalName = "\\\\.\\x" ou x est l'unité logique (e.g. "A:" "C:" etc... attention pas de "\\" à la fin).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 hDevice = CreateFile(DeviceLogicalName, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
Ensuite vous obtiendrez la géométrie du disque par un appel à DeviceIoControl. Faite une recherche dans le MSDN sur IOCTL_DISK_GET_DRIVE_GEOMETRY
Enfin vous lirez les donnée comme dans un fichier classique a l'aide de la fonction ReadFile qui vous retournera autant d'octet que demandé, selon la géométrie du disque. C'est à dire dans l'ordre, d'abord secteur après secteur, ensuite on passe à la tête suivante, et quand on a plus de tête on passe enfin au cylindre suivant.
Si sur floppy, cet ordre de lecture / écriture est respectée... je vous le confirme. Sur disque dur, j'ai déjà eu des déboires... Si vous avez des info complémentaires... faites m'en part, ca m'intéresse.
Bonjour !
Pour ton édification personnelle, sache que le multipostage (http://www.developpez.net/forums/viewtopic.php?t=257161) est en général mal vu sur les forums de Developpez.com. J'en sais quelque chose car je me suis fait remonter les bretelles à mes débuts
Mais bon, sur le forum Pascal, tu as une réponse orientée DOS pur et, sur ce forum, une réponse orientée Windows NT.
S'il s'agit d'expliquer le fonctionnement de la FAT à des élèves, je te conseillerais plutôt la vision DOS pur.
(si tu es du même avis que moi, tu devrais clôturer ce post-ci).
Si tu crées un programme de démonstration DOS, il vaudra mieux le faire tourner soit sous DOS pur, soit sous Windows 3.x, soit enfin sous Windows 9x.
désolé, je suis bien conscient de la gêne que cela peut occasionner
j'avais posté mon 1er msg en C#, mais ce langage ne permet pas d'accéder à des fonctions 'basses'. c'est pourquoi je me suis orienté vers les langages 'anciens'
toutes mes excuses... et merci pour la qualité et la richesse de ce site...
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