I am having difficulty with gathering correct disk geometry values for
my PC Card using IOCTL_DISK_GET_DRIVE_GEOMETRY_EX. The card I am
using is a 40MB Flash, but it has 64,225,280 bytes capacity. The
manufacturer (who I've spoken with) gave me the following values:
Cylinders: 490
Heads : 8
Sectors : 32
Doing the C*H*S*512 math gives me the correct # of bytes, as expected.
However, the call to IOCTL_DISK_GET_DRIVE_GEOMETRY_EX is returning:
Cylinders: 7
Heads : 255 <-- I'm calling tracks/cyl the "heads"..is this
wrong?
Sectors : 63
This gives me only 57,576,960 bytes! The manufacturer said that that
is "just the way Windows is." Hopefully not, because if it is so,
I'll have to go "way-low" and attempt direct ATA access via ports.
And since I can't readily find a way to get the IDE port the PC Card
is using, I will be quite out of luck.
Can anyone verify that Windows does in fact report erroneous drive
geometry with these cards? Is there a better way to gather this data?
Thanks in advance,
Eric Rudisill