HW_PASSIVE_INITIALIZE_ROUTINE fonction de rappel (storport.h)

La routine de rappel HwStorPassiveInitializeRoutine est appelée après la routine HwStorInitialize lorsque l’IRQL actuel est à PASSIVE_LEVEL. Le rappel HwStorPassiveInitializeRoutine est défini en appelant la routine StorPortEnablePassiveInitialization . L’initialisation des appels de procédure différée du miniport se produit dans le rappel HwStorPassiveInitializeRoutine .

Syntaxe

HW_PASSIVE_INITIALIZE_ROUTINE HwPassiveInitializeRoutine;

BOOLEAN HwPassiveInitializeRoutine(
  PVOID DeviceExtension
)
{...}

Paramètres

DeviceExtension

Valeur retournée

La routine HwStorPassiveInitializeRoutine retourne TRUE si le miniport a correctement initialisé le traitement des PDC, ou FALSE si le processus d’initialisation a échoué.

Remarques

La routine HwStorPassiveInitializeRoutine doit initialiser tous les PDC que le pilote miniport utilisera. Le pilote de port appelle HwStorPassiveInitializeRoutine à PASSIVE_LEVEL sans verrous de rotation. Les interruptions sont activées pendant l’appel de cette routine.

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

typedef
BOOLEAN
(*PHW_PASSIVE_INITIALIZE_ROUTINE) (
  _In_ PVOID DeviceExtension
  );

Le pilote de port appelle la routine HwStorPassiveInitializeRoutine à PASSIVE IRQL sans acquérir de verrous de rotation.

Exemples

Pour définir une fonction de rappel HwStorPassiveInitializeRoutine , 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 HwStorPassiveInitializeRoutine nommée MyHwPassiveInitialize, utilisez le type HW_PASSIVE_INITIALIZE_ROUTINE comme indiqué dans cet exemple de code :

HW_PASSIVE_INITIALIZE_ROUTINE MyHwPassiveInitialize;

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

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

Le type de fonction HW_PASSIVE_INITIALIZE_ROUTINE 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_PASSIVE_INITIALIZE_ROUTINE 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 PASSIVE_LEVEL (voir la section Remarques).)

Voir aussi

HwStorInitialize

StorPortEnablePassiveInitialization