IDE_HW_INTERRUPT función de devolución de llamada (irb.h)

La rutina del controlador ideHwInterrupt miniport controla las interrupciones del adaptador de bus host (HBA) al que está conectado el controlador para el controlador de minipuerto.

Nota Los modelos de controlador de puerto ATA y controlador de minipuerto de ATA pueden modificarse o no estar disponibles en el futuro. En su lugar, se recomienda usar los modelos del controlador Storport y del controlador storport miniport .
 

Sintaxis

IDE_HW_INTERRUPT IdeHwInterrupt;

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

Parámetros

[in] ChannelExtension

Puntero a la extensión de canal.

Valor devuelto

AtaHwInterrrupt devuelve TRUE si uno de los canales del controlador genera la interrupción. Si un canal no genera la interrupción, la rutina debe devolver FALSE lo antes posible.

Comentarios

La rutina IdeHwInterrupt completa las operaciones de E/S controladas por interrupciones.

Si el canal indicado no genera la interrupción, el controlador de minipuerto debe realizar una segunda llamada (recursiva) a la rutina IdeHwInterrupt para controlar las interrupciones destinadas al otro canal del controlador.

Si el controlador de minipuerto requiere una gran cantidad de tiempo para procesar la interrupción, debe seguir estos pasos:

  1. Descarte la interrupción en el HBA.
  2. Deshabilite las interrupciones en el canal indicado por el parámetro ChannelExtension .
  3. Solicite una rutina de trabajo mediante AtaPortRequestWorkerRoutine.
  4. Complete el procesamiento adicional en la rutina de trabajo.
  5. Habilite las interrupciones en el canal.
No se debe llamar a las siguientes rutinas de puerto de ATA desde la rutina IdeHwInterrupt : Sin embargo, el controlador de minipuerto puede solicitar una rutina de trabajo y realizar llamadas en la rutina de trabajo.

La rutina de trabajo debe borrar la interrupción en el HBA antes de que devuelva TRUE.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado irb.h (incluir Irb.h)

Consulte también

AtaPortCompleteAllActiveRequests

AtaPortDeviceBusy

AtaPortRequestWorkerRoutine