Lire données sur un support non formaté?

cs_Djedj Messages postés 17 Date d'inscription samedi 9 décembre 2000 Statut Membre Dernière intervention 6 mai 2007 - 6 mars 2007 à 15:49
cs_Djedj Messages postés 17 Date d'inscription samedi 9 décembre 2000 Statut Membre Dernière intervention 6 mai 2007 - 7 mars 2007 à 12:44
Bonjour,

Alors pour être bref : j'ai besoin de lire des données sur une carte SD... Mais problème : ces données ont été écrites "à la queue leu leu", octet par octet, par un microcontrolleur de type PIC. En l'absence d'un système de fichier FAT, la carte n'est donc évidemment pas reconnue par windows. Comment néanmoins pourrais-je accéder aux bits de ma carte SD depuis VB?

Merci d'avance!

9 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
6 mars 2007 à 19:04
Salut,


Déjà bon courage...


Je te propose une astuce assez stupide m'enfin... Je suppose que ton
PIC, tu peux lui dire d'écire à partir d'une certaine adresse sur ta
carte.


Donc si tu formate ta carte et que tu met un seul et unique énorme
fichier dedans (Que tu remplie de 0 par exemple ou d'un caractère
particulier).


Tu écris avec ton PIC au milieu de ta carte.


Tu récupère le fichier altérer sous Windows et tu retrouve la postion où le PIC a écrit.


A tes risques et périls... Je n'y connais rien en formatage.
0
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
6 mars 2007 à 19:20
Violent Ken



Salut, je crois que c'est tout simplement impossible à réaliser.
La méthode pour lire/écrire dans un disque, c'est CreateFile, ReadFile, WriteFile et SetFilePointer. Et comme le handle récupéré par CreateFile est -1 quand le disque n'est pas formaté (je suis preque certain de çà)... c'est dead.

@+
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
6 mars 2007 à 19:28
La solution serait d'accèder à la carte, non pas comme un disque amovible comme le voit Windows mais en direct comme le fait le PIC.
Je sais pas si c'est possible, mais si ça l'est, il faut surrement passer par la création d'un driver spécifique, et donc pas en VB

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
violent_ken Messages postés 1812 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 26 octobre 2010 2
6 mars 2007 à 19:31
Violent Ken



Oui voilà, il faudrait concevoir un driver, parce que sinon en VB on n'a que les APIs Windows pour travailler sur le disque.
Mais aussi puissantes soient-elles, c'est pas jouable de lire un disque non formaté.

@+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Djedj Messages postés 17 Date d'inscription samedi 9 décembre 2000 Statut Membre Dernière intervention 6 mai 2007
6 mars 2007 à 20:20
Pourtant des utilitaires de récupération comme smart recovery peuvent récupérer des données sur des partitions corrompues . Pr rt15, c'est une idée, pas très professionnelle malheureusement, mais c'est peut-être une solution si je veux eviter de me programmer un PIC pour qu'il gère le FAT16... Ce n'est pas tellement une surprise, mais j'esperais quand même qu'il existait des API windows me permettant de lire des bits sur un support non formaté!
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
6 mars 2007 à 20:36
Les utilitaires de récupérations n'utilisent en général pas les api windows, ils travaillent en mode driver en court-circuitant les fonctions de Windows directement en adressant physiquement le disque à travers le noyau.

Certains mêmes (comme EasyRecovery pour le rcup, ou la suite Blancco pour l'effacement par exmple), court-circuite même totalement windows (kernel, noyau, ...) et travaille directement avec les fonctions bas niveau du bios.

Déjà que la programmation de drivers n'est pas à la portée de tous, ce type de programmation est réservé à une part restreinte de l'élite de la programmation.

Quant aux apis pour lire sur des supports non formater, je vais prendre une image pour t'expliquer. Windows ne sert que lire ou écrire sur les pages d'un livre dûment fabriqué (avec table des matières, pages numérotés, ...). Ce que tu veux faire, toi, revient à lire ou ecrir directement sur le rouleau de papier (le gros rouleaux de plusieurs tonnes, 6 en général) qui sort de l'usine à papier et qui servira plus tard, bien plus tard, à fabriquer le livre pour Windows.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
6 mars 2007 à 20:41
debug (En invite DOS, sur tous les PC) permet de récupérer des secteurs
de boot (fonctions read et write). Mais je sais pas à quel point il
travail bas niveau et donc s'il peu bosser sur du non formaté (Y a
différents niveau de formatage tout ça tout ça en plus). Il travail sur
les secteurs apparement.


Si tu parviens à faire un load, de ta carte SD, tu pourras faire un write dans un fichier de ton dur.


ATTENTION : Un write mal ajuster sur ton dur peux faire très mal. Dans
ton cas tu n'as pas besoin d'utiliser d'arguments avec ta commande
write (Pour l'utiliser de façon sûre, il faut faire n nom fichier,
ajuster cx et bx, puis utiliser write sans argument.


Par contre faudrait essayer de travailler les arguments du load.

Un manuel de debug.
0
42wawa42 Messages postés 143 Date d'inscription dimanche 28 septembre 2003 Statut Membre Dernière intervention 6 septembre 2011
6 mars 2007 à 21:33
Si tu as écrie le soft "write" pour le PIC, tu dois être capable a écrire le soft "read" très simple non.... Beaucoup trop de ligne écrite pour rien dire. Mais le développement Casy sur le rouleau de papier est très proche de la réalité. 
0
cs_Djedj Messages postés 17 Date d'inscription samedi 9 décembre 2000 Statut Membre Dernière intervention 6 mai 2007
7 mars 2007 à 12:44
Merci à tous pour vos réponses! Hélas, ça m'a l'air encore plus compliqué de forcer VB à lire du non formaté que de forcer le PIC à écrire sur du FAT, et le temps me manque... je vais commencer par essayer la solution de rt15 (fichier vide, dans lequel on écrit séquentiellement), et éventuellement je programmerai les drivers PIC pour gérer la FAT16.
0
Rejoignez-nous