Accéder directement à un disque sous windows 95/98

Accéder directement à un disque sous windows 95/98 - Programmation

Marsh Posté le 03-10-2001 à 21:07:36    

J'aimerais savoir comment on pourait accéder directement à un disque sans passer par le système de fichier (histoire d'aller lire à la main les octets qui sont dessus) j'ai farfouiller un peu dans l'API windows mais elle est pas très claire sur le sujet

Reply

Marsh Posté le 03-10-2001 à 21:07:36   

Reply

Marsh Posté le 03-10-2001 à 21:24:42    

asm?

Reply

Marsh Posté le 03-10-2001 à 21:29:32    

Oui certe c'est une solution mais je suis pas hyper motivé pour me lancer dans l'assembleur 32 bit tt de suite, je garde ça comme dernier recour :)
 
D'autres idées?

Reply

Marsh Posté le 04-10-2001 à 09:01:52    

a mon avis c'est quasi impossible sans les API, que ce soit en asm ou autre.
sauf petetre dans un programme DOS ...
mais bon
sinon j'ai trouve ca :
http://support.microsoft.com/suppo [...] 0/0/27.asp


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 04-10-2001 à 11:12:21    

La solution que propose HelloWorld ne marche que sous NT et ses décendants.
Sous 9x, une solution est de faire une dll 16bit pour pouvoir utiliser la compatibilité DOS, et donc de pouvoir lire le disque en utilisant le bios.  
Ca déja été fait pour un freeware dont je ne me rappelle plus le nom, il y a vait aussi les sources

Reply

Marsh Posté le 04-10-2001 à 17:03:50    

mouai en fin si c pour utiliser le bios autant le faire en assembleur ça sera plus directe que de faire une dll...

Reply

Marsh Posté le 04-10-2001 à 17:27:16    

Tu peux faire une dll en assembleur, en C, en VB... ça a aucun rapport.
Si tu accedes directement au disque ( quelque soit le langage )dans un programmes en 32bits tu va te faire jeter par windows ( "Ce programme à effectué une opération incorrecte.....". C'est pour ça qu'on fait une dll 16bits, pour effectuer certaines opérations interdites en 32bit, mais par contre tu peux avoir le reste de ton programme en 32bits, mode qui offre beaucoup d'aventages ( memoires, rapidité....).

Reply

Marsh Posté le 04-10-2001 à 17:39:03    

lis la doc sur les fonctions dos (en C): seek et autres !

Reply

Marsh Posté le 04-10-2001 à 19:01:26    

Il existe des programmes DOS bien écrits qui fonctionnent sous Win 9x, Nt 2000. Ils n'utilisent pas de dll pour accéder au disque mais l'interruption 21 du DOS. NT émule très bien l'interruption 21.
Il doit donc être possible de lire des octets sur le disque dans un progr 32 bits en utilisant INT 21. (pour écrire celà dépend de la fonction). Je peux pas donner plus de détails car je n'ai pas ma doc ici.
A+

Reply

Marsh Posté le 05-10-2001 à 08:52:52    

en 32bits il faut passer par des pilotes de périphériques, et passer par l'api DeviceIocontrol, il y avait un excellent article sur le sujet dans la mag "Programmez" n14 d'octobre 1999

Reply

Marsh Posté le 05-10-2001 à 08:52:52   

Reply

Marsh Posté le 25-06-2003 à 14:06:29    

Putain deux ans. Presque deux ans pour trouver cete info!
 
Pour ceux que ça intéresse:
 
Enfin


---------------
Le Tyran
Reply

Marsh Posté le 25-06-2003 à 14:08:02    

on fait remonter les cadavres.... mais au moins c'est pas pour rien. Good Job LetoII

Reply

Marsh Posté le 25-06-2003 à 14:08:59    

RiderCrazy a écrit :

on fait remonter les cadavres.... mais au moins c'est pas pour rien. Good Job LetoII


 
Et en plus je cherchais totalement autre chose  [:ddr555]


Message édité par LetoII le 25-06-2003 à 14:09:07

---------------
Le Tyran
Reply

Marsh Posté le 25-06-2003 à 14:10:21    

LetoII a écrit :


Et en plus je cherchais totalement autre chose  [:ddr555]

[:xp1700]

Reply

Marsh Posté le 25-06-2003 à 22:38:01    

Ouah... Quelle mémoire...  
 
Comme quoi, faut pas désespérer :D  

Reply

Marsh Posté le 26-06-2003 à 13:55:51    

Tu es sûr que ça marche ?
Tu as testé ?
Car il me semble que ça ne marche pas pour les disque durs ...
http://support.microsoft.com/defau [...] -us;137176


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 26-06-2003 à 13:57:20    

HelloWorld a écrit :

Tu es sûr que ça marche ?
Tu as testé ?
Car il me semble que ça ne marche pas pour les disque durs ...
http://support.microsoft.com/defau [...] -us;137176


 
Attend ma fallue deux pour trouver, je vais pas en plus tester [:ddr555]


---------------
Le Tyran
Reply

Marsh Posté le 26-06-2003 à 14:02:19    

Ca serait vraiment cool que ça marche. Moi aussi j'ai pas mal gratté de ce côté, et jamais trouvé autre chose que le thunking avec une dll 16 bits.
Et j'y suis jamais arrivé (pas trop essayé non plus) vu que j'ai pas l'outil qui permet le thunking (une espèce de générateur de code assembleur je crois).


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 26-06-2003 à 14:07:33    

HelloWorld a écrit :

Ca serait vraiment cool que ça marche. Moi aussi j'ai pas mal gratté de ce côté, et jamais trouvé autre chose que le thunking avec une dll 16 bits.
Et j'y suis jamais arrivé (pas trop essayé non plus) vu que j'ai pas l'outil qui permet le thunking (une espèce de générateur de code assembleur je crois).


 
Ben d'après ce qu'il y a sur ton lien ca marche pas. Je pense qu'il faudrait cherché du côté des vxd mais j'ai pas trop trouver de doc dessus.
Si non pour info ce que je voulais ct permettre à windows de lire autre chose que de la FAT comme sys de fichier (en particulier les sytème de ficheir Mac  :whistle: ). C pour ça que je cherchait des info sur tout ça.


---------------
Le Tyran
Reply

Marsh Posté le 26-06-2003 à 17:15:54    

Ben faut coder un driver FS alors (t'as des exemples pour ext2fs).
Moi aussi ça m'intéresse, un peu dans cet esprit, mais en moins ambitieux (simplement obtenir les infos des partoches).
Je bosse sous NT, donc c'est simple.
Je comptais (quand j'allais me remettre à ce prog) regarder comment Partition Magic fait ça sous Win9x ...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 26-06-2003 à 17:50:05    

Merci pour le tuyau, je jetterai un coup d'oeuil.


---------------
Le Tyran
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed