Condividi tramite


Funzione RxFinalizeSrvOpen (fcb.h)

RxFinalizeSrvOpen finalizza la struttura di SRV_OPEN specificata. Il chiamante deve avere un blocco esclusivo sul fcB associato alla SRV_OPEN e un blocco condiviso o esclusivo sul blocco di tabella del NET_ROOT associato al fcB.

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 membro NodeReferenceCount della struttura SRV_OPEN puntato a ThisSrvOpen deve essere 0 per l'SRV_OPEN da finalizzare.

Valore restituito

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

Commenti

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

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

Se il parametro RecursiveFinalize è TRUE, RxFinalizeSrvOpen finalizzerà qualsiasi struttura FOBX associata a questa SRV_OPEN chiamando RxFinalizeNetFobx con il parametro RecursiveFinalize impostato su TRUE e il parametro ForceFinalize .

Se il membro FcbState dell'fcB associato non dispone del set di flag FCB_STATE_ORPHANED, RxFinalizeSrvCall chiamerà la routine MRxForceClosed fornita dal mini-reindirizzamento di rete per finalizzare il SRV_CALL. Se la struttura SRV_CALL non è stata originariamente allocata come parte della creazione del fcB, verrà rilasciata anche la memoria per la struttura SRV_CALL.

Requisiti

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

Vedi anche

MRxForceClosed

RxCreateNetFcb

RxCreateNetFobx

RxCreateNetRoot

RxCreateSrvCall

RxCreateSrvOpen

RxCreateVNetRoot

RxDereference

RxFinalizeConnection

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeVNetRoot

RxFinishFcbInitialization

RxForceFinalizeAllVNetRoots

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

Struttura SRV_OPEN