Freigeben über


RxFinalizeConnection-Funktion (rxprocs.h)

RxFinalizeConnection löscht eine Verbindung mit einer Freigabe. Alle Dateien, die über die Verbindung geöffnet werden, werden abhängig von der angegebenen Kraftstufe geschlossen. Der Netzwerkminiumleitungsor kann die Transportverbindung aus Leistungsgründen geöffnet lassen, es sei denn, es ist eine Option angegeben, um eine Verbindungsschließung zu erzwingen.

Syntax

NTSTATUS RxFinalizeConnection(
  IN OUT PNET_ROOT   NetRoot,
  IN OUT PV_NET_ROOT VNetRoot,
  IN LOGICAL         ForceFilesClosed
);

Parameter

NetRoot

[in, out] Ein Zeiger auf die NET_ROOT Struktur, die abgeschlossen wird.

VNetRoot

Ein Zeiger auf die V_NET_ROOT Struktur, die abgeschlossen wird.

ForceFilesClosed

Das Flag, das das Verhalten der RxFinalizeConnection-Routine steuert. Das Flag kann einer der folgenden Werte sein:

STIMMT

RxFinalizeConnection ist erfolgreich, auch wenn verwaiste Dateien und IRP_MN_NOTIFY_CHANGE_DIRECTORY Anforderungen geöffnet sind. Die Option erzwingt das Schließen dieser verwaisten Dateien.

FALSE

RxFinalizeConnection schlägt fehl, wenn Dateien oder Änderungsbenachrichtigungen geöffnet sind.

0xff

RxFinalizeConnection entfernt den zusätzlichen Verweis auf die V_NET_ROOT-Struktur aufgrund der Verbindungsanforderung hinzufügen, verhält sich aber ansonsten wie FALSE. RxFinalizeConnection schlägt fehl, wenn Dateien oder Änderungsbenachrichtigungen geöffnet sind.

Rückgabewert

RxFinalizeConnection gibt bei Erfolg STATUS_SUCCESS oder einen der folgenden Fehlercodes bei Einem Fehler zurück:

Rückgabecode Beschreibung
STATUS_CANCELLED
Das Flags-Element der RX_CONTEXT-Struktur gibt an, dass die IRP abgebrochen wurde.
STATUS_CONNECTION_IN_USE
Die Verbindung wird weiterhin verwendet.
STATUS_FILES_OPEN
Die Datei war geöffnet, sodass die Remoteverbindung nicht gelöscht werden sollte.
STATUS_LOCK_NOT_GRANTED
Eine exklusive Sperre für die zugeordnete

Hinweise

RxFinalizeConnection wird normalerweise von einem Netzwerk-Miniumleitungstreiber als Reaktion auf den Empfang einer benutzerdefinierten IOCTL-Anforderung aus dem Benutzermodus aufgerufen. Beispielsweise kann ein Benutzer über die Befehlszeile ein "NET USE x: /d" ausführen, um eine Freigabe zu löschen. Diese Anforderung wird über die Netzwerkanbieter-DLL zugeordnet, die vom Netzwerk-Mini-Redirector bereitgestellt wird, einer benutzerdefinierten IOCTL-Anforderung, die an den Netzwerk-Mini-Redirector-Kerneltreiber gesendet wird, der die RxFinalizeConnection-Routine aufruft, um die Verbindung zu löschen.

RxFinalizeConnection bricht alle ausstehenden Anforderungen für eine bestimmte V_NET_ROOT-Struktur ab. Diese V_NET_ROOT Strukturen werden unabhängig von den Dateien erstellt und gelöscht, die darauf geöffnet und bearbeitet werden. Daher ist es zwingend erforderlich, dass beim Versuch eines Löschvorgangs alle ausstehenden Anforderungen abgebrochen werden.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile rxprocs.h (include Rxprocs.h)
IRQL <= APC_LEVEL

Weitere Informationen

RxCreateNetFcb

RxCreateNetFobx

RxCreateNetRoot

RxCreateSrvCall

RxCreateSrvOpen

RxCreateVNetRoot

RxDereference

RxFinalizeNetFcb

RxFinalizeNetFobx

RxFinalizeNetRoot

RxFinalizeSrvCall

RxFinalizeSrvOpen

RxFinalizeVNetRoot

RxFinishFcbInitialisierung

RxForceFinalizeAllVNetRoots

RxReference

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

Die NET_ROOT-Struktur

Die V_NET_ROOT-Struktur