функция обратного вызова IDE_HW_INTERRUPT (irb.h)
Подпрограмма IdeHwInterrupt драйвера минипорта обрабатывает прерывания с адаптера шины узла (HBA), к которому подключен контроллер для драйвера мини-порта.
Синтаксис
IDE_HW_INTERRUPT IdeHwInterrupt;
BOOLEAN IdeHwInterrupt(
[in] PVOID ChannelExtension
)
{...}
Параметры
[in] ChannelExtension
Указатель на расширение канала.
Возвращаемое значение
AtaHwInterrrupt возвращает TRUE, если прерывание создается одним из каналов контроллера. Если канал не создавал прерывание, подпрограмма должна возвращать false как можно быстрее.
Замечания
ПодпрограммаIdeHwInterrupt завершает операции ввода-вывода на основе прерываний.
Если указанный канал не вызвал прерывание, минипорт-драйвер должен выполнить второй (рекурсивный) вызов подпрограмме IdeHwInterrupt для обработки прерываний, предназначенных для другого канала контроллера.
Если драйвер минипорта требует большого количества времени для обработки прерывания, он должен выполнить следующие действия:
- Закройте прерывание на HBA.
- Отключите прерывания в канале, указанном параметром ChannelExtension.
- Запросите подпрограмму рабочей роли с помощью AtaPortRequestWorkerRoutine.
- Выполните дополнительную обработку в подпрограмме рабочей роли.
- Включите прерывания в канале.
Подпрограмма рабочей роли должна очистить прерывание на HBA, прежде чем он возвращает TRUE.
Требования
Требование | Ценность |
---|---|
целевая платформа | Настольный |
заголовка | irb.h (include Irb.h) |