Archive: GetDiskFreeSpace unreliable


GetDiskFreeSpace unreliable
Does anyone know of an alternate, more 'reliable' way to arrive at the cluster size of a volume?

Using the 'GetDiskFreeSpace' function to determine the cluster size doesn't always work.

Example:
System::Call 'kernel32::GetDiskFreeSpace(tr0,*i0r2,*i0r3,,)'

Where $2 returns Sectors Per Cluster as an unsigned integer
and $3 returns Bytes Per Sector as an unsigned integer
for $0, the (root) path,
multiplying $2 by $3 gives the number of bytes in each cluster, the cluster size.

On Windows 95/98 the value of $2 is manipulated. It is not the Sectors Per Cluster.

I tried it on Windows 98. It cheats.


http://support.microsoft.com/kb/231497 ?


Two kinds of unreliable.

A) checking a FAT32 volume
B) checking a volume in Windows 98

The cluster size reported in each case is wrong, so it's academic, but there appear to be two errors. The fix for both, I guess, is to exclude FAT32. Hmm. exFAT is okay. Thanks.