Сейчас на форуме: user99, _MBK_, ManHunter, Magister Yoda, rtsgreg1989 (+9 невидимых)

 eXeL@B —› Основной форум —› Exception Disable
Посл.ответ Сообщение

Ранг: 24.4 (новичок)
Активность: 0.020
Статус: Участник

Создано: 14 октября 2005 01:51
· Личное сообщение · #1

Привет всем , подскажите если кто знает
Каким образом можно заблокировать на время выполнения всех EXCEPTIONS а потом снова их возобновить!!!
Мне это необходимо для прямой записи в параллельный порт под XP , или может кто знает как иначе вывести что-нибудь в порт не используя драйвера ?????




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 14 октября 2005 03:48
· Личное сообщение · #2

ZeroCold
По-моему, можно через сайс,хотя,точно не скажу...

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.




Ранг: 51.9 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 14 октября 2005 10:35 · Поправил: Barakuda
· Личное сообщение · #3

ZeroCold
Этот вопрос стоити задать на wasm.ru

По формулировки понимаю что ты не очень знаком с ядром Windows. Инструкции IN/OUT требуют нулевого кольца. Есть фокус для правки специального масива для возможности вызова команд с третьего кольца, но для этого всё же нужен драйвер. Так что без него никуда. Ексепшины к сожалению ничего не дадут.

www.wasm.ru/forum/action=vthread&forum=4&topic=11276



Ранг: 51.9 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 14 октября 2005 10:43
· Личное сообщение · #4

Чтоб меня не сильно били, возможно ногами ;) - признаю, есть способ (даже не один) для решения проблемы без драйверов, но это полнейшее извращение.



Ранг: 24.4 (новичок)
Активность: 0.020
Статус: Участник

Создано: 14 октября 2005 12:06
· Личное сообщение · #5

Barakuda

Угу , я плохо знаком с ядром винды , потому как больше под PS2 пишу , но с работой различных процессоров знаком довольно таки неполохо , поэтому не думаю что это дело на PC сильно отличается,отловить команду записи в порт можно только с помощью exceptions самого проца

А почему на твой взгляд exceptions ни чего не дадут ??? ведь это ж именно они перехватывают команды
ввода /вывода , токо на аппаратном уровне , и перебрасывают проц выпонять код по вектору !!!



Ранг: 51.9 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 14 октября 2005 12:28 · Поправил: Barakuda
· Личное сообщение · #6

ZeroCold
Ты вероятно очень внимательно прочитал ссылку на wasm форуме ;)

Проц встречая привилигированую (во какое слово ) команду проверяет кольцо. Если нет привилегий - exception. Обработчик exception безусловно в ядре. Отключить генерацию данного exceptions можно через карту I\O сменив привилегии для адреса порта. Её модификация может происходить по разному. Можно это сделать и без драйвера. Тут уж фантазия может сильно побуянить.
Отключить сам обработчик exceptions ? Это что-то новое. Ведь процессор не исполнит в любом случаи «наглую» команду в Ring 3. Убить обработчик – а смысл ? Если не убивать, а исправить на эмуляцию команды то как же это сделать без call gate или Ring0 драйвера ?

Короче говоря: драйвер, драйвер и ещё раз драйвер. Впрочем \Device\PhysicalMemory и GDT тоже сойдёт.



Ранг: 51.9 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 14 октября 2005 12:37 · Поправил: Barakuda
· Личное сообщение · #7

Вопрос практически идентичен
www.wasm.ru/forum/action=vthread&forum=4&topic=9130&page=0

А вот это детальная информация
void.ru/?do=printable&id=701



Ранг: 186.8 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 14 октября 2005 13:26
· Личное сообщение · #8

Приятно, что на форум в последнее время приходят и очень толковые люди! Я уж думал, на кряклаб идут только мегахацкеры. Barakuda, молодец, лучше и не скажешь. Я то уже не отвечаю на такие вопросы, жаль, что и ты скоро перестанешь=)




Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 14 октября 2005 14:23
· Личное сообщение · #9

MoonShiner пишет:
Я уж думал, на кряклаб идут только мегахацкеры

А оно так есть. Толковые люди через некоторое время уходят, а старые толковые люди остаются разве что по привычке.



Ранг: 5.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 14 октября 2005 16:32
· Личное сообщение · #10

ZeroCold пишет:
может кто знает как иначе вывести что-нибудь в порт не используя драйвера

Открываеш MSDN и в Search пишешь "Mttty". Там пример есть и все подробно описано



Ранг: 5.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 14 октября 2005 16:35
· Личное сообщение · #11

Что то не подумал, если у тебя МСДНа нету тогда:
msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfiles/html/msdn_serial.asp



Ранг: 51.9 (постоянный)
Активность: 0.030
Статус: Участник

Создано: 14 октября 2005 17:01
· Личное сообщение · #12

_mask_
Всё бы хорошо, да вот параллельный порт это не "Serial Communications in Win32"



Ранг: 24.4 (новичок)
Активность: 0.020
Статус: Участник

Создано: 14 октября 2005 22:24
· Личное сообщение · #13

С последовательным портом проблем нет
он отлично юзается через :
fCom2 = CreateFile( "COM2", GENERIC_READ | GENERIC_WRITE, 0,
0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);


Спасибо Barakuda толковый линк дал !!!!


 eXeL@B —› Основной форум —› Exception Disable
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати