Partager via


HW_INTERRUPT fonction de rappel (storport.h)

Le pilote Storport appelle la routine HwStorInterrupt après que l’adaptateur HBA a généré une demande d’interruption.

Syntaxe

HW_INTERRUPT HwInterrupt;

BOOLEAN HwInterrupt(
  PVOID DeviceExtension
)
{...}

Paramètres

DeviceExtension

Pointeur vers le pilote miniport par zone de stockage HBA.

Valeur retournée

Si le pilote miniport constate que son adaptateur HBA n’a pas généré l’interruption, HwStorInterrupt doit retourner FALSE dès que possible. La routine HwStorInterrupt doit retourner dans les 50 microsecondes.

Remarques

Le nom HwStorInterrupt est simplement un espace réservé. Le prototype réel de cette routine est défini dans Storport.h comme suit :

typedef
BOOLEAN
HW_INTERRUPT (
  IN PVOID  DeviceExtension
  );

La routine HwStorInterrupt doit retourner dans un délai de 50 microsecondes, idéalement aussi court que possible. Par conséquent, toutes les activités ne doivent pas avoir lieu à un IRQL élevé doivent être reportées à [HwStorDpcRoutine](nc-storport-hw_dpc_routine.md qui est défini dans le pilote miniport et émis à l’aide de StorPortIssueDpc. La latence du DPC est très faible et il sera appelé immédiatement après le retour de l’IRQL élevé.

Le pilote de port appelle la routine HwStorInterrupt dans DIRQL.

Exemples

Pour définir une fonction de rappel HwStorInterrupt , vous devez d’abord fournir une déclaration de fonction qui identifie le type de fonction de rappel que vous définissez. Windows fournit un ensemble de types de fonctions de rappel pour les pilotes. La déclaration d’une fonction à l’aide des types de fonction de rappel aide l’analyse du code pour les pilotes, le vérificateur de pilotes statique (SDV) et d’autres outils de vérification à la recherche d’erreurs. Il s’agit d’une exigence pour l’écriture de pilotes pour le système d’exploitation Windows.

Par exemple, pour définir une routine de rappel HwStorInterrupt nommée MyHwInterrupt, utilisez le type HW_INTERRUPT comme indiqué dans cet exemple de code :

HW_INTERRUPT MyHwInterrupt;

Ensuite, implémentez votre routine de rappel comme suit :

_Use_decl_annotations_
BOOLEAN
MyHwInterrupt (
  _In_ PVOID  DeviceExtension
  );
  {
      ...
  }

Le type de fonction HW_INTERRUPT est défini dans le fichier d’en-tête Storport.h. Pour identifier plus précisément les erreurs lors de l’exécution des outils d’analyse du code, veillez à ajouter l’annotation Use_decl_annotations à votre définition de fonction. L’annotation Use_decl_annotations garantit que les annotations appliquées au type de fonction HW_INTERRUPT dans le fichier d’en-tête sont utilisées. Pour plus d’informations sur la configuration requise pour les déclarations de fonction, consultez Déclaration de fonctions à l’aide de types de rôles de fonction pour les pilotes Storport. Pour plus d’informations sur Use_decl_annotations, consultez Annotating Function Behavior.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête storport.h (inclure Storport.h)
IRQL DIRQL

Voir aussi

[HwStorDpcRoutine] (nc-storport-hw_dpc_routine.md

StorPortIssueDpc