Partager via


fonction __RxSynchronizeBlockingOperations (rxcontx.h)

__RxSynchronizeBlockingOperations synchronise les demandes d’E/S bloquantes sur 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 la RX_CONTEXT de l’opération en cours de synchronisation.

[in] Fcb

Pointeur vers le FCB.

[in, out] BlockingIoQ

Pointeur vers la 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 est TRUE, la ressource FCB est libérée.

Valeur de retour

__RxSynchronizeBlockingOperations retourne STATUS_SUCCESS sur la réussite ou une valeur NTSTATUS appropriée, par exemple l’une des valeurs suivantes :

Retourner le code 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 __RxSynchronizeBlockingOperations synchronise les demandes d’E/S bloquantes sur 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 le RxContext à la file d’attente et retournera STATUS_PENDING. Si rxContext est marqué pour une opération synchrone, __RxSynchronizeBlockingOperations bloque et RxContext est repris lorsqu’un appel est effectué à 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 est défini sur 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 - les appels avec le paramètre DropFcbLock défini sur TRUE.

Exigences

Exigence Valeur
client minimum pris en charge La routine __RxSynchronizeBlockingOperations est disponible uniquement sur Windows Server 2003.
plateforme cible Bureau
d’en-tête rxcontx.h (include Rxcontx.h)

Voir aussi

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxPrepareContextForReuse

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock