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 |