IOCTL_DISK_GET_PARTITION_INFO

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Vincent Burel
Le #9738201
"guy" 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
guy
Le #9738191
Merci pour la réponse.
Guy

"Vincent Burel" news:466e9c63$0$25916$

"guy" 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




Publicité
Poster une réponse
Anonyme