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-
- FALSCH-
- 0xff
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.
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 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 |
---|---|
|
Das Flags Mitglied der RX_CONTEXT-Struktur gibt an, dass das 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 |
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 |