Partager via


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 une fermeture de 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 :

TRUE

RxFinalizeConnection réussit, même si les fichiers orphelins et les requêtes IRP_MN_NOTIFY_CHANGE_DIRECTORY sont ouverts. L’option force ces fichiers orphelins fermés.

FALSE

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

0xff

RxFinalizeConnection supprime la référence supplémentaire sur la structure de V_NET_ROOT en raison de la demande d’ajout de connexion, mais agit autrement comme FAUX. RxFinalizeConnection échoue si des fichiers ou des notifications de modification sont ouverts.

Valeur de retour

RxFinalizeConnection retourne STATUS_SUCCESS en cas de réussite ou l’un des codes d’erreur suivants en cas d’échec :

Retourner le code Description
STATUS_CANCELLED
Le Flags membre de la structure de 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 a été ouvert, de sorte que la connexion à distance ne doit pas être supprimée.
STATUS_LOCK_NOT_GRANTED
Verrou exclusif sur l’associé

Remarques

RxFinalizeConnection est normalement appelée par un pilote de mini-redirecteur réseau en réponse à la réception d’une demande 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 est 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 du noyau du mini-redirecteur réseau qui appellerait la routine RxFinalizeConnection pour supprimer la connexion.

RxFinalizeConnection annule toutes les demandes en attente d’une structure de V_NET_ROOT donnée. Ces structures V_NET_ROOT sont créées et supprimées indépendamment des fichiers ouverts et manipulés. Par conséquent, lorsqu’une opération de suppression est tentée, toutes les demandes en attente sont annulées.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête rxprocs.h (include 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

La structure NET_ROOT

La structure V_NET_ROOT