__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
RxDereferenceAndDeleteRxContext_Real