Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.09.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.033 c
3-1093683807
Yakudza
2004-08-28 13:03
2004.09.26
Проблема с ADODataSet


3-1093844052
Ega23
2004-08-30 09:34
2004.09.26
Перехват запросов


3-1093865375
Koala
2004-08-30 15:29
2004.09.26
Поиск в представлении


8-1088511384
_PG_
2004-06-29 16:16
2004.09.26
Длина строки в пикселах ...


4-1092505955
djone
2004-08-14 21:52
2004.09.26
ToolBar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский