Routines du pilote miniport Storport
Un pilote miniport qui fonctionne avec le pilote Storport doit contenir des implémentations des descriptions de routines listées dans cette section, et il doit les exposer via une structure HW_INITIALIZATION_DATA lors de la phase d’initialisation du pilote miniport.
Les routines du pilote miniport Storport sont à bien des égards équivalentes à leurs homologues du port SCSI. Cependant, il existe des différences importantes entre la conception du pilote de port SCSI et celle du pilote Storport, et les routines miniport doivent prendre en compte ces différences.
Exemple :
- Un pilote miniport Storport doit toujours être prêt à recevoir une nouvelle demande d’E/S après que sa routine HwStorStartIo est terminée.
- Un pilote miniport SCSI n’a pas cette exigence. Il ne reçoit pas une nouvelle demande d’E/S avant de signaler explicitement au pilote de port qu’il peut gérer une autre demande en appelant StorPortNotification.
Si le pilote miniport Storport ne peut pas traiter immédiatement une demande soumise, il dispose d’un ensemble de fonctions de gestion de file d’attente qui lui permettent de gérer la surcharge. Ces fonctions de gestion de file d’attente ne sont pas disponibles pour le pilote miniport SCSI. Comme le pilote miniport SCSI, le pilote miniport Storport termine la demande avec SRB_STATUS_BUSY. Mais contrairement à la version du port SCSI, il peut également marquer la file d’attente de l’appareil comme occupée en utilisant la routine StorPortDeviceBusy. Des fonctions similaires permettent au pilote miniport Storport de suspendre et de reprendre le traitement sur l’ensemble d’un adaptateur.
Pour plus d’informations sur les routines de support fournies par le pilote Storport, veuillez consulter la section Routines de support du pilote Storport.
Pour plus d’informations sur le pilote Storport, veuillez consulter la section Pilotes de port de stockage.
Liste des routines du pilote miniport Storport
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’un adaptateur, comme arrêter ou redémarrer le HBA pour la gestion de l’alimentation. |
HW_BUILDIO | Traite le SRB avec un accès non synchronisé aux structures de données partagées du système avant de le passer à HwStorStartIo. |
HW_DPC_ROUTINE | Routine différée pour exécution au niveau IRQL DISPATCH avec le mécanisme d’appel de procédure différée (DPC). |
HW_FIND_ADAPTER | Utilise la configuration fournie pour déterminer si un HBA spécifique est pris en charge et, si c’est le cas, pour renvoyer des informations de configuration sur cet adaptateur. |
HW_INITIALIZE | Initialise le pilote miniport après un redémarrage du système ou une panne de courant. |
HW_INTERRUPT | Le pilote Storport appelle la routine HwStorInterrupt après que le HBA génère une demande d’interruption. |
HW_PASSIVE_INITIALIZE_ROUTINE | Appelée après la routine HwStorInitialize lorsque le niveau IRQL actuel est à PASSIVE_LEVEL. |
HW_RESET_BUS | Appelée 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ée après l’intervalle spécifié lorsque le pilote miniport a appelé StorPortNotification avec la valeur RequestTimerCall NotificationType. |
HW_TRACING_ENABLED | Permet à Storport de notifier à un miniport que la traçabilité des événements est activée. |
HW_UNIT_CONTROL | Appelée pour effectuer des opérations synchrones afin de contrôler l’état de l’appareil de l’unité de stockage. Le pilote miniport est notifié pour démarrer une unité ou gérer une transition d’état d’alimentation pour un appareil de l’unité. |
HW_WORKITEM | Fonction de rappel fournie par le miniport pour traiter une demande d’élément de travail Storport. |