Partager via


fonction __RxSynchronizeBlockingOperations (rxcontx.h)

__RxSynchronizeBlockingOperations synchronise le blocage des demandes d’E/S dans la même file d’attente de travail.

Syntaxe

NTSTATUS __RxSynchronizeBlockingOperations(
  [in, out] IN OUT PRX_CONTEXT RxContext,
  [in]      IN PFCB            Fcb,
  [in, out] IN OUT PLIST_ENTRY BlockingIoQ,
  [in]      IN BOOLEAN         DropFcbLock
);

Paramètres

[in, out] RxContext

Pointeur vers le RX_CONTEXT de l’opération en cours de synchronisation.

[in] Fcb

Pointeur vers le FCB.

[in, out] BlockingIoQ

Pointeur vers le LIST_ENTRY de la file d’attente.

[in] DropFcbLock

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

__RxSynchronizeBlockingOperations retourne STATUS_SUCCESS sur la réussite ou une valeur NTSTATUS appropriée, par exemple :

Code de retour Description
STATUS_CANCELLED
La demande d’E/S et la RX_CONTEXT associée ont été annulées.
STATUS_PENDING
Le RxContext était destiné à une opération asynchrone et le RxContext a été ajouté à la file d’attente.

Remarques

La routine __RxSynchronizeBlockingOperations synchronise les demandes d’E/S bloquantes dans la même file d’attente de travail. RDBSS utilise __RxSynchronizeBlockingOperations 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 Fcb.

Un mini-redirecteur réseau peut utiliser __RxSynchronizeBlockingOperations 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, __RxSynchronizeBlockingOperations ajoutera rxContext à la file d’attente et retournera STATUS_PENDING. Si RxContext est marqué pour une opération synchrone, __RxSynchronizeBlockingOperations se bloque et RxContext reprend lorsqu’un appel est effectué pour RxResumeBlockedOperations_Serially.

Si la demande d’E/S bloquante a été annulée, __RxSynchronizeBlockingOperations 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 __RxSynchronizeBlockingOperations. La ressource FCB doit être verrouillée avant d’appeler __RxSynchronizeBlockingOperations si le paramètre DropFcbLock a la valeur TRUE.

Les deux macros suivantes sont définies sur Windows Server 2003 ou version ultérieure pour appeler __RxSynchronizeBlockingOperations :

RxSynchronizeBlockingOperations : appels avec le paramètre DropFcbLock défini sur FALSE.

RxSynchronizeBlockingOperationsAndDropFcbLock : appelle avec le paramètre DropFcbLock défini sur TRUE.

Configuration requise

Condition requise Valeur
Client minimal pris en charge La routine __RxSynchronizeBlockingOperations est disponible uniquement sur Windows Server 2003.
Plateforme cible Desktop (Expérience utilisateur)
En-tête rxcontx.h (inclure Rxcontx.h)

Voir aussi

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxPrepareContextForReuse

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock