Partager via


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
  );

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

Voir aussi

KeSynchronizeExecution