Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Количество физических дисков [D6, NT4, Win2k, WinXP]


Oleg-- ©   (2003-01-22 09:59:00) 

Привет.. Как бы определить количество установленных физических дисков. (Вне зависимости на какие логические диски они разбиты :)

может что-то вроде этого:

function OpenHDDAsFile( path : String ) : THandle;
begin
Result := Windows.CreateFile( PChar(path), GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0 );
end;

--------
var
hDevice : THandle;
begin
function OpenHDDAsFile( path : String ) : THandle;
begin
Result := Windows.CreateFile( PChar(path), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0 );
end;


var
hDevice : THandle;
begin
hDevice := OpenHDDAsFile("\\.\PhysicalDrive0");
hDevice := OpenHDDAsFile("\\.\PhysicalDrive1");
hDevice := OpenHDDAsFile("\\.\PhysicalDrive2");
hDevice := OpenHDDAsFile("\\.\PhysicalDrive3");
hDevice := OpenHDDAsFile("\\.\PhysicalDrive4");
end
-----

ну все в цикле конечно... и смотреть .. открылся или нет?


Alex Konshin   (2003-01-23 21:52:00) [1]

Кстати, я боюсь что в случае физического RAID он будет виден как один единственный диск. Хотя не знаю - у меня нет RAID.


Alex Konshin   (2003-01-23 21:50:00) [2]

Можно не открывая через Native API.
А открыть может и не получиться, если у тебя прав нет.


Oleg--   (2003-01-23 11:21:00) [3]

Hip Hop Music: хм.. проверить не на чем, но будут ли определятся SCSI диски таким образом или допольнительно надо будет проверить "\\.\ScsiN" устройства?


Игорь Шевченко   (2003-01-22 10:48:00) [4]

В кладовке, в разделе готовые программы лежит программа QuerySystemInformation (с исходниками) - там есть это определение


Hip Hop Music   (2003-01-22 10:15:00) [5]

Путь правильный. Смелее!


Oleg--   (2003-01-22 10:01:00) [6]

странно скопировался пример.. так лучше :)))

--------
var
hDevice : THandle;
begin
function OpenHDDAsFile( path : String ) : THandle;
begin
Result := Windows.CreateFile( PChar(path), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0 );
end;


var
hDevice : THandle;
begin
hDevice := OpenHDDAsFile("\\.\PhysicalDrive0");
hDevice := OpenHDDAsFile("\\.\PhysicalDrive1");
hDevice := OpenHDDAsFile("\\.\PhysicalDrive2");
hDevice := OpenHDDAsFile("\\.\PhysicalDrive3");
hDevice := OpenHDDAsFile("\\.\PhysicalDrive4");
end
-----


Наверх

Титульная страница Поиск, карта сайта Написать письмо