Condividi tramite


funzione __RxSynchronizeBlockingOperations (rxcontx.h)

__RxSynchronizeBlockingOperations sincronizza il blocco delle richieste di I/O alla stessa coda di lavoro.

Sintassi

NTSTATUS __RxSynchronizeBlockingOperations(
  [in, out] IN OUT PRX_CONTEXT RxContext,
  [in]      IN PFCB            Fcb,
  [in, out] IN OUT PLIST_ENTRY BlockingIoQ,
  [in]      IN BOOLEAN         DropFcbLock
);

Parametri

[in, out] RxContext

Puntatore al RX_CONTEXT dell'operazione da sincronizzare.

[in] Fcb

Puntatore al cluster di failover.

[in, out] BlockingIoQ

Puntatore al LIST_ENTRY per la coda.

[in] DropFcbLock

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

Valore restituito

__RxSynchronizeBlockingOperations 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 il RX_CONTEXT associato sono stati annullati.
STATUS_PENDING
Il RxContext era per un'operazione asincrona e il RxContext è stato aggiunto alla coda.

Osservazioni

La routine __RxSynchronizeBlockingOperations sincronizza il blocco delle richieste di I/O alla stessa coda di lavoro. RDBSS usa __RxSynchronizeBlockingOperations internamente per sincronizzare le operazioni named pipe. La coda di lavoro è la coda a cui fa riferimento l'estensione dell'oggetto file (FOBX) associata all'fcb.

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

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

Se la richiesta di I/O di blocco è stata annullata, __RxSynchronizeBlockingOperations 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 __RxSynchronizeBlockingOperations. La risorsa FCB deve essere bloccata prima di chiamare __RxSynchronizeBlockingOperations se il parametro DropFcbLock è impostato su TRUE.

Le due macro seguenti sono definite in Windows Server 2003 o versioni successive per chiamare __RxSynchronizeBlockingOperations:

RxSynchronizeBlockingOperations: chiama con il parametro DropFcbLock impostato su FALSE.

RxSynchronizeBlockingOperationsAndDropFcbLock: chiama con il parametro DropFcbLock impostato su TRUE.

Fabbisogno

Requisito Valore
client minimo supportato La routine __RxSynchronizeBlockingOperations è disponibile solo in Windows Server 2003.
piattaforma di destinazione Desktop
intestazione rxcontx.h (include Rxcontx.h)

Vedere anche

RxCompleteRequest_Real

RxCreateRxContext

RxDereference

RxDereferenceAndDeleteRxContext_Real

RxInitializeContext

RxPrepareContextForReuse

RxResumeBlockedOperations_Serially

__RxSynchronizeBlockingOperationsMaybeDroppingFcbLock