J'ai un vieux programme DOS qui fait des opérations bas niveau sur des
disquettes (formatage, lecture/écriture de secteurs) en passant par
l'interruption 13h, ce programme ne marche pas sous Windows 2000, donc
j'aimerai le réécrire en Win32 natif.
En faisant le tour dans la MSDN j'ai vu des solutions qui redirigent les
appels vers une DLL 16bit faisant des appels DPMI... yuck :(
Déja je n'ai pas la moindre idée de comment je peux faire pour compiler
une DLL 16 bits... mais bon bref ceci mis à part ca me semble pour le
moins dégueulasse comme méthode.
Donc y'a t'il une façon propre de faire en sorte de pouvoir accéder au
lecteur de disquette sans faire ce genre de truc ?
En l'occurence moi j'ai besoin de formater une disquette 3" ou 5.25" en
42 pistes de 16 secteurs de 256 octets.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Vincent Burel
"Mickael Pointier" wrote in message news:bo8bsd$glo$
Salut.
J'ai un vieux programme DOS qui fait des opérations bas niveau sur des disquettes (formatage, lecture/écriture de secteurs) en passant par l'interruption 13h, ce programme ne marche pas sous Windows 2000, donc j'aimerai le réécrire en Win32 natif.
En faisant le tour dans la MSDN j'ai vu des solutions qui redirigent les appels vers une DLL 16bit faisant des appels DPMI... yuck :(
Déja je n'ai pas la moindre idée de comment je peux faire pour compiler une DLL 16 bits... mais bon bref ceci mis à part ca me semble pour le moins dégueulasse comme méthode.
Donc y'a t'il une façon propre de faire en sorte de pouvoir accéder au lecteur de disquette sans faire ce genre de truc ?
En l'occurence moi j'ai besoin de formater une disquette 3" ou 5.25" en 42 pistes de 16 secteurs de 256 octets.
Si quelqu'un à une idée...
oui, une idée : DeviceIoControl
VB
"Mickael Pointier" <mpointie@eden-studios.fr> wrote in message
news:bo8bsd$glo$1@reader1.imaginet.fr...
Salut.
J'ai un vieux programme DOS qui fait des opérations bas niveau sur des
disquettes (formatage, lecture/écriture de secteurs) en passant par
l'interruption 13h, ce programme ne marche pas sous Windows 2000, donc
j'aimerai le réécrire en Win32 natif.
En faisant le tour dans la MSDN j'ai vu des solutions qui redirigent les
appels vers une DLL 16bit faisant des appels DPMI... yuck :(
Déja je n'ai pas la moindre idée de comment je peux faire pour compiler
une DLL 16 bits... mais bon bref ceci mis à part ca me semble pour le
moins dégueulasse comme méthode.
Donc y'a t'il une façon propre de faire en sorte de pouvoir accéder au
lecteur de disquette sans faire ce genre de truc ?
En l'occurence moi j'ai besoin de formater une disquette 3" ou 5.25" en
42 pistes de 16 secteurs de 256 octets.
"Mickael Pointier" wrote in message news:bo8bsd$glo$
Salut.
J'ai un vieux programme DOS qui fait des opérations bas niveau sur des disquettes (formatage, lecture/écriture de secteurs) en passant par l'interruption 13h, ce programme ne marche pas sous Windows 2000, donc j'aimerai le réécrire en Win32 natif.
En faisant le tour dans la MSDN j'ai vu des solutions qui redirigent les appels vers une DLL 16bit faisant des appels DPMI... yuck :(
Déja je n'ai pas la moindre idée de comment je peux faire pour compiler une DLL 16 bits... mais bon bref ceci mis à part ca me semble pour le moins dégueulasse comme méthode.
Donc y'a t'il une façon propre de faire en sorte de pouvoir accéder au lecteur de disquette sans faire ce genre de truc ?
En l'occurence moi j'ai besoin de formater une disquette 3" ou 5.25" en 42 pistes de 16 secteurs de 256 octets.
Si quelqu'un à une idée...
oui, une idée : DeviceIoControl
VB
Mickael Pointier
>> Salut.
J'ai un vieux programme DOS qui fait des opérations bas niveau sur des disquettes (formatage, lecture/écriture de secteurs) en passant par l'interruption 13h, ce programme ne marche pas sous Windows 2000, donc j'aimerai le réécrire en Win32 natif.
En faisant le tour dans la MSDN j'ai vu des solutions qui redirigent les appels vers une DLL 16bit faisant des appels DPMI... yuck :(
Déja je n'ai pas la moindre idée de comment je peux faire pour compiler une DLL 16 bits... mais bon bref ceci mis à part ca me semble pour le moins dégueulasse comme méthode.
Donc y'a t'il une façon propre de faire en sorte de pouvoir accéder au lecteur de disquette sans faire ce genre de truc ?
En l'occurence moi j'ai besoin de formater une disquette 3" ou 5.25" en 42 pistes de 16 secteurs de 256 octets.
Si quelqu'un à une idée...
oui, une idée : DeviceIoControl
Okay, donc en utilisant le paramètre IOCTL_DISK_GET_DRIVE_GEOMETRY je récupère le format de la disquette, et avec IOCTL_DISK_FORMAT_TRACKS, je formate la disquette.
Problème est que si je regarde l'énumération MEDIA_TYPE, les seules tailles disponibles sont 128, 512 et 1024 bytes/secteur, il n'y a pas 256.
Ensuite pour écrire, a part "IOCTL_DISK_CREATE_DISK" j'ai rien vu qui permette d'écrire piste par piste.
Arg, pas simple à utiliser tout ca, faut en mettre des tartines de paramètres.
Mike
>> Salut.
J'ai un vieux programme DOS qui fait des opérations bas niveau sur
des disquettes (formatage, lecture/écriture de secteurs) en passant
par l'interruption 13h, ce programme ne marche pas sous Windows
2000, donc j'aimerai le réécrire en Win32 natif.
En faisant le tour dans la MSDN j'ai vu des solutions qui redirigent
les appels vers une DLL 16bit faisant des appels DPMI... yuck :(
Déja je n'ai pas la moindre idée de comment je peux faire pour
compiler une DLL 16 bits... mais bon bref ceci mis à part ca me
semble pour le moins dégueulasse comme méthode.
Donc y'a t'il une façon propre de faire en sorte de pouvoir accéder
au lecteur de disquette sans faire ce genre de truc ?
En l'occurence moi j'ai besoin de formater une disquette 3" ou 5.25"
en 42 pistes de 16 secteurs de 256 octets.
Si quelqu'un à une idée...
oui, une idée :
DeviceIoControl
Okay, donc en utilisant le paramètre IOCTL_DISK_GET_DRIVE_GEOMETRY je
récupère le format de la disquette, et avec IOCTL_DISK_FORMAT_TRACKS, je
formate la disquette.
Problème est que si je regarde l'énumération MEDIA_TYPE, les seules
tailles disponibles sont 128, 512 et 1024 bytes/secteur, il n'y a pas
256.
Ensuite pour écrire, a part "IOCTL_DISK_CREATE_DISK" j'ai rien vu qui
permette d'écrire piste par piste.
Arg, pas simple à utiliser tout ca, faut en mettre des tartines de
paramètres.
J'ai un vieux programme DOS qui fait des opérations bas niveau sur des disquettes (formatage, lecture/écriture de secteurs) en passant par l'interruption 13h, ce programme ne marche pas sous Windows 2000, donc j'aimerai le réécrire en Win32 natif.
En faisant le tour dans la MSDN j'ai vu des solutions qui redirigent les appels vers une DLL 16bit faisant des appels DPMI... yuck :(
Déja je n'ai pas la moindre idée de comment je peux faire pour compiler une DLL 16 bits... mais bon bref ceci mis à part ca me semble pour le moins dégueulasse comme méthode.
Donc y'a t'il une façon propre de faire en sorte de pouvoir accéder au lecteur de disquette sans faire ce genre de truc ?
En l'occurence moi j'ai besoin de formater une disquette 3" ou 5.25" en 42 pistes de 16 secteurs de 256 octets.
Si quelqu'un à une idée...
oui, une idée : DeviceIoControl
Okay, donc en utilisant le paramètre IOCTL_DISK_GET_DRIVE_GEOMETRY je récupère le format de la disquette, et avec IOCTL_DISK_FORMAT_TRACKS, je formate la disquette.
Problème est que si je regarde l'énumération MEDIA_TYPE, les seules tailles disponibles sont 128, 512 et 1024 bytes/secteur, il n'y a pas 256.
Ensuite pour écrire, a part "IOCTL_DISK_CREATE_DISK" j'ai rien vu qui permette d'écrire piste par piste.
Arg, pas simple à utiliser tout ca, faut en mettre des tartines de paramètres.
Mike
Vincent Burel
"Mickael Pointier" wrote in message news:bo8ibv$hqb$
>> Salut. >> >> J'ai un vieux programme DOS qui fait des opérations bas niveau sur >> des disquettes (formatage, lecture/écriture de secteurs) en passant >> par l'interruption 13h, ce programme ne marche pas sous Windows >> 2000, donc j'aimerai le réécrire en Win32 natif. >> >> En faisant le tour dans la MSDN j'ai vu des solutions qui redirigent >> les appels vers une DLL 16bit faisant des appels DPMI... yuck :( >> >> Déja je n'ai pas la moindre idée de comment je peux faire pour >> compiler une DLL 16 bits... mais bon bref ceci mis à part ca me >> semble pour le moins dégueulasse comme méthode. >> >> Donc y'a t'il une façon propre de faire en sorte de pouvoir accéder >> au lecteur de disquette sans faire ce genre de truc ? >> >> En l'occurence moi j'ai besoin de formater une disquette 3" ou 5.25" >> en 42 pistes de 16 secteurs de 256 octets. >> >> Si quelqu'un à une idée... > > oui, une idée : > DeviceIoControl
Okay, donc en utilisant le paramètre IOCTL_DISK_GET_DRIVE_GEOMETRY je récupère le format de la disquette, et avec IOCTL_DISK_FORMAT_TRACKS, je formate la disquette.
Problème est que si je regarde l'énumération MEDIA_TYPE, les seules tailles disponibles sont 128, 512 et 1024 bytes/secteur, il n'y a pas 256.
Ensuite pour écrire, a part "IOCTL_DISK_CREATE_DISK" j'ai rien vu qui permette d'écrire piste par piste.
Arg, pas simple à utiliser tout ca, faut en mettre des tartines de paramètres.
ben y'a IOCTL_DISK_FORMAT_TRACKS pour formater une piste.
VB
"Mickael Pointier" <mpointie@eden-studios.fr> wrote in message
news:bo8ibv$hqb$1@reader1.imaginet.fr...
>> Salut.
>>
>> J'ai un vieux programme DOS qui fait des opérations bas niveau sur
>> des disquettes (formatage, lecture/écriture de secteurs) en passant
>> par l'interruption 13h, ce programme ne marche pas sous Windows
>> 2000, donc j'aimerai le réécrire en Win32 natif.
>>
>> En faisant le tour dans la MSDN j'ai vu des solutions qui redirigent
>> les appels vers une DLL 16bit faisant des appels DPMI... yuck :(
>>
>> Déja je n'ai pas la moindre idée de comment je peux faire pour
>> compiler une DLL 16 bits... mais bon bref ceci mis à part ca me
>> semble pour le moins dégueulasse comme méthode.
>>
>> Donc y'a t'il une façon propre de faire en sorte de pouvoir accéder
>> au lecteur de disquette sans faire ce genre de truc ?
>>
>> En l'occurence moi j'ai besoin de formater une disquette 3" ou 5.25"
>> en 42 pistes de 16 secteurs de 256 octets.
>>
>> Si quelqu'un à une idée...
>
> oui, une idée :
> DeviceIoControl
Okay, donc en utilisant le paramètre IOCTL_DISK_GET_DRIVE_GEOMETRY je
récupère le format de la disquette, et avec IOCTL_DISK_FORMAT_TRACKS, je
formate la disquette.
Problème est que si je regarde l'énumération MEDIA_TYPE, les seules
tailles disponibles sont 128, 512 et 1024 bytes/secteur, il n'y a pas
256.
Ensuite pour écrire, a part "IOCTL_DISK_CREATE_DISK" j'ai rien vu qui
permette d'écrire piste par piste.
Arg, pas simple à utiliser tout ca, faut en mettre des tartines de
paramètres.
ben y'a IOCTL_DISK_FORMAT_TRACKS pour formater une piste.
"Mickael Pointier" wrote in message news:bo8ibv$hqb$
>> Salut. >> >> J'ai un vieux programme DOS qui fait des opérations bas niveau sur >> des disquettes (formatage, lecture/écriture de secteurs) en passant >> par l'interruption 13h, ce programme ne marche pas sous Windows >> 2000, donc j'aimerai le réécrire en Win32 natif. >> >> En faisant le tour dans la MSDN j'ai vu des solutions qui redirigent >> les appels vers une DLL 16bit faisant des appels DPMI... yuck :( >> >> Déja je n'ai pas la moindre idée de comment je peux faire pour >> compiler une DLL 16 bits... mais bon bref ceci mis à part ca me >> semble pour le moins dégueulasse comme méthode. >> >> Donc y'a t'il une façon propre de faire en sorte de pouvoir accéder >> au lecteur de disquette sans faire ce genre de truc ? >> >> En l'occurence moi j'ai besoin de formater une disquette 3" ou 5.25" >> en 42 pistes de 16 secteurs de 256 octets. >> >> Si quelqu'un à une idée... > > oui, une idée : > DeviceIoControl
Okay, donc en utilisant le paramètre IOCTL_DISK_GET_DRIVE_GEOMETRY je récupère le format de la disquette, et avec IOCTL_DISK_FORMAT_TRACKS, je formate la disquette.
Problème est que si je regarde l'énumération MEDIA_TYPE, les seules tailles disponibles sont 128, 512 et 1024 bytes/secteur, il n'y a pas 256.
Ensuite pour écrire, a part "IOCTL_DISK_CREATE_DISK" j'ai rien vu qui permette d'écrire piste par piste.
Arg, pas simple à utiliser tout ca, faut en mettre des tartines de paramètres.
ben y'a IOCTL_DISK_FORMAT_TRACKS pour formater une piste.
VB
Mickael Pointier
>> [...] récupère le format de la disquette, et avec IOCTL_DISK_FORMAT_TRACKS, je formate la disquette. [...]
ben y'a IOCTL_DISK_FORMAT_TRACKS pour formater une piste.
Oui oui, c'est bien ce que j'avais écrit :) Ou bien tu voulais dire autre chose ?
Mike
>> [...]
récupère le format de la disquette, et avec
IOCTL_DISK_FORMAT_TRACKS, je formate la disquette.
[...]
ben y'a IOCTL_DISK_FORMAT_TRACKS pour formater une piste.
Oui oui, c'est bien ce que j'avais écrit :)
Ou bien tu voulais dire autre chose ?
>> [...] récupère le format de la disquette, et avec IOCTL_DISK_FORMAT_TRACKS, je formate la disquette. [...]
ben y'a IOCTL_DISK_FORMAT_TRACKS pour formater une piste.
Oui oui, c'est bien ce que j'avais écrit :) Ou bien tu voulais dire autre chose ?
Mike
Vincent Burel
"Mickael Pointier" wrote in message news:boacch$p2n$
>> [...] >> récupère le format de la disquette, et avec >> IOCTL_DISK_FORMAT_TRACKS, je formate la disquette. >> [...] > > ben y'a IOCTL_DISK_FORMAT_TRACKS pour formater une piste.
Oui oui, c'est bien ce que j'avais écrit :) Ou bien tu voulais dire autre chose ?
ha non, je n'ai pas du tout imprimé :-) Sorry VB
"Mickael Pointier" <mpointie@eden-studios.fr> wrote in message
news:boacch$p2n$1@reader1.imaginet.fr...
>> [...]
>> récupère le format de la disquette, et avec
>> IOCTL_DISK_FORMAT_TRACKS, je formate la disquette.
>> [...]
>
> ben y'a IOCTL_DISK_FORMAT_TRACKS pour formater une piste.
Oui oui, c'est bien ce que j'avais écrit :)
Ou bien tu voulais dire autre chose ?
"Mickael Pointier" wrote in message news:boacch$p2n$
>> [...] >> récupère le format de la disquette, et avec >> IOCTL_DISK_FORMAT_TRACKS, je formate la disquette. >> [...] > > ben y'a IOCTL_DISK_FORMAT_TRACKS pour formater une piste.
Oui oui, c'est bien ce que j'avais écrit :) Ou bien tu voulais dire autre chose ?