Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Вниз

Запрет доступа к определенным портам на линейке Windows NT   Найти похожие ветки 

 
Ученик   (2003-08-26 23:06) [0]

На незначительное время, в частности 1F0 (+6, +7), 170

Может кто-нибудь знает и подскажет название функции или нескольких функций или ссылку на форум, где этот вопрос можно задать ?

Каким образом реализуется в драйверах ?

В примерах DDK ничего подобного (в плане блокировки) не наблюдается :-(


 
NightAngel   (2003-08-27 00:47) [1]

Можно перехватить обращение к портам см. здесь http://delphi.mastak.ru/cgi-bin/forum.pl?id=1061814394&n=2
А также Manual на любой из процессоров, начиная с Pentium, про отладочные регистры.


 
MBo   (2003-08-27 07:26) [2]

Спросить можно на RSDN.
Запрет доступа встречал только в TVicHW или TVicLPT ( http://www.entechtaiwan.com/tools.htm), может, можно отследить, как это делается.


 
Ученик   (2003-08-27 23:05) [3]

>NightAngel © (27.08.03 00:47) [1]
Перехват позволяет остановить обращение ?
Какая реакция будет на мое собственное обращение к портам (можно ли будет разобрать свое-чужое) ?

>MBo © (27.08.03 07:26) [2]
Если не затруднит, о вызове какой функции, которая блокирует обращение, в TVicHW идет речь ?


 
MBo   (2003-08-28 08:23) [4]

>Ученик
Увы, я не разбираюсь в этом, просто вспомнил, что встречал когда-то в TVicHW функцию AcquirePort (монопольный захват порта).


 
Digitman   (2003-08-28 08:24) [5]


> Какая реакция будет на мое собственное обращение к портам
>


точно такая же, как и на "чужое".

т.е. во избежание входа в бесконечную рекурсию первым делом в обработчике отл.прерывания следует привести упр. и отл. регистры (см. NightAngel © (27.08.03 00:28) [3] в http://delphi.mastak.ru/cgi-bin/forum.pl?id=1061814394&n=2) в исходное состояние

концептуально это выглядит так :

после собственных обращений к порту (в ходе исполнения процедуры прерывания) перед возвратом из обработчика прерывания, если вновь требуется контроль за "чужими" обращениями к порту, регистры вновь устанавливаются указанным образом


 
Ученик   (2003-08-28 22:08) [6]

>MBo © (28.08.03 08:23) [4]
Наверно, идет речь о AcquireLPT, к сожалению, судя по названию это для LPT
>Digitman © (28.08.03 08:24) [5]
Почему-то кажется, что после "...привести упр. и отл. регистры в исходное состояние..." может произойти чужое обращение к порту, особенно, если данный порт активно используется, например, идет поиск на диске


 
Digitman   (2003-08-29 09:03) [7]


> Ученик


с чего бы ему произойти ? если твой обработчик прерывания работает в PL0, он в состоянии запретить на время своей работы любые прочие прерывания.
а при запрещенных прерываниях переключение задач не произойдет


 
Ученик   (2003-08-30 21:02) [8]

>Digitman © (29.08.03 09:03) [7]
"..запретить прерывания...", это для Windows NT нормально ? не "криминал" ? Т.е. можно использовать cli, sti ?


 
Polevi   (2003-09-01 09:35) [9]

>Ученик © (30.08.03 21:02) [8]
обработчик прерывания запрещает прерывания - обычная практика, без этого никак


 
Digitman   (2003-09-01 16:16) [10]


> Ученик


см.
> Polevi © (01.09.03 09:35)


иначе представь себе катастрофическую ситуацию :

некое устр-во для исполнения некоего действия должно получить
секвенцию из двух out-инструкций : первая устанавливает активным внутренний регистр адреса, вторая шлет данные в адресованный предыдущей инструкцией внутренний регистр данных

возникло прерывание. в обработчике установили регистр адреса.
следом ожидалось послать значение в рег-р данных, и тут возникло другое прерывание ... в его обработчике рег-р адреса устанавливается иным ... после возврата из второго обработчика в первый отложенная (из-за вложенного прерывания) запись в рег-р данных вызовет непредсказуемую ситуацию, ибо рег-р адреса вполне мог и измениться в обработчике вложенного прерывания


 
Ученик   (2003-09-01 22:50) [11]

>Polevi © (01.09.03 09:35) [9]
Digitman © (01.09.03 16:16) [10]
Для чтения из портов используютcя функции READ_PORT_????, для записи WRITE_PORT_???? (DDK), случайно, не в курсе, какие функции необходимо использовать для запрещения/разрешения прерываний ?


 
NightAngel   (2003-09-01 22:51) [12]

> Ученик ©
> В примерах DDK ничего подобного (в плане блокировки) не > наблюдается :-(


В дополнение ко всему вышесказанному. Я не знаю как, и в каком DDK Вы смотрели, но информация об этом там есть (в плане блокировки). Специально посмотрел.


 
NightAngel   (2003-09-01 22:51) [13]

> Ученик ©
> В примерах DDK ничего подобного (в плане блокировки) не > наблюдается :-(


В дополнение ко всему вышесказанному. Я не знаю как, и в каком DDK Вы смотрели, но информация об этом там есть (в плане блокировки). Специально посмотрел.


 
NightAngel   (2003-09-01 22:56) [14]

> Ученик © (01.09.03 22:50) [11]

Ищите по: Port Driver Services.


 
NightAngel   (2003-09-01 23:28) [15]

> случайно, не в курсе, какие функции необходимо использовать для запрещения/разрешения прерываний ?

cli/sti ?

Да и ещё... Не факт, что какой-то из драйверов не будет работать
с портами напрямую, ч/з - in/out, так-что делайте выводы.


 
Ученик   (2003-09-02 06:57) [16]

>NightAngel © (01.09.03 22:51) [12]
Используется Windows NT DDK 4.0, если можно (и не затруднит), конкретнее, о вызове каких функций идет речь, надеюсь это, не великая тайна ?

На всякий случай, речь не идет о драйвере какого-либо устройства, речь идет о чтении/записи произвольного порта.


 
Polevi   (2003-09-02 10:16) [17]

может не в тему но чтото всплывает в голове насчет запрета аппартных прерываний со времен Доса - cli + out 20h,20h ??

>Ученик © (02.09.03 06:57) [16]
чем не устраивает in out ?


 
Digitman   (2003-09-02 13:39) [18]


> Ученик


да какие еще ф-ции ?! если ты имеешь СPL = 0, то манипулируй прерываниями непосредственно инструкциями cli/sti, портами - непосредственно инструкциями in[s], out[s] !)

более того - при СPL = 0 ты можешь обращаться и напрямую к физической памяти, и опять же - безо всяких на то ф-ций


 
Ученик   (2003-09-03 07:07) [19]

>Polevi © (02.09.03 10:16) [17]
>Digitman © (02.09.03 13:39) [18]
Спасибо, за ответы

>Модератор
Тема, наверно, закрыта



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.031 c
3-41105
Witaliy
2003-10-26 20:03
2003.11.13
TIB компоненты в потоках


3-40799
denmin
2003-10-22 13:56
2003.11.13
Помогите!!! Проблема с передачей параметров!


14-42104
ZeroDivide
2003-10-23 08:23
2003.11.13
Кто как борется со спамом?


7-42164
M@D
2003-09-01 22:53
2003.11.13
Shutdown XP


3-41035
AnS
2003-10-14 19:19
2003.11.13
BDE Error 12289 : $3001





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский