Compartilhar via


função __RxSynchronizeBlockingOperations (rxcontx.h)

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

Sintaxe

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

Um ponteiro para o RX_CONTEXT da operação que está sendo sincronizada.

[in] Fcb

Um ponteiro para a FCB.

[in, out] BlockingIoQ

Um ponteiro para o LIST_ENTRY da fila.

[in] DropFcbLock

Um valor booliano que indica se o recurso FCB deve ser liberado. Se esse parâmetro for VERDADEIRO, o recurso FCB será liberado.

Valor de retorno

__RxSynchronizeBlockingOperations 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 foi para uma operação assíncrona e o RxContext foi adicionado à fila.

Observações

A rotina de __RxSynchronizeBlockingOperations sincroniza o bloqueio de solicitações de E/S para a mesma fila de trabalho. O RDBSS usa __RxSynchronizeBlockingOperations 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 fcb.

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

Se RxContext estiver marcado para uma operação assíncrona, __RxSynchronizeBlockingOperations adicionará o RxContext à fila e retornará STATUS_PENDING. Se RxContext estiver marcado para uma operação síncrona, __RxSynchronizeBlockingOperations 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, __RxSynchronizeBlockingOperations retornará STATUS_CANCELLED para indicar o erro.

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

As duas macros a seguir são definidas no Windows Server 2003 ou posterior para chamar __RxSynchronizeBlockingOperations:

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

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

Requisitos

Requisito Valor
de cliente com suporte mínimo A rotina de __RxSynchronizeBlockingOperations só está disponível no Windows Server 2003.
da Plataforma de Destino Área de trabalho
cabeçalho rxcontx.h (inclua Rxcontx.h)

Consulte também

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxPrepareContextForReuse

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock