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
- FALSE
- 0xff
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.
RxFinalizeConnection schlägt fehl, wenn Dateien oder Änderungsbenachrichtigungen geöffnet sind.
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 |
---|---|
|
Das Flags-Element der RX_CONTEXT-Struktur gibt an, dass die IRP abgebrochen wurde. |
|
Die Verbindung wird weiterhin verwendet. |
|
Die Datei war geöffnet, sodass die Remoteverbindung nicht gelöscht werden sollte. |
|
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 |