Compartilhar via


Função __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock sincroniza o bloqueio de solicitações de E/S para a mesma fila de trabalho.

Sintaxe

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

Parâmetros

RxContext [in, out]
Um ponteiro para o RX_CONTEXT da operação que está sendo sincronizada.

BlockingIoQ [in, out]
Um ponteiro para o LIST_ENTRY da fila.

DropFcbLock [in]
Um valor booliano que indica se o recurso FCB deve ser liberado. Se esse parâmetro for TRUE, o recurso FCB será liberado.

Retornar valor

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock retorna STATUS_SUCCESS com êxito ou um valor NTSTATUS apropriado, como um dos seguintes:

Código de retorno Descrição
STATUS_CANCELLED

A solicitação de E/S e a RX_CONTEXT associada foram canceladas.

STATUS_PENDING

O RxContext era para uma operação assíncrona e o RxContext foi adicionado à fila.

Comentários

A rotina de __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock sincroniza o bloqueio de solicitações de E/S para a mesma fila de trabalho. O RDBSS usa __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock internamente para sincronizar operações de pipe nomeadas. A fila de trabalho é a fila referenciada pela FOBX (extensão de objeto de arquivo) associada ao membro pFcb da estrutura RX_CONTEXT apontada por RxContext.

Um minidiretório de rede pode usar __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock para sincronizar operações em uma fila separada mantida pelo minidiretório de rede.

Se RxContext estiver marcado para uma operação assíncrona, __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock adicionará o RxContext à fila e retornará STATUS_PENDING. Se RxContext estiver marcado para uma operação síncrona, __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock bloqueará e RxContext será retomado quando uma chamada for feita para RxResumeBlockedOperations_Serially.

Se a solicitação de E/S de bloqueio tiver sido cancelada, __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock retornará STATUS_CANCELLED para indicar o erro.

O membro SyncEvent da estrutura RX_CONTEXT apontada por RxContext deve ter sido redefinido antes de chamar __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock. O recurso FCB deve ser bloqueado antes de chamar __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock se o parâmetro DropFcbLock estiver definido como TRUE.

As duas macros a seguir são definidas no Windows XP e no Windows 2000 para chamar __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock :

RxSynchronizeBlockingOperations – chamadas com o parâmetro DropFcbLock definido como FALSE.

RxSynchronizeBlockingOperationsAndDropFcbLock – chamadas com o parâmetro DropFcbLock definido como TRUE.

Requisitos

Plataforma de destino

Área de Trabalho

Versão

A rotina de __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock só está disponível no Windows XP e no Windows 2000.

parâmetro

Rxcontx.h (inclua Rxcontx.h)

Confira também

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxPrepareContextForReuse

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperations