функция обратного вызова IDE_HW_INTERRUPT (irb.h)

Подпрограмма драйвера минипорта IdeHwInterrupt обрабатывает прерывания адаптера шины узла (HBA), к которому подключен контроллер для драйвера мини-порта.

Примечание Модели драйвера портов ATA и драйвера минипорта ATA могут быть изменены или недоступны в будущем. Вместо этого рекомендуется использовать модели драйверов Storport и драйверов для мини-портов Storport .
 

Синтаксис

IDE_HW_INTERRUPT IdeHwInterrupt;

BOOLEAN IdeHwInterrupt(
  [in] PVOID ChannelExtension
)
{...}

Параметры

[in] ChannelExtension

Указатель на расширение канала.

Возвращаемое значение

AtaHwInterrrupt возвращает значение TRUE , если прерывание создается одним из каналов контроллера. Если канал не создает прерывание, подпрограмма должна как можно быстрее возвращать значение FALSE .

Комментарии

Подпрограмма IdeHwInterrupt завершает операции ввода-вывода, управляемые прерываниями.

Если указанный канал не создает прерывание, драйвер мини-порта должен выполнить второй (рекурсивный) вызов подпрограммы IdeHwInterrupt для обработки прерываний, предназначенных для другого канала контроллера.

Если драйверу мини-порта требуется много времени для обработки прерывания, он должен выполнить следующие действия:

  1. Закройте прерывание в HBA.
  2. Отключите прерывания в канале, указанном параметром ChannelExtension .
  3. Запросите рабочую подпрограмму с помощью AtaPortRequestWorkerRoutine.
  4. Выполните дополнительную обработку в рабочей процедуре.
  5. Включите прерывания в канале.
Из подпрограммы IdeHwInterrupt не следует вызывать следующие подпрограммы портов ATA: Однако водитель мини-порта может запросить рабочую процедуру и совершать вызовы в рабочей процедуре.

Рабочая подпрограмма должна очистить прерывание на адаптере безопасности, прежде чем она вернет значение TRUE.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть irb.h (включая Irb.h)

См. также раздел

AtaPortCompleteAllActiveRequests

AtaPortDeviceBusy

AtaPortRequestWorkerRoutine