Routines 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 storport miniport sont dans la plupart des cas équivalentes à leurs équivalents de port SCSI (voir Routines de pilotes SCSI Miniport pour plus d’informations). Toutefois, il existe des différences importantes entre la conception du pilote de port SCSI et celle du pilote Storport, et ces routines doivent prendre en charge ces différences.

Par exemple, 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 signale explicitement le pilote de port, à l’aide de la fonction StorPortNotification , qu’elle est prête à gérer une autre requête.

Si la version Storport du pilote miniport ne peut pas gérer une demande au moment où elle est envoyée, 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 traiter 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 de l’appareil comme étant occupée à l’aide de la routine StorPortDeviceBusy . Les 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 les 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 par un message (MSI).
HW_ADAPTER_CONTROL Effectue des opérations synchrones pour contrôler l’état ou le comportement d’une carte, telles que 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 différée pour l’exécution à DISPATCH IRQL par le biais du mécanisme d’appel de procédure différé (DPC).
HW_FIND_ADAPTER Utilise la configuration fournie pour déterminer si un HBA spécifique est pris en charge et, le cas échéant, pour retourner des informations de configuration sur cet adaptateur.
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 la génération d’une demande d’interruption.
HW_PASSIVE_INITIALIZE_ROUTINE Appelé après la routine HwStorInitialize lorsque le runtime d’intégration 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 requête d’E/S entrante.
HW_TIMER Appelé après l’intervalle spécifié lorsque le pilote miniport appelé StorPortNotification avec la valeur RequestTimerCall NotificationType.
HW_TRACING_ENABLED Permet à Storport d’avertir 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 de l’appareil 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 miniport fournie 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 Enregistre un événement de télémétrie miniport pour diagnostiquer ou collecter des informations utiles. Le miniport peut consigner huit paires nom-valeur à usage général et une mémoire tampon dont la longueur maximale est de 4 Ko, ainsi que plusieurs champs liés à l’événement définis dans la structure STORPORT_TELEMETRY_EVENT.