funzione __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock sincronizza il blocco delle richieste di I/O nella stessa coda di lavoro.

Sintassi

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

Parametri

RxContext [in, out]
Puntatore alla RX_CONTEXT dell'operazione sincronizzata.

BloccoIoQ [in, out]
Puntatore alla LIST_ENTRY per la coda.

DropFcbLock [in]
Valore booleano che indica se la risorsa FCB deve essere rilasciata. Se questo parametro è TRUE, verrà rilasciata la risorsa FCB.

Valore restituito

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock restituisce STATUS_SUCCESS in caso di esito positivo o di un valore NTSTATUS appropriato, ad esempio uno dei seguenti:

Codice restituito Descrizione
STATUS_CANCELLED

La richiesta di I/O e la RX_CONTEXT associata è stata annullata.

STATUS_PENDING

RxContext è stato per un'operazione asincrona e rxContext è stato aggiunto alla coda.

Commenti

La routine __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock sincronizza il blocco delle richieste di I/O nella stessa coda di lavoro. RDBSS usa __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock internamente per sincronizzare le operazioni denominate pipe. La coda di lavoro è la coda a cui fa riferimento l'estensione dell'oggetto file (FOBX) associata al membro pFcb della struttura RX_CONTEXT puntata da RxContext.

Un mini-reindirizzamento di rete può usare __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock per sincronizzare le operazioni in una coda separata gestita dal mini-reindirizzamento della rete.

Se RxContext è contrassegnato per un'operazione asincrona, __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock aggiungerà RxContext alla coda e restituirà STATUS_PENDING. Se RxContext è contrassegnato per un'operazione sincrona, __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock blocca e RxContext viene ripreso quando viene eseguita una chiamata a RxResumeBlockedOperations_Serially.

Se la richiesta di I/O di blocco è stata annullata, __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock restituisce STATUS_CANCELLED per indicare l'errore.

Il membro SyncEvent della struttura RX_CONTEXT a cui punta RxContext deve essere stato reimpostato prima di chiamare __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock. La risorsa FCB deve essere bloccata prima di chiamare __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock se il parametro DropFcbLock è impostato su TRUE.

Le due macro seguenti sono definite in Windows XP e Windows 2000 per chiamare __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock :

RxSynchronizeBlockingOperations : chiamate con il parametro DropFcbLock impostato su FALSE.

RxSynchronizeBlockingOperationsAndDropFcbLock : chiamate con il parametro DropFcbLock impostato su TRUE.

Requisiti

Piattaforma di destinazione

Desktop

Versione

La routine __RxSynchronizeBlockingOperationsMaybeDroppingFcbLock è disponibile solo in Windows XP e Windows 2000.

Intestazione

Rxcontx.h (include Rxcontx.h)

Vedi anche

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxPrepareContextForReuse

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperations