64 GB Extreme Pro only shows up as 31 GB in Windows

I have a 64GB SanDisk Extreme Pro. In the Mac, either ExFAT or FAT formatting shows 64 GB as expected. Under Windows (Vista through 8) it only shows up as 31 GB.

I traced it back to inconsistent information in the results of the ATA IDENTIFY command - the command that returns the number of cylinders/heads/sectors-per-track, name, capacity, model, etc. The Sandisk reports:

0xffff cylinders (Word 1, also Word 54)

0x0010 heads (Word 3, also Word 55)

0x003f sectors/track (Word 6, also Word 56)

0x03effc10 sectors capacity (Word 57)

0x07736000 sectors LBA capacity (Word 60)

??? Two different sector counts? Guess what - 0x07736000 (LBA count) is  64000884736 = 64 GB while 0x03effc10 (“legacy CHS”) is 33822351360 = 31 GB.

Why are these different?

Have you ever tried a better card reader?

Some card readers are not compatible with 64GB or higher capacity.

If you format your card with a card reader which is not compatible with 64GB or higher capacity, your card will be changed to a wrong capacity.

Some card readers are not compatible with 64GB or higher capacity precisely because they are using the CHS values instead of the LBA values. Again, why are they different in the SanDisk product? The identify data, which reports inconsistent values of size, is produced by the SanDisk Extreme Pro.

And it is our card reader product, that is why I am trying to solve this!

You can probably try to update the card reader driver. From what I know, it could be also a limitation on your hardware. What brand is your card reader?