Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

IOCTL_DISK_GET_PARTITION_INFO

2 réponses
Avatar
guy
Bonjour à tous,
J'ai besoin de connaître la taille totale d'un support physique, jusque
maintenant j'utilisais DISK_GEOMETRY qui fonctionne parfaitement sous
2000/XP et Vista. Par contre, lorsque je veux récupérer la taille d'une
mémoire flash(carte SD), en utilisant le lecteur intégré à la machine (un
portable), j'obtiens toujours "nombre de cylindre = 1" ce qui n'est pas vrai
du tout. Par contre sur un lecteur de carte USB, le nombre de cylindre est
bien retourné. Dans un premier temps je me suis tourné vers DISK_GEOMETRY_EX
qui me retourne la taille; par contre pour les cylindres c'est toujours
faux mais bon dans ce cas là le calcul est rapide. Pour compliquer le tout,
il faut que cela fonctionne sous 2000 donc pas de DISK_GEOMETRY_EX.
Je suis tombé sur IOCTL_DISK_GET_PARTITION_INFO, je l'ai utilisé sur le
support physique et j'ai obtenu la bonne taille mais en lisant la doc je
pensais plutôt que cela s'appliquait surtout à un lecteur logique. J'ai fait
un CreateFile sur \\.\PHYSICALDRIVEn avec le DeviceIOControl qui va bien et
cela fonctionne à tous les coups.
Je voudrais savoir si je peux continuer en l'utilisant de cette façon....
Merci .
Guy

2 réponses

Avatar
Vincent Burel
"guy" wrote in message
news:Mrwbi.99$
Bonjour à tous,
J'ai besoin de connaître la taille totale d'un support physique, jusque
maintenant j'utilisais DISK_GEOMETRY qui fonctionne parfaitement sous
2000/XP et Vista. Par contre, lorsque je veux récupérer la taille d'une
mémoire flash(carte SD), en utilisant le lecteur intégré à la machine (un
portable), j'obtiens toujours "nombre de cylindre = 1" ce qui n'est pas


vrai
du tout. Par contre sur un lecteur de carte USB, le nombre de cylindre est
bien retourné. Dans un premier temps je me suis tourné vers


DISK_GEOMETRY_EX
qui me retourne la taille; par contre pour les cylindres c'est toujours
faux mais bon dans ce cas là le calcul est rapide. Pour compliquer le


tout,
il faut que cela fonctionne sous 2000 donc pas de DISK_GEOMETRY_EX.
Je suis tombé sur IOCTL_DISK_GET_PARTITION_INFO, je l'ai utilisé sur le
support physique et j'ai obtenu la bonne taille mais en lisant la doc je
pensais plutôt que cela s'appliquait surtout à un lecteur logique. J'ai


fait
un CreateFile sur .PHYSICALDRIVEn avec le DeviceIOControl qui va bien


et
cela fonctionne à tous les coups.
Je voudrais savoir si je peux continuer en l'utilisant de cette façon....



Oui, il faut utiliser un handle retourné par un CreateFile sur
.PHYSICALLDRIVE%i

VB
Avatar
guy
Merci pour la réponse.
Guy

"Vincent Burel" a écrit dans le message de
news:466e9c63$0$25916$

"guy" wrote in message
news:Mrwbi.99$
Bonjour à tous,
J'ai besoin de connaître la taille totale d'un support physique, jusque
maintenant j'utilisais DISK_GEOMETRY qui fonctionne parfaitement sous
2000/XP et Vista. Par contre, lorsque je veux récupérer la taille d'une
mémoire flash(carte SD), en utilisant le lecteur intégré à la machine (un
portable), j'obtiens toujours "nombre de cylindre = 1" ce qui n'est pas


vrai
du tout. Par contre sur un lecteur de carte USB, le nombre de cylindre
est
bien retourné. Dans un premier temps je me suis tourné vers


DISK_GEOMETRY_EX
qui me retourne la taille; par contre pour les cylindres c'est toujours
faux mais bon dans ce cas là le calcul est rapide. Pour compliquer le


tout,
il faut que cela fonctionne sous 2000 donc pas de DISK_GEOMETRY_EX.
Je suis tombé sur IOCTL_DISK_GET_PARTITION_INFO, je l'ai utilisé sur le
support physique et j'ai obtenu la bonne taille mais en lisant la doc je
pensais plutôt que cela s'appliquait surtout à un lecteur logique. J'ai


fait
un CreateFile sur .PHYSICALDRIVEn avec le DeviceIOControl qui va bien


et
cela fonctionne à tous les coups.
Je voudrais savoir si je peux continuer en l'utilisant de cette façon....



Oui, il faut utiliser un handle retourné par un CreateFile sur
.PHYSICALLDRIVE%i

VB