Synchronisation des ressources FCB
Les ressources de synchronisation qui intéressent les pilotes de mini-redirecteur sont principalement associées au FCB. Il existe une ressource d’E/S de pagination et une ressource régulière. La ressource d’E/S de pagination est gérée en interne par RDBSS. La seule ressource accessible aux pilotes de mini-redirecteur est la ressource régulière, qui doit être accessible à l’aide des routines fournies suivantes :
Routine | Description |
---|---|
Cette routine acquiert la ressource FCB en mode exclusif. Cette routine attend que la ressource FCB soit gratuite si elle a été précédemment acquise ; cette routine ne retourne pas le contrôle tant que la ressource exclusive n’a pas été acquise. Cette routine acquiert la ressource FCB même si la structure RX_CONTEXT associée à ce FCB a été annulée. |
|
Cette routine acquiert la ressource FCB en mode partagé. Cette routine attendra que la ressource FCB soit gratuite si elle a été acquise auparavant exclusivement ; cette routine ne retourne pas le contrôle tant que la ressource partagée n’a pas été acquise. Cette routine acquiert la ressource FCB même si la structure RX_CONTEXT associée à ce FCB a été annulée. |
|
RxAcquireSharedFcbResourceInMRxEx | Cette routine acquiert la ressource FCB en mode partagé. Cette routine attendra que la ressource FCB soit gratuite si elle a été acquise auparavant exclusivement ; cette routine ne retourne pas le contrôle tant que la ressource partagée n’a pas été acquise. Cette routine acquiert la ressource FCB même si la structure RX_CONTEXT associée à ce FCB a été annulée. Cette routine est disponible uniquement sur Windows Server 2003 Service Pack 1 (SP1) et versions ultérieures. |
RxReleaseFcbResourceForThreadInMRx | Cette routine libère la ressource FCB précédemment acquise à l’aide de RxAcquireSharedFcbResourceInMRxEx. Cette routine est disponible uniquement sur Windows Server 2003 Service Pack 1 et versions ultérieures. |
Cette routine libère la ressource FCB précédemment acquise à l’aide de RxAcquireExclusiveFcbResourceInMRx ou RxAcquireSharedFcbResourceInMRx. |
Les macros suivantes sont définies dans le fichier d’en-tête rxprocs.h pour déterminer si le thread actuel a accès à la ressource régulière FCB.
Macro | Description |
---|---|
RxFcbAcquiredShared (RXCONTEXT, FCB) |
Cette macro vérifie si le thread actuel a accès à la ressource régulière en mode partagé. Cette macro appelle la routine ExIsResourceAcquiredSharedLite . |
RxIsFcbAcquiredShared (FCB) |
Cette macro vérifie si le thread actuel a accès à la ressource régulière en mode partagé. Cette macro appelle la routine ExIsResourceAcquiredSharedLite . |
RxIsFcbAcquiredExclusive (FCB) |
Cette macro vérifie si le thread actuel a accès à la ressource régulière en mode exclusif. Cette macro appelle la routine ExIsResourceAcquiredExclusiveLite . |
RxIsFcbAcquired (FCB) |
Cette macro vérifie si le thread actuel a accès à la ressource régulière en mode partagé ou exclusif. Cette macro appelle la routine ExIsResourceAcquiredSharedLite et ExIsResourceAcquiredExclusiveLite . |