![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Количество физических дисков [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
-----