Fonction RxFinalizeConnection (rxprocs.h)
RxFinalizeConnection supprime une connexion à un partage. Tous les fichiers ouverts sur la connexion sont fermés en fonction du niveau de force spécifié. Le mini-redirecteur réseau peut choisir de conserver la connexion de transport ouverte pour des raisons de performances, sauf si une option est spécifiée pour forcer la fermeture de la connexion.
Syntaxe
NTSTATUS RxFinalizeConnection(
IN OUT PNET_ROOT NetRoot,
IN OUT PV_NET_ROOT VNetRoot,
IN LOGICAL ForceFilesClosed
);
Paramètres
NetRoot
[in, out] Pointeur vers la structure NET_ROOT en cours de finalisation.
VNetRoot
Pointeur vers la structure V_NET_ROOT en cours de finalisation.
ForceFilesClosed
Indicateur qui contrôle le comportement de la routine RxFinalizeConnection . L’indicateur peut être l’une des valeurs suivantes :
- VRAI
- FAUX
- 0xff
RxFinalizeConnection réussit quoi qu’il arrive, même si les fichiers orphelins et les demandes de IRP_MN_NOTIFY_CHANGE_DIRECTORY sont ouverts. L’option force ces fichiers orphelins à fermer.
RxFinalizeConnection échoue si les fichiers ou les notifications de modification sont ouverts.
RxFinalizeConnection supprime la référence supplémentaire sur la structure V_NET_ROOT en raison de la demande d’ajout de connexion, mais agit sinon comme FALSE. RxFinalizeConnection échoue si les fichiers ou les notifications de modification sont ouverts.
Valeur retournée
RxFinalizeConnection retourne STATUS_SUCCESS en cas de réussite ou l’un des codes d’erreur suivants en cas d’échec :
Code de retour | Description |
---|---|
|
Le membre Flags de la structure RX_CONTEXT indique que l’IRP a été annulé. |
|
La connexion est toujours en cours d’utilisation. |
|
Le fichier étant ouvert, la connexion à distance ne doit pas être supprimée. |
|
Verrou exclusif sur le associé |
Remarques
RxFinalizeConnection est normalement appelé par un pilote de mini-redirecteur réseau en réponse à la réception d’une requête IOCTL personnalisée à partir 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 réseau fournie par le mini-redirecteur réseau à une requête IOCTL personnalisée envoyée au pilote du noyau du mini-redirecteur réseau qui appellerait la routine RxFinalizeConnection pour supprimer la connexion.
RxFinalizeConnection annule toutes les demandes en suspens pour une structure V_NET_ROOT donnée. Ces structures V_NET_ROOT sont créées et supprimées indépendamment des fichiers qui sont ouverts et manipulés. Par conséquent, il est impératif que lorsqu’une opération de suppression est tentée, toutes les demandes en suspens soient annulées.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | rxprocs.h (inclure Rxprocs.h) |
IRQL | <= APC_LEVEL |