función __RxSynchronizeBlockingOperations (rxcontx.h)

__RxSynchronizeBlockingOperations sincroniza las solicitudes de E/S de bloqueo en la misma cola de trabajo.

Sintaxis

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

Parámetros

[in, out] RxContext

Puntero al RX_CONTEXT de la operación que se está sincronizando.

[in] Fcb

Puntero al FCB.

[in, out] BlockingIoQ

Puntero al LIST_ENTRY de la cola.

[in] DropFcbLock

Valor booleano que indica si se debe liberar el recurso FCB. Si este parámetro es TRUE, se liberará el recurso FCB.

Valor devuelto

__RxSynchronizeBlockingOperations devuelve STATUS_SUCCESS si se ejecuta correctamente o un valor NTSTATUS adecuado, como uno de los siguientes:

Código devuelto Descripción
STATUS_CANCELLED
Se canceló la solicitud de E/S y el RX_CONTEXT asociado.
STATUS_PENDING
RxContext fue para una operación asincrónica y RxContext se ha agregado a la cola.

Comentarios

La rutina __RxSynchronizeBlockingOperations sincroniza el bloqueo de solicitudes de E/S en la misma cola de trabajo. RDBSS usa __RxSynchronizeBlockingOperations internamente para sincronizar las operaciones de canalización con nombre. La cola de trabajo es la cola a la que hace referencia la extensión de objeto de archivo ( FOBX) asociada al fcb.

Un minidirector de red puede usar __RxSynchronizeBlockingOperations para sincronizar las operaciones en una cola independiente que mantiene el minidirector de red.

Si RxContext está marcado para una operación asincrónica, __RxSynchronizeBlockingOperations agregará RxContext a la cola y devolverá STATUS_PENDING. Si RxContext está marcado para una operación sincrónica, __RxSynchronizeBlockingOperations bloqueará y RxContext se reanudará cuando se realice una llamada a RxResumeBlockedOperations_Serially.

Si se canceló la solicitud de E/S de bloqueo, __RxSynchronizeBlockingOperations devuelve STATUS_CANCELLED para indicar el error.

El miembro SyncEvent de la estructura RX_CONTEXT a la que apunta RxContext debe haberse restablecido antes de llamar a __RxSynchronizeBlockingOperations. El recurso FCB debe bloquearse antes de llamar a __RxSynchronizeBlockingOperations si el parámetro DropFcbLock está establecido en TRUE.

Las dos macros siguientes se definen en Windows Server 2003 o posterior para llamar a __RxSynchronizeBlockingOperations:

RxSynchronizeBlockingOperations : llama a con el parámetro DropFcbLock establecido en FALSE.

RxSynchronizeBlockingOperationsAndDropFcbLock : llama a con el parámetro DropFcbLock establecido en TRUE.

Requisitos

Requisito Value
Cliente mínimo compatible La rutina de __RxSynchronizeBlockingOperations solo está disponible en Windows Server 2003.
Plataforma de destino Escritorio
Encabezado rxcontx.h (include Rxcontx.h)

Consulte también

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxPrepareContextForReuse

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock