__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock función

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock sincroniza el bloqueo de solicitudes de E/S en la misma cola de trabajo.

Sintaxis

NTSTATUS __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock(
  _Inout_ PRX_CONTEXT RxContext,
  _Inout_ PLIST_ENTRY BlockingIoQ,
  _In_    BOOLEAN     DropFcbLock
);

Parámetros

RxContext [in, out]
Puntero al RX_CONTEXT de la operación que se está sincronizando.

BlockingIoQ [in, out]
Puntero al LIST_ENTRY de la cola.

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

Valor devuelto

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock 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 de __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock sincroniza el bloqueo de solicitudes de E/S en la misma cola de trabajo. RDBSS usa __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock 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 miembro pFcb de la estructura RX_CONTEXT a la que apunta RxContext.

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

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

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

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

Las dos macros siguientes se definen en Windows XP y Windows 2000 para llamar a __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock :

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

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

Requisitos

Plataforma de destino

Escritorio

Versión

La rutina de __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock solo está disponible en Windows XP y Windows 2000.

Encabezado

Rxcontx.h (incluir Rxcontx.h)

Consulte también

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxPrepareContextForReuse

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperations