Condividi tramite


Funzione RxFinalizeSrvOpen (fcb.h)

RxFinalizeSrvOpen finalizza la struttura di SRV_OPEN specificata. Il chiamante deve avere un blocco esclusivo sul fcb associato al SRV_OPEN e un blocco condiviso o esclusivo sul blocco di tabella del NET_ROOT associato all'istanza del cluster di failover.

Sintassi

BOOLEAN RxFinalizeSrvOpen(
  [out] OUT PSRV_OPEN ThisSrvOpen,
  [in]  IN BOOLEAN    RecursiveFinalize,
  [in]  IN BOOLEAN    ForceFinalize
);

Parametri

[out] ThisSrvOpen

Puntatore alla struttura SRV_OPEN da finalizzare.

[in] RecursiveFinalize

Valore che indica se la finalizzazione deve essere eseguita in modo ricorsivo.

[in] ForceFinalize

Valore che indica se la finalizzazione deve essere forzata, indipendentemente dal conteggio dei riferimenti.

Se ForceFinalize è FALSE, il NodeReferenceCount membro della struttura SRV_OPEN a cui punta ThisSrvOpen deve essere 0 affinché il SRV_OPEN venga finalizzato.

Valore restituito

RxFinalizeSrvOpen restituisce TRUE in caso di esito positivo o FALSE se la finalizzazione non è stata eseguita:

Osservazioni

La routine RxFinalizeSrvOpen non viene normalmente chiamata direttamente dai driver del mini-redirector di rete. RDBSS chiama questa routine internamente quando il conteggio dei riferimenti sul SRV_OPEN viene decrementato su 1. RDBSS chiama anche routine RxFinalizeSrvOpen quando viene chiamata la routine RxFinalizeNetFcb RecursiveFinalize impostata su TRUE. RDBSS chiama RxFinalizeNetFcb quando viene ricevuto un pacchetto di richiesta di I/O per IRP_MJ_CLOSE. Questo IRP viene normalmente ricevuto da RDBSS in risposta a un'applicazione in modalità utente che richiede un'operazione di chiusura file. È anche possibile che un altro driver kernel rilasci tale IRP.

Prima di chiamare RxFinalizeSrvOpen, il chiamante deve avere acquisito un blocco esclusivo sul cluster di failover associato al SRV_OPEN e acquisito un blocco condiviso o esclusivo sul blocco di tabella del NET_ROOT associato al cluster di failover.

Se il parametro RecursiveFinalize è TRUE, RxFinalizeSrvOpen finalizzerà tutte le strutture FOBX associate a questo SRV_OPEN chiamata RxFinalizeNetFobx con il parametro RecursiveFinalize impostato su TRUE e il parametro ForceFinalize.

Se il membro fcbState del cluster di failover associato non dispone del flag FCB_STATE_ORPHANED impostato, RxFinalizeSrvCall chiamerà la routine MRxForceClosed fornita dal mini-redirector di rete per finalizzare l'SRV_CALL. Se la struttura SRV_CALL non è stata originariamente allocata come parte della creazione del cluster di failover, verrà rilasciata anche la memoria per la struttura SRV_CALL.

Fabbisogno

Requisito Valore
piattaforma di destinazione Desktop
intestazione fcb.h (include Mrxfcb.h, Fcb.h)
IRQL <= APC_LEVEL

Vedere anche

MRxForceClosed

RxCreateNetFcb

RxCreateNetFobx

RxCreateNetRoot

RxCreateSrvCall

RxCreateSrvOpen

RxCreateVNetRoot

RxDereference

RxFinalizeConnection

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeVNetRoot

RxFinishFcbInitialization

RxForceFinalizeAllVNetRoots

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

Struttura SRV_OPEN