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

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.

FAUX

RxFinalizeConnection échoue si les fichiers ou les notifications de modification sont ouverts.

0xff

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
STATUS_CANCELLED
Le membre Flags de la structure RX_CONTEXT indique que l’IRP a été annulé.
STATUS_CONNECTION_IN_USE
La connexion est toujours en cours d’utilisation.
STATUS_FILES_OPEN
Le fichier étant ouvert, la connexion à distance ne doit pas être supprimée.
STATUS_LOCK_NOT_GRANTED
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

Voir aussi

RxCreateNetFcb

RxCreateNetFobx

RxCreateNetRoot

RxCreateSrvCall

RxCreateSrvOpen

RxCreateVNetRoot

RxDereference

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeSrvOpen

RxFinalizeVNetRoot

RxFinishFcbInitialization

RxForceFinalizeAllVNetRoots

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

The NET_ROOT Structure

The V_NET_ROOT Structure