Посл.ответ |
Сообщение |
Ранг: 24.4 (новичок) Активность: 0.02↘0 Статус: Участник
|
Создано: 14 октября 2005 01:51 · Личное сообщение · #1
Привет всем , подскажите если кто знает
Каким образом можно заблокировать на время выполнения всех EXCEPTIONS а потом снова их возобновить!!!
Мне это необходимо для прямой записи в параллельный порт под XP , или может кто знает как иначе вывести что-нибудь в порт не используя драйвера ?????
| Сообщение посчитали полезным: |
|
![](img/s8.gif) Ранг: 748.2 (! !), 390thx Активность: 0.37↘0 Статус: Участник bytecode!
|
Создано: 14 октября 2005 03:48 · Личное сообщение · #2
ZeroCold
По-моему, можно через сайс,хотя,точно не скажу...
----- Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску. | Сообщение посчитали полезным: |
Ранг: 51.9 (постоянный) Активность: 0.03↘0 Статус: Участник
|
Создано: 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.03↘0 Статус: Участник
|
Создано: 14 октября 2005 10:43 · Личное сообщение · #4
Чтоб меня не сильно били, возможно ногами ;) - признаю, есть способ (даже не один) для решения проблемы без драйверов, но это полнейшее извращение.
| Сообщение посчитали полезным: |
Ранг: 24.4 (новичок) Активность: 0.02↘0 Статус: Участник
|
Создано: 14 октября 2005 12:06 · Личное сообщение · #5
Barakuda
Угу , я плохо знаком с ядром винды , потому как больше под PS2 пишу , но с работой различных процессоров знаком довольно таки неполохо , поэтому не думаю что это дело на PC сильно отличается,отловить команду записи в порт можно только с помощью exceptions самого проца
А почему на твой взгляд exceptions ни чего не дадут ??? ведь это ж именно они перехватывают команды
ввода /вывода , токо на аппаратном уровне , и перебрасывают проц выпонять код по вектору !!!
| Сообщение посчитали полезным: |
Ранг: 51.9 (постоянный) Активность: 0.03↘0 Статус: Участник
|
Создано: 14 октября 2005 12:28 · Поправил: Barakuda · Личное сообщение · #6
ZeroCold
Ты вероятно очень внимательно прочитал ссылку на wasm форуме ;)
Проц встречая привилигированую (во какое слово ![](img/smilies/s1.gif) ) команду проверяет кольцо. Если нет привилегий - exception. Обработчик exception безусловно в ядре. Отключить генерацию данного exceptions можно через карту I\O сменив привилегии для адреса порта. Её модификация может происходить по разному. Можно это сделать и без драйвера. Тут уж фантазия может сильно побуянить.
Отключить сам обработчик exceptions ? Это что-то новое. Ведь процессор не исполнит в любом случаи «наглую» команду в Ring 3. Убить обработчик – а смысл ? Если не убивать, а исправить на эмуляцию команды то как же это сделать без call gate или Ring0 драйвера ?
Короче говоря: драйвер, драйвер и ещё раз драйвер. Впрочем \Device\PhysicalMemory и GDT тоже сойдёт.
| Сообщение посчитали полезным: |
Ранг: 51.9 (постоянный) Активность: 0.03↘0 Статус: Участник
|
Создано: 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.04↘0 Статус: Участник
|
Создано: 14 октября 2005 13:26 · Личное сообщение · #8
Приятно, что на форум в последнее время приходят и очень толковые люди! Я уж думал, на кряклаб идут только мегахацкеры. Barakuda, молодец, лучше и не скажешь. Я то уже не отвечаю на такие вопросы, жаль, что и ты скоро перестанешь=)
| Сообщение посчитали полезным: |
![](img/s9.gif) Ранг: 1288.1 (!!!!), 273thx Активность: 1.29↘0 Статус: Участник
|
Создано: 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.03↘0 Статус: Участник
|
Создано: 14 октября 2005 17:01 · Личное сообщение · #12
_mask_
Всё бы хорошо, да вот параллельный порт это не "Serial Communications in Win32"
| Сообщение посчитали полезным: |
Ранг: 24.4 (новичок) Активность: 0.02↘0 Статус: Участник
|
Создано: 14 октября 2005 22:24 · Личное сообщение · #13
С последовательным портом проблем нет
он отлично юзается через :
fCom2 = CreateFile( "COM2", GENERIC_READ | GENERIC_WRITE, 0,
0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
Спасибо Barakuda толковый линк дал !!!!
| Сообщение посчитали полезным: |