Partager via


RxFinalizeVNetRoot, fonction (fcb.h)

RxFinalizeVNetRoot finalise la structure de V_NET_ROOT donnée. L’appelant doit avoir un verrou exclusif sur la table netname associée à l’objet d’appareil.

Syntaxe

BOOLEAN RxFinalizeVNetRoot(
  [out] OUT PV_NET_ROOT ThisVNetRoot,
  [in]  IN BOOLEAN      RecursiveFinalize,
  [in]  IN BOOLEAN      ForceFinalize
);

Paramètres

[out] ThisVNetRoot

Pointeur vers la structure V_NET_ROOT à finaliser.

[in] RecursiveFinalize

Valeur indiquant si la finalisation doit être effectuée de manière récursive. Ce paramètre dans n’est pas utilisé actuellement.

[in] ForceFinalize

Valeur indiquant si la finalisation doit être forcée, quel que soit le nombre de références.

Si ForceFinalize a la valeur FALSE, le membre NodeReferenceCount de la structure V_NET_ROOT pointée par ThisVNetRoot doit avoir la valeur 1 pour que le V_NET_ROOT soit finalisé.

Valeur retournée

RxFinalizeVNetRoot retourne TRUE en cas de réussite ou FALSE si la finalisation n’a pas eu lieu :

Remarques

La routine RxFinalizeVNetRoot n’est normalement pas appelée directement par les pilotes de mini-redirecteur réseau. RDBSS appelle cette routine en interne lorsque le nombre de références sur le V_NET_ROOT est décrémenté à 1.

RxFinalizeVNetRoot est également appelé par la routine RxFinalizeConnection si le paramètre Levelde RxFinalizeConnection est défini sur TRUE. RxFinalizeConnection est normalement appelé par un pilote de mini-redirecteur réseau en réponse à la réception d’une demande IOCTL personnalisée du mode utilisateur. Par exemple, un utilisateur peut exécuter à partir de la ligne de commande un « NET USE x : /d » pour supprimer un partage. Cette requête serait mappée via la DLL du fournisseur de réseau fournie par le mini-redirecteur réseau à une requête IOCTL personnalisée envoyée au pilote de noyau du mini-redirecteur réseau qui appellerait la routine RxFinalizeConnection pour supprimer la connexion et toutes les structures de V_NET_ROOT associées.

RxFinalizeVNetRoot est également appelé par la routine RxForceFinalizeAllVNetRoots pour finaliser chaque V_NET_ROOT associée à une structure de NET_ROOT.

Avant d’appeler RxFinalizeVNetRoot, un verrou sur la table netname associée à l’objet d’appareil doit être acquis en mode exclusif.

Si le membre UpperFinalization du V_NET_ROOT a la valeur 0, RxFinalizeVNetRoot itérera toutes les bases de données qui appartiennent aux NET_ROOT associées à cette V_NET_ROOT et orphelines toutes les structures SRV_OPEN associées au V_NET_ROOT.

RxFinalizeVNetRoot appelle la routine MRxFinalizeVNetRoot fournie par le mini-redirecteur réseau pour finaliser le V_NET_ROOT avant que la mémoire de la structure V_NET_ROOT ne soit libérée.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête fcb.h (inclure Mrxfcb.h, Fcb.h)
IRQL <= APC_LEVEL

Voir aussi

MRxFinalizeVNetRoot

RxCreateNetFcb

RxCreateNetFobx

RxCreateNetRoot

RxCreateSrvCall

RxCreateSrvOpen

RxCreateVNetRoot

RxDereference

RxFinalizeConnection

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeSrvOpen

RxFinishFcbInitialization

RxForceFinalizeAllVNetRoots

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

The V_NET_ROOT Structure