Routines de miniport du pilote Storport

Un pilote miniport qui fonctionne avec le pilote Storport doit contenir des implémentations des descriptions de routine répertoriées dans cette section, et il doit les exposer via une structure HW_INITIALIZATION_DATA pendant la phase d’initialisation du pilote miniport.

Les routines de pilotes de miniport Storport sont à la plupart des égards équivalentes à leurs équivalents de port SCSI (pour plus d’informations, consultez Routines des pilotes miniports SCSI ). Toutefois, il existe des différences importantes entre la conception du pilote de port SCSI et celle du pilote Storport, et ces routines doivent tenir compte de ces différences.

Par instance, les pilotes miniport qui fonctionnent avec le pilote Storport doivent toujours être prêts à recevoir une autre demande d’E/S une fois la routine HwStorStartIo terminée. Un pilote miniport qui fonctionne avec le port SCSI n’est pas nécessaire pour ce faire. La version du port SCSI ne reçoit pas de nouvelle requête d’E/S tant qu’elle n’indique pas explicitement au pilote de port, à l’aide de la fonction StorPortNotification , qu’il est prêt à gérer une autre requête.

Si la version Storport du pilote miniport ne peut pas gérer une requête au moment de son envoi, elle dispose d’un ensemble de fonctions de gestion de file d’attente, non disponibles pour la version du port SCSI, qui lui permettent de gérer la surcharge. Comme la version du port SCSI, la version Storport du pilote miniport termine la requête avec SRB_STATUS_BUSY, mais contrairement à la version du port SCSI, elle peut également marquer la file d’attente d’appareils comme occupée à l’aide de la routine StorPortDeviceBusy . Des fonctions similaires permettent au pilote miniport de suspendre et de reprendre le traitement à l’échelle de l’adaptateur.

Pour plus d’informations sur les routines de support fournies par le pilote Storport, consultez Routines de prise en charge des pilotes Storport.

Pour plus d’informations sur le pilote Storport, consultez Pilotes de port de stockage.

Voici les routines de pilotes miniport :

Routine Description
HW_MESSAGE_SIGNALED_INTERRUPT_ROUTINE Gère une interruption signalée de message (MSI).
HW_ADAPTER_CONTROL Effectue des opérations synchrones pour contrôler l’état ou le comportement d’un adaptateur, comme l’arrêt ou le redémarrage de l’adaptateur HBA pour la gestion de l’alimentation.
HW_BUILDIO Traite le SRB avec un accès non synchronisé aux structures de données système partagées avant de le transmettre à HwStorStartIo.
HW_DPC_ROUTINE Routine dont l’exécution est différée sur DISPATCH IRQL au moyen du mécanisme d’appel de procédure différée (DPC).
HW_FIND_ADAPTER Utilise la configuration fournie pour déterminer si un adaptateur HBA spécifique est pris en charge et, le cas échéant, pour retourner des informations de configuration sur cette carte.
HW_INITIALIZE Initialise le pilote miniport après un redémarrage du système ou une panne d’alimentation.
HW_INTERRUPT Le pilote Storport appelle la routine HwStorInterrupt après que l’adaptateur HBA a généré une demande d’interruption.
HW_PASSIVE_INITIALIZE_ROUTINE Appelée après la routine HwStorInitialize lorsque l’IRQL actuel est à PASSIVE_LEVEL.
HW_RESET_BUS Appelé par le pilote de port pour effacer les conditions d’erreur.
HW_STARTIO Le pilote Storport appelle la routine HwStorStartIo une fois pour chaque demande d’E/S entrante.
HW_TIMER Appelé après l’intervalle spécifié lorsque le pilote miniport appelé StorPortNotification avec la valeur RequestTimerCallNotificationType .
HW_TRACING_ENABLED Permet à Storport d’informer un miniport que le suivi d’événements est activé.
HW_UNIT_CONTROL Appelé pour effectuer des opérations synchrones pour contrôler l’état du périphérique d’unité de stockage. Le pilote miniport est averti de démarrer une unité ou de gérer une transition d’état d’alimentation pour un appareil unitaire.
HW_WORKITEM Fonction de rappel fournie par miniport pour le traitement d’une demande d’élément de travail Storport.
STORPORT_TELEMETRY_EVENT Décrit la charge utile des données de télémétrie miniport.
StorPortLogTelemetry Consigne un événement de télémétrie miniport pour faciliter le diagnostic ou la collecte d’informations utiles. Le miniport peut enregistrer huit paires nom-valeur à usage général et une mémoire tampon d’une longueur maximale de 4 Ko, ainsi que plusieurs champs liés aux événements définis dans la structure STORPORT_TELEMETRY_EVENT.