Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Работа с портами по win 2000


Автор: Dex 29.3.2005, 21:30
Если кому интересно как можно работать с портами ввода вывода под win 2000 посмотрите
этот архив!

Автор: Girder 29.3.2005, 22:58
Цитата
услышать отзывы
Старо... енто smile

Автор: p0s0l 29.3.2005, 23:01
Теперь уже можно и без драйвера smile

Автор: Dex 30.3.2005, 00:23
Как без драйвера?

Автор: Girder 30.3.2005, 11:15
p0s0l я имел ввиду что такие решения уже всплывали на форуме smile ... ну да ладно раскажу как можно и по другому сделать smile
Цитата(Dex @ 30.3.2005, 01:23)
Как без драйвера?
Алгоритм... следующий:
Пусть а нас есть продедура... в которой идет обращение к портам...
1)Правиться ACL для PhysicalMemory
2)Открываем, с доступом по записи, PhysicalMemory
3)Получаем линейный адресс глобальной таблицы дескрипторов GDT... преобразуем в физический адресс и отображаем её в процесс
4)Пропуская первый дескриптор таблицы ищем пустой
5)Найдя пустой... заполняем его:
- привелегии(что мы можем вызвать енту процедуру и при ентом она может выполнять привелигированные команды);
- адресс нашей процедуры
6)Блокируем виртуальную область процедуры
7)Делаем межпривелигированный вызов нашей процедуры
... //типо здесь работает уже наша процедура
XX)Возвращаем все на место smile

Удачи.


Автор: oleg1973 30.3.2005, 16:46
Girder
а че через IOMAP не сутьба?

Автор: Girder 30.3.2005, 17:36
Цитата(oleg1973 @ 30.3.2005, 17:46)
Girder
а че через IOMAP не сутьба?
Ну по чему же... можно и карту разрешения подкорректировать smile

Автор: Dex 30.3.2005, 18:50
А можно пример! smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)