Compartir a través de


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 correcto 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 la RX_CONTEXT asociada.
STATUS_PENDING
El rxContext de fue para una operación asincrónica y el rxContext de se ha agregado a la cola.

Observaciones

La rutina __RxSynchronizeBlockingOperations sincroniza las solicitudes de E/S de bloqueo a 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 a la 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á el rxContext de a la cola y devolverá STATUS_PENDING. Si RxContext está marcado para una operación sincrónica, __RxSynchronizeBlockingOperations bloqueará y rxContext se reanuda cuando se realiza 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 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 al parámetro DropFcbLock establecido en FALSE.

RxSynchronizeBlockingOperationsAndDropFcbLock: llama al parámetro DropFcbLock establecido en TRUE.

Requisitos

Requisito Valor
cliente mínimo admitido La rutina __RxSynchronizeBlockingOperations solo está disponible en Windows Server 2003.
de la plataforma de destino de Escritorio
encabezado de rxcontx.h (incluya Rxcontx.h)

Consulte también

RxCompleteRequest_Real

RxCreateRxContext

de RxDereference

RxDereferenceAndDeleteRxContext_Real

rxInitializeContext

RxPrepareContextForReuse

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock