|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Янв 23, 2004 07:56:55 Контроллер прерываний |
|
|
Дата: Янв 23, 2004 07:59:41 Народ !!! Такое дело. Надо узнать на какие int отображает базовые irq контроллер прерываний? можно ли эту информацию получить непосредственно от контроллера?? Если можно, то как?? ПАМАГИТЕ !!!!!!!!!!! |
|
|
Дата: Янв 23, 2004 11:36:34 Есть косвенный метод, который для первого контроллера будет выглядеть примерно так: Маскируем все IRQ кроме IRQ0(таймер). На все вектора вида 8*n ставим свои обработчики и смотрим который из них первым вызовется. Но вот со вторым контроллером сложнее, так как самым подходящим кандидатом для генерации прерывания является жесткий диск. Хотя может у меня хелпы старые, и есть прямой метод. |
|
|
Дата: Янв 23, 2004 12:22:03 Вообще-то надо бы уточнить о каком контроллере идет речь PIC или APIC? Насчет PIC-a точно не скажу, но там совсем все просто.. А с APIC-ом в принципе, особых проблем тоже нет. У него вся инфа сохраняется в специальных регистрах. Для каждого аппаратного прерывания есть инфа о том, какой вектор ему соответствуем, замаскировано оно сейчас или нет, тип срабатывания (по фронту или по уровню) и много чего еще. SoftICE, к примеру, умеет читать напрямую эти регистры. |
|
|
Дата: Янв 23, 2004 12:37:30 Скорее всего SoftICE не читает эти регистры, а запоминает их изменение, фильтруя обращение к портам 20h/21h/A0h/A1h. |
|
|
Дата: Янв 23, 2004 15:39:17 SoftICE читает напрямую регистры I/O APIC, которые мапяться в память. Если в системе есть APIC, то к портам 20h/21h etc. вообще никто не обращается. Про PIC я ничего и не говорил. |
|
|
Дата: Янв 23, 2004 16:43:53 Вообще, первоначально вопрос звучит так. Необходимо установить свой обработчик прерывания от клавиатуры под Windows. Всё бы хорошо, но вот как быть с векторами. Опытным путём я узнал что вектора отображены на int 50h и т.д. Соответственно, irq1 отображается на int 51h/ Вопрос. Будет ли всегда так, или значение базы непостоянно от версии к версии ядра. И , есть ли способ узнать базовый адрес вообще, из реестра там или винда где хранит его? |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.064 |