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

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

Как остановить работу с ком портом?


ctapik ©   (2003-07-07 21:49:00) 

На машине стоит Win NT/2000 необходимо запретить/разрешить работу с определенным ком портом. Заранее благодарен.


Forint   (2003-07-17 17:24:00) [1]

Лучший чпособ запрета работы с портом - открыть его самому! :-))
В этом способе, конечно, есть и недостатки, но куда без них...


Nucl   (2003-07-11 16:26:00) [2]

ну а что тебе мешает просто инициализировать новый порт аля com8 винда его по идее сделает виртуальным (могу ошибаться)


ctapik   (2003-07-08 21:56:00) [3]

Неуж то никто не знает? Сгодится и на С++


ctapik   (2003-07-08 08:57:00) [4]

Объясню поподробнее. Заходим Device manager/Ports (Com & LPT)/communication port (com1)Нажимаем правой кнопкой мыши на нем и видим в меню строчку Disable. Нажимаем, в результате считается что ком порт не работает. Так же можно сделать и enable. Вопрос в том, как это сделать програмным путем. Необходимо чтобы это работаль только под NT/2000/XP


NightAngel   (2003-07-08 01:29:00) [5]

> ctapik © (07.07.03 21:49)
Вот насчет того, чтобы ПЕРЕХВАТИТЬ ЗАПИСЬ В ПОРТ, я не знаю, и не думаю, что такое возможно. Может быть есть какие-то другие способы, но о них мне ничего неизвестно.
Возможно так:
Для перехвата обращений к памяти аппаратно используются регистры DR0-DR3. Так вот, для перехвата обращений к портам в/в исп. регистр DR7 (управляющий регистр), в котором (если установлен флаг DE в CR4) поля R/W0 - R/W3 (соотв. отладочн. регистрам DR0-DR3) отвечают за след. действия:
00 - бряк на исполнение инструкций
01 - бряк на запись данных
10 - бряк на обращение к портам в/в
11 - бряк на чтение/запись данных
Вся эта красота работает только на Pentium"ах. На 386 и 486 DE сброшен, и RW интерпретируются точно так же, только в случае 10 состояние неопределено.
Всё это только теория, на практике не проверял, но думаю, что никаких ограничений здесь быть не должно.


bestix   (2003-07-07 23:17:00) [6]

Поподробнее. Откуда запретить?


Наверх

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