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 |