Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.26;
Скачать: CL | DM;

Вниз

Размер физического диска   Найти похожие ветки 

 
d_oleg   (2004-08-16 17:48) [0]

Подскажите пожалуйста, как можно определить размер _физического_ (не логического) диска? Поясню на примере: есть 80Гб диск, на нём создан раздел на 40Гб. Мне нужно узнать, что диск 80Гб, независимо от размера раздела.


 
Fay ©   (2004-08-16 17:56) [1]

DeviceIoControl


 
Dimaxx   (2004-08-16 22:23) [2]

type
 MEDIA_TYPE = (Unknown, F5_1Pt2_512, F3_1Pt44_512, F3_2Pt88_512, F3_20Pt8_512, F3_720_512, F5_360_512, F5_320_512, F5_320_1024, F5_180_512, F5_160_512, RemovableMedia, FixedMedia);

...

var
 H: THandle;
 R: cardinal;
 DG: packed record
   Cylinders: int64;
   MediaType: MEDIA_TYPE;
   TracksPerCylinder: cardinal;
   SectorsPerTrack: cardinal;
   BytesPerSector: cardinal;
 end;

...

H:=CreateFile("\\.\PHYSICALDRIVE0",GENERIC_READ,0,nil,OPEN_EXISTING,FILE_FLAG_RANDOM_ACCESS,0);
if H<>INVALID_HANDLE_VALUE then DeviceIOControl(H,458752,nil,0,@DG,sizeof(DG),R,nil);
CloseHandle(H);


Код для NT. Для неNT пока кода нет.

Перемножаем Cylinders*TracksPerCylinder*SectorsPerTrack*BytesPerSector и получаем емкость накопителя в байтах. Потом делим на 1073741824 - получаем в Гбайтах.

PHYSICALDRIVE0 - для Primary Master
PHYSICALDRIVE1 - для Primary Slave
PHYSICALDRIVE2 - для Secondary Master
PHYSICALDRIVE3 - для Secondary Slave


 
Dimaxx   (2004-08-17 22:05) [3]

Забыл написать, что 458752 это команда IOCTL_DISK_GET_DRIVE_GEOMETRY.


 
Игорь Шевченко ©   (2004-08-18 10:31) [4]

http://www.schevchenko.net.ru/SRC/DeviceIoControl_60.zip +
http://www.schevchenko.net.ru/SRC/Common_60.zip



Страницы: 1 вся ветка

Текущий архив: 2004.09.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.024 c
6-1088926619
Kosmach
2004-07-04 11:36
2004.09.26
WebBrowser.OnNewWindow


1-1094837644
x_michael
2004-09-10 21:34
2004.09.26
У.М.Д. подскажите плз как получить непрямоугольную область


4-1092476144
_Stalker_
2004-08-14 13:35
2004.09.26
Страничная память


1-1094550933
ZDenis
2004-09-07 13:55
2004.09.26
Помогите разобраться с ООП


4-1092708584
Александр1
2004-08-17 06:09
2004.09.26
Работа с дисками!