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

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

Определить скорость чтения/записи HDD [D5, Win95/98, Win2k, WinXP]


cashe ©   (2003-10-23 01:15:00) 

Добрый день!
Очень бы хотелось спросить у здешних завсегдатаев: как осуществить замер скорости чтения и записи для любого носителя? В основном меня интересует HDD, но, думаю, для флопика и CD-ROM все будет аналогично. Хоть как это осуществить хотя бы без привязки к Delphi - теоретически. А вообще, в идеале, это хочу замутить через WinAPI.
Заранее спасибо.


NightAngel   (2003-10-23 22:36:00) [1]

> cashe (23.10.03 16:25) [2]

См. функции CreateFile(), SetFilePointer(), ReadFile(). На платформе NT поддерживается режим блочного чтения с устройства, в котором всё содержимое диска трактуется как один большой файл.
Есть также функция DeviceIoControl(). У нее существует полсотни различных dwIoControlCode и три десятка различных структур ввода/вывода. Для Win9x/ME чтение секторов практически так же, как это было в DOS (используется int 21h). На NT платформе также можно взаимодействовать с IDE-устройствами через SCSI-интерфейс. Посылать устройству CDB-блоки(Command Descriptor Block), содержащие стандартные или специфичные для данного устройства команды управления вместе со всеми необходимыми им параметрами. CDB-блоки упаковываются в SRB-конверт(SCSI Request Block). Структура SRB-блока подробно описана в DDK. Передаётся SRB-блок выбранному устройству посредством функции DeviceIoControl().


cashe   (2003-10-23 16:25:00) [2]

А если без файла. Смысл в том, что мне надо измерить скорость HDD, но, например, без создания этого большого файла. Или, например, без учета фрагментации диска. Как получить (если это вообще возможно) доступ к секторам диска, чтобы их последовательно считывать, учитывая геометрию носителя?


Woolen   (2003-10-23 15:16:00) [3]

Видимо, просто прочитать большой файл на время. Скорость = объем/время. Думаю, из этого надо исходить. Хотя, на свете существуют более точные и надежные способы.


Наверх

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