Partager via


HW_TIMER fonction de rappel (storport.h)

La routine HwStorTimer est appelée après l’intervalle spécifié lorsque le pilote de miniport appelé StorPortNotification avec RequestTimerCall spécifié pour le paramètre NotificationType .

Syntaxe

HW_TIMER HwTimer;

void HwTimer(
  PVOID DeviceExtension
)
{...}

Paramètres

DeviceExtension

Pointeur vers le pilote miniport par zone de stockage HBA.

Valeur de retour

None

Remarques

Le nom HwStorTimer est uniquement un espace réservé. Le prototype réel de cette routine est défini dans Srb.h comme suit :

typedef
VOID
HW_TIMER (
  _In_ PVOID  DeviceExtension
  );

Si le miniport opte pour la prise en charge multicanal, le verrouillage de rotation StartIo est toujours utilisé. Toutefois, si le miniport a demandé la prise en charge de plusieurs canaux via PERF_CONFIGURATION_DATA, le verrouillage de rotation StartIo n’est pas pris ou vérifié avant l’appel à HwStorStartIo dans le miniport. Cela signifie que le rappel HwStorStartIo n’est pas synchronisé avec le rappel à la routine HwStorTimer lorsque la prise en charge multicanal est utilisée. Le miniport doit le faire de son propre chef à l’aide d’un compilateur intrinsèque verrouillé, par exemple en utilisant InterlockedCompareExchange.

Une routine HwStorTimer est facultative.

Pour définir une fonction de rappel HwStorTimer , 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 permet à l’analyse du code pour les pilotes, au vérificateur de pilotes statiques (SDV) et à d’autres outils de vérification de trouver des 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 HwStorTimer nommée MyHwTimer, utilisez le type de HW_TIMER suivant et implémentez votre routine de rappel comme suit :

HW_TIMER MyHwTimer;

_Use_decl_annotations_
VOID
MyHwTimer (
  _In_ PVOID  DeviceExtension
  );
  {
      ...
  }

Le type de fonction HW_TIMER 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_TIMER 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 DISPATCH_LEVEL

Voir aussi

StorPortNotification