Windows и программы могут определять объем жесткого диска путем вызова функций операционной системы, которые возвращают информацию о дисках и их свойствах. в винде это можно сделать с помощью функции GetDiskFreeSpaceEx из библиотеки kernel32.dll (с++)
микроконтроллер внутри жесткого диска сначала определяет какого он объёма в байтах и сколько на нем имеется секторов, дальше контролер жесткого говорит уже контроллеру sata на материнской плате объём и кол-во секторов