Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: При загрузке системы (ОС) на IoConnectInterrupt все зависает, хотя, если...  (Прочитано 4465 раз)
0 Пользователей и 1 Гость смотрят эту тему.
flashLAV
Гость
« : 23-09-2005 13:09 » new

драйвер динамически загружать/выгружать при уже загруженной ОС - все нормально
Конфликт возникает с контроллером USB, "сидящим" на том же прерывании
USB отключаешь - все нормально, тоже
На этом прерывании сидит всего 4 устройства (вместе с моим)
Не подскажете, куда в первую очередь, смотреть?

С уважением, Алексей Локис

PS: Понятно, что вопрос уж больно не конкретный, но, .. что имею
« Последнее редактирование: 23-09-2005 13:11 от flashLAV » Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 26-09-2005 15:26 » 

IoConnectInterrupt вызывается на IRQL = PASSIVE_LEVEL?

Функция прерывания должна быть уже полностью готова к обработке пришедших прерываний, кроме того, Ваш обработчик прерывания обязан корректно отлавливать только ваши прерывания, и отдавать управление в противном случае - return FALSE (TRUE - если вы его обнработали).

Уточните у разработчика вашей платы - он прерывания при старте не поднимает? у меня именно так и происходило;))

Функция должна быть размещена в НЕсвопируемой памяти, в функции использовать ТОЛЬКО переменные расположенные в несвопируемой памяти. Кроме того, нельзя вызывать функции ядра, которые исполняются на IRQL ниже того на котором вызывается прерывание.
"A driver's InterruptService routine (ISR) executes in an interrupt context, at some system-assigned DIRQL, as specified by the SynchronizeIrql parameter to IoConnectInterrupt. (Other devices, with higher DIRQL values, can interrupt the ISR.)"
если что то надо исполнить - используйте DPC.
Удачи,
Ochkarik Круто!
« Последнее редактирование: 19-12-2007 21:27 от Алексей1153++ » Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines