Funzione RxFinalizeVNetRoot (fcb.h)
RxFinalizeVNetRoot finalizza la struttura V_NET_ROOT specificata. Il chiamante deve avere un blocco esclusivo sulla tabella netname associata all'oggetto device.
Sintassi
BOOLEAN RxFinalizeVNetRoot(
[out] OUT PV_NET_ROOT ThisVNetRoot,
[in] IN BOOLEAN RecursiveFinalize,
[in] IN BOOLEAN ForceFinalize
);
Parametri
[out] ThisVNetRoot
Puntatore alla struttura V_NET_ROOT da finalizzare.
[in] RecursiveFinalize
Valore che indica se la finalizzazione deve essere eseguita in modo ricorsivo. Questo parametro non è attualmente usato.
[in] ForceFinalize
Valore che indica se la finalizzazione deve essere forzata, indipendentemente dal conteggio dei riferimenti.
Se ForceFinalize è FALSE, il membro NodeReferenceCount della struttura V_NET_ROOT puntata da ThisVNetRoot deve essere 1 per il completamento dell'V_NET_ROOT.
Valore restituito
RxFinalizeVNetRoot restituisceTRUE in caso di esito positivo o FALSE se la finalizzazione non si è verificata:
Commenti
La routine RxFinalizeVNetRoot non viene normalmente chiamata dai driver mini-reindirizzamento di rete direttamente. RDBSS chiama questa routine internamente quando il conteggio dei riferimenti sul V_NET_ROOT viene decrementato su 1.
RxFinalizeVNetRoot viene chiamato anche dalla routine RxFinalizeConnection se il parametro Level su RxFinalizeConnection è impostato su TRUE. RxFinalizeConnection viene normalmente chiamato da un driver di mini-reindirizzamento di rete in risposta alla ricezione di una richiesta IOCTL personalizzata dalla modalità utente. Ad esempio, un utente potrebbe eseguire dalla riga di comando "NET USE x: /d" per eliminare una condivisione. Questa richiesta viene mappata tramite la DLL del provider di rete fornita dal mini-redirector di rete a una richiesta IOCTL personalizzata inviata al driver kernel mini-redirector di rete che chiamerebbe la routine RxFinalizeConnection per eliminare la connessione e qualsiasi V_NET_ROOT strutture associate.
RxFinalizeVNetRoot viene chiamato anche dalla routine RxForceFinalizeAllVNetRoots per finalizzare ogni V_NET_ROOT associata a una struttura NET_ROOT.
Prima di chiamare RxFinalizeVNetRoot, è necessario acquisire un blocco nella tabella netname associata all'oggetto dispositivo in modalità esclusiva.
Se il membro UpperFinalization dell'V_NET_ROOT è 0, RxFinalizeVNetRoot eseguirà l'iterazione di tutti gli FCB che appartengono al NET_ROOT associato a questa V_NET_ROOT e orfane tutte le strutture SRV_OPEN associate al V_NET_ROOT.
RxFinalizeVNetRoot chiamerà la routine MRxFinalizeVNetRoot fornita dal mini-redirector di rete per finalizzare l'V_NET_ROOT prima che venga rilasciata la memoria per la struttura V_NET_ROOT.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Desktop |
Intestazione | fcb.h (include Mrxfcb.h, Fcb.h) |
IRQL | <= APC_LEVEL |