Freigeben über


RxFinalizeConnection-Funktion (rxprocs.h)

RxFinalizeConnection löscht eine Verbindung zu einer Freigabe. Alle dateien, die für die Verbindung geöffnet sind, werden je nach der angegebenen Kraftstufe geschlossen. Der Netzwerk-Miniumleitungsmodul kann die Transportverbindung aus Leistungsgründen geöffnet lassen, es sei denn, es wird eine Option angegeben, um eine Verbindung zu schließen.

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 Kennzeichen, das das Verhalten der RxFinalizeConnection Routine steuert. Das Flag kann einen der folgenden Werte aufweisen:

TRUE-

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

FALSCH-

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 zum Hinzufügen, aber andernfalls wie FALSE. RxFinalizeConnection schlägt fehl, wenn Dateien oder Änderungsbenachrichtigungen geöffnet sind.

Rückgabewert

RxFinalizeConnection- gibt STATUS_SUCCESS bei Erfolg oder einer der folgenden Fehlercodes für Fehler zurück:

Rückgabecode Beschreibung
STATUS_CANCELLED
Das Flags Mitglied der RX_CONTEXT-Struktur gibt an, dass das 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

Bemerkungen

RxFinalizeConnection wird normalerweise von einem Netzwerk-Miniumleitungstreiber aufgerufen, um eine benutzerdefinierte IOCTL-Anforderung vom Benutzermodus zu empfangen. Beispielsweise kann ein Benutzer über die Befehlszeile ein "NET USE x: /d" ausführen, um eine Freigabe zu löschen. Diese Anforderung würde über die Netzwerkanbieter-DLL zugeordnet werden, die vom Netzwerk-Miniumleitungsmodul zu einer benutzerdefinierten IOCTL-Anforderung gesendet wird, die an den Kerneltreiber des Netzwerkminiumleitungs-Kernels gesendet wird, wodurch die RxFinalizeConnection Routine zum Löschen der Verbindung aufgerufen würde.

RxFinalizeConnection alle ausstehenden Anforderungen für eine bestimmte V_NET_ROOT Struktur abbricht. Diese V_NET_ROOT Strukturen werden unabhängig von den Dateien erstellt und gelöscht, die 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
Header- rxprocs.h (include Rxprocs.h)
IRQL- <= APC_LEVEL

Siehe auch

RxCreateNetFcb

RxCreateNetFobx-

RxCreateNetRoot-

RxCreateSrvCall-

RxCreateSrvOpen

RxCreateVNetRoot-

RxDereference-

RxFinalizeNetFcb

RxFinalizeNetFobx-

RxFinalizeNetRoot-

RxFinalizeSrvCall

RxFinalizeSrvOpen

RxFinalizeVNetRoot-

RxFinishFcbInitialization

RxForceFinalizeAllVNetRoots

RxReference-

RxSetSrvCallDomainName

RxpDereferenceNetFcb

RxpReferenceNetFcb

NET_ROOT Struktur

V_NET_ROOT Struktur