__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock fonction
__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock synchronise les demandes d’E/S bloquantes dans la même file d’attente de travail.
Syntaxe
NTSTATUS __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock(
_Inout_ PRX_CONTEXT RxContext,
_Inout_ PLIST_ENTRY BlockingIoQ,
_In_ BOOLEAN DropFcbLock
);
Paramètres
RxContext [in, out]
Pointeur vers le RX_CONTEXT de l’opération en cours de synchronisation.
BlockingIoQ [in, out]
Pointeur vers le LIST_ENTRY de la file d’attente.
DropFcbLock [in]
Valeur booléenne qui indique si la ressource FCB doit être libérée. Si ce paramètre a la valeur TRUE, la ressource FCB est libérée.
Valeur retournée
__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock retourne STATUS_SUCCESS sur la réussite ou une valeur NTSTATUS appropriée, telle que l’une des suivantes :
Code de retour | Description |
---|---|
STATUS_CANCELLED | La demande d’E/S et le RX_CONTEXT associé ont été annulés. |
STATUS_PENDING | Le RxContext était destiné à une opération asynchrone et le RxContext a été ajouté à la file d’attente. |
Remarques
La routine __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock synchronise les demandes d’E/S bloquantes dans la même file d’attente de travail. RDBSS utilise __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock en interne pour synchroniser les opérations de canal nommé. La file d’attente de travail est la file d’attente référencée par l’extension d’objet de fichier (FOBX) associée au membre pFcb de la structure RX_CONTEXT pointée par RxContext.
Un mini-redirecteur réseau peut utiliser __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock pour synchroniser les opérations sur une file d’attente distincte gérée par le mini-redirecteur réseau.
Si RxContext est marqué pour une opération asynchrone, __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock ajoutera rxContext à la file d’attente et retournera STATUS_PENDING. Si RxContext est marqué pour une opération synchrone, __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock se bloque et RxContext reprend lorsqu’un appel est effectué pour RxResumeBlockedOperations_Serially.
Si la demande d’E/S bloquante a été annulée, __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock retourne STATUS_CANCELLED pour indiquer l’erreur.
Le membre SyncEvent de la structure RX_CONTEXT pointée par RxContext doit avoir été réinitialisé avant d’appeler __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock. La ressource FCB doit être verrouillée avant d’appeler __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock si le paramètre DropFcbLock a la valeur TRUE.
Les deux macros suivantes sont définies sur Windows XP et Windows 2000 pour appeler __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock :
RxSynchronizeBlockingOperations : appelle avec le paramètre DropFcbLock défini sur FALSE.
RxSynchronizeBlockingOperationsAndDropFcbLock : appelle avec le paramètre DropFcbLock défini sur TRUE.
Configuration requise
Plateforme cible |
Desktop (Expérience utilisateur) |
Version |
La routine __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock est disponible uniquement sur Windows XP et Windows 2000. |
En-tête |
Rxcontx.h (inclure Rxcontx.h) |
Voir aussi
RxDereferenceAndDeleteRxContext_Real