Para temas de tamaño, hay dos ejemplos en la web que te pueden servir.
La demo del
componente TDiskInfo.
Por otro lado hay un ejemplo antiguo para calcular
tamaños de ficheros, discos, directorios, aquí.
No se si te van a servir para lo que necesitas, ya que pides que quieres diferenciar entre discos y particiones.
A día de hoy yo te recomendaría WMI.
Con las clases
Win32_DiskDriveToDiskPartition (con esta puedes saber qué particiones pertenecen a cada disco) y
Win32_LogicalDisk (con esta saber toda la información de cada partición) puedes hacer lo que necesitas de forma muy fácil.
Otras veces hemos hablado en los foros de
WMI. Busca los mensajes y échales un vistazo.
AÑADO:
Acabo de encontrar este ejemplo de otro hilo. Te lo adjunto, para que veas cómo puedes hacerlo.