procedure TForm1.Button2Click(Sender: TObject);
var
h:THandle;
c:integer;
begin
c:=0;
repeat
h:=CreateFile(PChar('\\.\PhysicalDrive'+inttostr(c)),0,0,0,OPEN_EXISTING,0,0);
if h=INVALID_HANDLE_VALUE then break;
CloseHandle(h);
Inc(c);
until c=100;
ShowMessage('Количество дисков '+IntToStr(c));
end;
Физ. диски
Как узнать размер и количество физических дисков в Windows? Именно физических, не логических.
для определения количества дисков пытаться открывать ccылку \\.\PhysicalDriveN если открылось то он существует
Код:
Спасибо, но как ещё узнать их размер?
Код:
SetFilePointer(h, 0, NULL, FILE_END);
Либо GetFileSize, но не уверен...
Цитата: HexEdit
как и обычного файла
Либо GetFileSize, но не уверен...
Код:
SetFilePointer(h, 0, NULL, FILE_END);
Либо GetFileSize, но не уверен...
Не работает GetFileSize.
http://wasm.ru/article.php?article=apihook_3.А потом идешь сюда http://wasm.ru/article.php?article=atazen01, внизу есть даже пример, как получить размер винта в секторах....
Придется работать на прямую с АТА контроллером. Вот здесь написано как без дров получить доступ к Ring0