![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с винчестером напрямую [D6, D7, Win95/98, WinME, NT4, Win2k, WinXP]
Tristania © (2005-10-15 19:47:00)Доброго времеи суток, господа!
Не знал куда разместить этот пост, поэтому расположил сюда(по железу отдельной ветки, вроде бы нет).
Подскажите, кто знает какие-нибудь методы для чтения/записи секторов винчестера из своей программы. В ДОС все это выполняло 13-е прерывание БИОСа, а как можно это реализовать в Винде? Особый интерес представляет ВинНТ/ХР/2000.
Если кто знает - подскажите, это для добрых целей и хотелось бы узнать по-больше методов.
Заранее всем благодарен.
Tristania (2005-10-17 13:08:00) [21]Скачал DiskMon, вроде бы то, что нужно(хотя не уверен, что он перехватывает все), но исходного текста нет, также как и дукументации о том, как все это работает.
Кстати, там только ЕХЕ-файл. Может ли он быть и драйвером? Вряд ли. Т.е. прога видимо переходит в нулевое кольцо без драйвера....но это так, лирическое отступление.
Tristania (2005-10-17 12:52:00) [22]Спасибо, Eraser.
Но дело в том, что в англ. я не силен, а нет ли где почитать на Ридний Мови?
Eraser (2005-10-16 20:51:00) [23]
> прога задумает совершить действия с винтом минуя АПИ(через
> тот же АПИ интерфейс), то я уже бду не в силах чем-то ей
> помешать.
см. Alex Konshin © (16.10.05 00:34) [9]
Система драйверов windows имеет слоистую структуру, т.е. можно перехватывть что угодно, при желании, просто нужный фильтр-драйвер устанавливать непосредственно перед драйвером, IRP запросы которого необходимо перехватить.
В большенстве случаев есть готовые решения, опять же см. [9] и http://www.sysinternals.com/
Tristania (2005-10-16 20:42:00) [24]Сорри, не АПИ в скобках быть должно было а IDE.
Tristania (2005-10-16 20:40:00) [25]Это-то все понятно....
Спасибо, конечно, но как ты наверное понял, это все АПИ. Т.е. уровень не самый низкий и если чья-нибудь прога задумает совершить действия с винтом минуя АПИ(через тот же АПИ интерфейс), то я уже бду не в силах чем-то ей помешать.
Но задача для меня уже не такая страшная. Я вот тут начитался, что можно написать драйвер-перехватчик DRx регистров и теперь буду рулить в этом направлении. Так что ребята, спасибо всем, кто попытался помочь. Дальше уже сам.
Ветку можно считать закрытой.
Eraser (2005-10-16 18:37:00) [26]
> Tristania © (16.10.05 15:18) [10]
>
> но еще и форматирование...
SHFormatDrive + F1
Tristania (2005-10-16 15:18:00) [27]Перехват не только секторов, но еще и форматирование...
Alex Konshin (2005-10-16 00:34:00) [28]Tristania © (15.10.05 21:47) [5]
Перехватывать обращения к файлам? Тогда драйвер IFS.
Накой черт может понадобиться перехват чтения секторов я ума не приложу.
Это дурно пахнет.
Anatoly Podgoretsky (2005-10-15 22:32:00) [29]Это АПИ, но только ДОС
wp2 (2005-10-15 22:27:00) [30]int 13h
Правда это не API...
Eraser (2005-10-15 22:25:00) [31]
> Tristania © (15.10.05 21:47) [5]
Ну тогда почти 100% драйвер писАть надо. Загляни на сайт http://www.sysinternals.com/и глянь программу Filemon. Примерно такое интересует?
Tristania (2005-10-15 21:47:00) [32]Дело в том, что изначальная задача несколько другая.
Мне нужно написать прогу, которая будет перехватывать обращения других прог к винчестеру(к его секторам, etc) и при необходимости делать редирект.
Поэтому, я решил сначала узнать по-больше возможных способов работы с винтом, а уж потом писать перехватчики.
Вот так....сорри за каламбур.
Eraser (2005-10-15 21:16:00) [33]
> Tristania © (15.10.05 20:54) [3]
> Еще есть идеи?
Для полноценной работы в данном случае надо драйвер ядра делать.
Tristania (2005-10-15 20:54:00) [34]Спасибо. Один вариант есть. Нашел пока по IDE портам и DMA. Изучаю. Еще есть идеи?
Kerk (2005-10-15 20:08:00) [35]http://kladovka.net.ru/index.cgi?pid=article&rid=1
Tristania (2005-10-15 19:57:00) [36]Хех, ну АПИ, так АПИ.
В дополнение хочу сказать вот что: как работать с винтом из-под:
- обычных приложений;
- консольных и приложений ДОС (если это возможно);
- и чем мне может помочь написание драйвера нулевого кольца.