StorPortSynchronizeAccess, fonction (storport.h)
La routine StorPortSynchronizeAccess fournit un accès synchronisé à l’extension de périphérique d’un pilote miniport.
Syntaxe
STORPORT_API BOOLEAN StorPortSynchronizeAccess(
[in] PVOID HwDeviceExtension,
[in] PSTOR_SYNCHRONIZED_ACCESS SynchronizedAccessRoutine,
[in, optional] PVOID Context
);
Paramètres
[in] HwDeviceExtension
Pointeur vers l’extension de périphérique matériel. Il s’agit d’une zone de stockage par HBA que le pilote de port alloue et initialise pour le compte du pilote miniport. Les pilotes Miniport stockent généralement des informations spécifiques à HBA dans cette extension, telles que l’état du HBA et les plages d’accès mappées pour l’adaptateur HBA. Cette zone est disponible pour le pilote miniport immédiatement après que le pilote miniport appelle StorPortInitialize. Le pilote de port libère cette mémoire lorsqu’il supprime l’appareil.
[in] SynchronizedAccessRoutine
Pointeur vers une routine fournie par l’appelant dont l’exécution doit être synchronisée avec l’exécution de l’ISR associé aux objets d’interruption. Pour obtenir un prototype de cette routine, consultez la section Remarques plus loin dans cette rubrique.
[in, optional] Context
Pointeur vers une zone de contexte à passer à la routine de rappel fournie par l’appelant lorsqu’elle est appelée.
Valeur retournée
Valeur de retour de SynchronizedAccessRoutine.
Remarques
Les pilotes miniport qui fonctionnent en mode duplex intégral et qui accèdent aux informations partagées entre leur routine HwStorStartIo et leur routine de service d’interruption doivent utiliser cette routine pour accéder aux données partagées de manière synchronisée.
Le pilote miniport transmet une routine de rappel à StorPortSynchronizeAccess, et StorPortSynchronizeAccess l’appelle après avoir garanti un accès exclusif aux structures de données sensibles. La routine de rappel du pilote miniport doit être conforme au prototype suivant :
typedef
BOOLEAN
(* PSTOR_SYNCHRONIZED_ACCESS) (
IN PVOID HwDeviceExtension,
IN PVOID Context
);
où HwDeviceExtension est un pointeur vers l’extension de périphérique matériel, et Context est simplement un pointeur vers les mêmes informations de contexte que celles fournies par l’appelant lors de l’appel de StorPortSynchronizeAccess.
Pour plus d’informations, consultez Accès synchronisé dans les routines des pilotes Miniport non synchronisés.
Pour plus d’informations sur les routines de synchronisation, consultez KeSynchronizeExecution.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | storport.h (inclure Storport.h) |
Bibliothèque | Storport.lib |