IDE_HW_INTERRUPT funzione di callback (irb.h)

La routine del miniport IdeHwInterrupt gestisce gli interrupt dalla scheda bus host (HBA) a cui è connesso il controller per il driver miniport.

Nota I modelli di driver di porta ATA e miniport ATA potrebbero essere modificati o non disponibili in futuro. È invece consigliabile usare il driver Storport e i modelli di driver miniport Storport .
 

Sintassi

IDE_HW_INTERRUPT IdeHwInterrupt;

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

Parametri

[in] ChannelExtension

Puntatore all'estensione del canale.

Valore restituito

AtaHwInterrrupt restituisce TRUE se l'interrupt viene generato da uno dei canali del controller. Se un canale non ha generato l'interrupt, la routine deve restituire FALSE il più rapidamente possibile.

Commenti

La routine IdeHwInterrupt completa le operazioni di I/O basate su interrupt.

Se il canale indicato non ha generato l'interrupt, il driver miniport deve effettuare una seconda chiamata (ricorsiva) alla routine IdeHwInterrupt per gestire gli interrupt destinati all'altro canale del controller.

Se il driver miniport richiede una grande quantità di tempo per elaborare l'interrupt, deve seguire questa procedura:

  1. Ignorare l'interrupt nell'HBA.
  2. Disabilitare gli interrupt nel canale indicato dal parametro ChannelExtension .
  3. Richiedere una routine di lavoro usando AtaPortRequestWorkerRoutine.
  4. Completare l'elaborazione aggiuntiva nella routine di lavoro.
  5. Abilitare gli interrupt nel canale.
Le routine di porta ATA seguenti non devono essere chiamate dalla routine IdeHwInterrupt : Tuttavia, il driver miniport può richiedere una routine di lavoro ed effettuare chiamate nella routine di lavoro.

La routine di lavoro deve cancellare l'interrupt nell'HBA prima che restituisca TRUE.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione irb.h (include Irb.h)

Vedi anche

AtaPortCompleteAllActiveRequests

AtaPortDeviceBusy

AtaPortRequestWorkerRoutine