Condividi tramite


IDE_HW_INTERRUPT funzione di callback (irb.h)

Il IdeHwInterrupt routine del driver miniport 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 driver Storport e 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.

Osservazioni

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, è necessario seguire questa procedura:

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

La routine di lavoro deve cancellare l'interrupt sull'HBA prima di restituire TRUE.

Fabbisogno

Requisito Valore
piattaforma di destinazione Desktop
intestazione irb.h (include Irb.h)

Vedere anche

AtaPortCompleteAllActiveRequests

AtaPortDeviceBusy

AtaPortRequestWorkerRoutine