Partager via


IDE_HW_INTERRUPT fonction de rappel (irb.h)

La routine du pilote miniport IdeHwInterrupt gère les interruptions de l’adaptateur de bus hôte (HBA) auquel le contrôleur du pilote miniport est connecté.

Note Les modèles de pilote de port ATA et de pilote miniport ATA peuvent être modifiés ou indisponibles à l’avenir. Au lieu de cela, nous vous recommandons d’utiliser les modèles de pilote Storport et de pilote miniport Storport .
 

Syntaxe

IDE_HW_INTERRUPT IdeHwInterrupt;

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

Paramètres

[in] ChannelExtension

Pointeur vers l’extension de canal.

Valeur retournée

AtaHwInterrrupt retourne TRUE si l’interruption est générée par l’un des canaux du contrôleur. Si un canal n’a pas généré l’interruption, la routine doit retourner FALSE aussi rapidement que possible.

Remarques

La routine IdeHwInterrupt effectue des opérations d’E/S pilotées par interruption.

Si le canal indiqué n’a pas généré l’interruption, le pilote miniport doit effectuer un deuxième appel (récursif) à la routine IdeHwInterrupt pour gérer les interruptions destinées à l’autre canal du contrôleur.

Si le pilote miniport nécessite beaucoup de temps pour traiter l’interruption, il doit suivre les étapes suivantes :

  1. Ignorez l’interruption sur l’adaptateur HBA.
  2. Désactivez les interruptions sur le canal indiqué par le paramètre ChannelExtension .
  3. Demandez une routine worker à l’aide d’AtaPortRequestWorkerRoutine.
  4. Effectuez un traitement supplémentaire dans la routine worker.
  5. Activez les interruptions sur le canal.
Les routines de port ATA suivantes ne doivent pas être appelées à partir de la routine IdeHwInterrupt : Toutefois, le pilote miniport peut demander une routine worker et effectuer des appels dans la routine worker.

La routine de travail doit effacer l’interruption sur l’adaptateur HBA avant de retourner TRUE.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête irb.h (include Irb.h)

Voir aussi

AtaPortCompleteAllActiveRequests

AtaPortDeviceBusy

AtaPortRequestWorkerRoutine