Freigeben über


RxStopMinirdr-Funktion (mrx.h)

RxStopMinirdr- wird aufgerufen, um einen Zuvor gestarteten Netzwerk-Miniumleitungsmodul zu beenden. Im Rahmen RxStopMinirdrwird RDBSS den Netzwerk-Miniumleitungstreiber auch als UNC-Anbieter (Universal Naming Convention) beim Multiple UNC Provider (MUP) deregistrieren, wenn der Treiber die Unterstützung für UNC-Namen angibt.

Syntax

NTSTATUS RxStopMinirdr(
  [in]  IN PRX_CONTEXT RxContext,
  [out] OUT PBOOLEAN   PostToFsp
);

Parameter

[in] RxContext

Ein Zeiger auf die RX_CONTEXT Struktur zum Abrufen des Geräteobjekts und bestimmen, ob es sich um einen Dateisystemprozess handelt.

[out] PostToFsp

Ein Zeiger auf einen Wahrheitswert, der beim Zurückgeben auf TRUE festgelegt ist, wenn die Anforderung zur späteren Verarbeitung durch den Dateisystemprozess bereitgestellt werden muss.

Rückgabewert

RxStopMinirdr gibt STATUS_SUCCESS zurück, wenn die Stoppsequenz erfolgreich war oder einer der folgenden Fehlerwerte lautet:

Rückgabecode Beschreibung
STATUS_PENDING Die Stoppsequenz für RDBSS- und Netzwerk-Miniumleitungen muss im Kontext des Dateisystemprozesses abgeschlossen werden. Wenn der Aufruf von RxStopMinirdr von einem anderen Prozess (z. B. einer Benutzermodusanforderung) stammt, wird die Anforderung zur späteren Verarbeitung bereitgestellt und STATUS_PENDING zurückgegeben. Dieser Fehler kann auch zurückgegeben werden, wenn bestimmte interne RDBSS-Sperren nicht abgerufen werden können, ohne warten zu müssen.
STATUS_REDIRECTOR_HAS_OPEN_HANDLES Der Netzwerkminiumleitungs-Umleitungsmodul verfügt über geöffnete Handles und kann zurzeit nicht beendet werden.
STATUS_REDIRECTOR_STOPPED Der Netzwerkminiumleitungs-Umleitungsmodul wurde bereits beendet.

Bemerkungen

Wenn eine Stop-Anforderung an RDBSS ausgegeben wird, gibt es möglicherweise laufende Anforderungen im RDBSS. Einige der Anforderungen können abgebrochen werden, während die verbleibenden Anforderungen bis zum Abschluss verarbeitet werden müssen.

Es gibt eine Reihe von Strategien, die zum Schließen des RDBSS eingesetzt werden können. Derzeit wird der konservativeste Ansatz eingesetzt. Der Abbruch dieser Vorgänge, die abgebrochen werden können, und der Stoppvorgang wird zurückgehalten, bis die verbleibenden Anforderungen bis zum Abschluss ausgeführt werden.

Die RDBSS-RxStopMinirdr wird in der Regel als Ergebnis einer FSCTL- oder IOCTL-Anforderung einer Benutzermodusanwendung oder eines Diensts aufgerufen, um den Netzwerkminiumleitungs-Umleitungsdienst zu beenden, obwohl dieser Aufruf auch vom Netzwerk-Miniumleitungsmodul oder als Teil der Verarbeitung des Herunterfahrens durch das Betriebssystem erfolgen kann.

Sobald ein Aufruf an RxStopMinirdr ausgegeben wurde, sind die einzigen Vorgänge, die von RDBSS zulässig sind und an den Netzwerkminiumleitungs-Miniumleitung übergeben werden, Anforderungen für die folgenden E/A-Anforderungspakete:

  • IRP_MJ_CLEANUP
  • IRP_MJ_CLOSE

Die Stoppsequenz für RDBSS und der Netzwerkminiumleitung muss im Kontext des Dateisystemprozesses abgeschlossen werden. Wenn der Aufruf von RxStopMinirdr von einem anderen Prozess (z. B. einer Benutzermodusanforderung) stammt, muss die Anforderung zur späteren Verarbeitung bereitgestellt werden, und STATUS_PENDING wird zurückgegeben. In diesem Fall wird die effektive Benutzer-ID (die Anmelde-ID) des Aufrufers im FsdUid Mitglied des RxContext- Parameters gespeichert. Darüber hinaus wird STATUS_PENDING zurückgegeben, wenn bestimmte interne RDBSS-Sperren nicht abgerufen werden können, und PostToFsp- auf TRUE festgelegt ist. Wenn STATUS_PENDING zurückgegeben wird, wird RxStopMinirdr zur späteren Verarbeitung durch einen Dateisystemprozess bereitgestellt und abgeschlossen.

Wenn ein Netzwerk-Miniumleitungsmodul die Unterstützung für UNC bei der Registrierung bei RDBSS angibt (der parameter ControlsRxRegisterMinirdr), RxStopMinirdr versucht, die DeviceName- des Netzwerkminiumleitungsanbieters als UNC-Anbieter bei MUP zu deaktivieren (Aufrufe FsRtlDeregisterUncProvider im Namen des Netzwerk-Miniumleitungsmoduls). RxStopMinirdr das Dateisystem auch beim E/A-Manager (ruft IoUnregisterFileSystem) im Namen des Netzwerk-Miniumleitungs auf).

Die RxStopMinirdr Routine ruft dann den Netzwerkminiumleitungs-MrxStop Rückrufroutine auf, wenn diese Routine implementiert wird. Wenn keine aktiven FCBs vorhanden sind, wird STATUS_SUCCESS zurückgegeben. Wenn noch einige aktive FCBs vorhanden sind, wird STATUS_REDIRECTOR_HAS_OPEN_HANDLES zurückgegeben. In beiden Fällen wird der RDBSS-Dispatcher für den Umleitungsmodul nach unten aufgelöst, und der interne Zustand des Netzwerkminiumleitungsmoduls in RDBSS wird auf RDBSS_STARTABLE festgelegt.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- mrx.h (einschließlich Mrx.h)
IRQL- <= APC_LEVEL

Siehe auch

FsRtlDeregisterUncProvider-

IoUnregisterFileSystem-

RxRegisterMinirdr-

RxStartMiniRdr-

RxUnregisterMinirdr-

RxpUnregisterMinirdr-