von nirgendwo?
na ja, im Grunde machen es alle einfach so ... sie reservieren mehr, als es vermutlich gibt

und lassen sich dann im Nachhinein überraschen was in PartitionCount steht.
also meist einfach:
Delphi-Quellcode:
DLI := GetMem(SizeOf(_DRIVE_LAYOUT_INFORMATION_EX)
+ SizeOf(_PARTITION_INFORMATION_EX) * 31);
Im Grunde mach ich genau das Selbe ... oder bist du der Meinung, daß jemand mehr als 32 Partitionen auf einer Platte hat? (sehr unwarscheinlich)
Ein Therapeut entspricht 1024 Gigapeut.