Freigeben über


MRxLowIOSubmit[LOWIO_OP_FSCTL] Routine

Die MRxLowIOSubmit[LOWIO_OP_FSCTL] -Routine wird von RDBSS aufgerufen, um anzufordern, dass ein Netzwerkminiumleitungsor eine Dateisystemsteuerungsanforderung für die Remotedatei ausgibt.

Syntax

PMRX_CALLDOWN MRxLowIOSubmit[LOWIO_OP_FSCTL];

NTSTATUS MRxLowIOSubmit[LOWIO_OP_FSCTL](
  _Inout_ PRX_CONTEXT RxContext
)
{ ... }

Parameter

RxContext [ein, aus]
Ein Zeiger auf die RX_CONTEXT-Struktur. Dieser Parameter enthält die IRP, die den Vorgang anfordert.

Rückgabewert

MRxLowIOSubmit[LOWIO_OP_FSCTL] gibt STATUS_SUCCESS nach Erfolg oder einen entsprechenden NTSTATUS-Wert zurück, z. B. einen der folgenden:

Rückgabecode Beschreibung
STATUS_CONNECTION_DISCONNECTED

Die Verbindung wurde getrennt.

STATUS_INSUFFICIENT_RESOURCES

Es waren nicht genügend Ressourcen vorhanden, um die Anforderung abzuschließen.

STATUS_INVALID_DEVICE_REQUEST

Es wurde eine ungültige Geräteanforderung angegeben.

STATUS_INVALID_NETWORK_RESPONSE

Vom Remoteserver wurde eine ungültige Antwort empfangen.

STATUS_INVALID_PARAMETER

In RxContext wurde ein ungültiger Parameter angegeben.

STATUS_LINK_FAILED

Der Versuch, die Verbindung mit einem Remoteserver wiederherzustellen, um die Anforderung abzuschließen, ist fehlgeschlagen.

STATUS_NOT_IMPLEMENTED

Diese Routine wird nicht implementiert.

STATUS_NOT_SUPPORTED

Die angegebene FSCTL wird vom Netzwerkminiumleitungsor nicht unterstützt.

STATUS_UNSUCCESSFUL

Der Aufruf war nicht erfolgreich.

Hinweise

RDBSS ruft MRxLowIOSubmit[LOWIO_OP_FSCTL] als Reaktion auf den Empfang einer IRP_MJ_FILE_SYSTEM_CONTROL-Anforderung auf.

Vor dem Aufrufen von MRxLowIOSubmit[LOWIO_OP_FSCTL] ändert RDBSS die folgenden Member in der RX_CONTEXT Struktur, auf die der RxContext-Parameter verweist:

Der LowIoContext.Operation-Member ist auf LOWIO_OP_FSCTL festgelegt.

Der LowIoContext.ResourceThreadId-Member ist auf den Thread des Prozesses festgelegt, der den Vorgang in RDBSS initiiert hat.

Das LowIoContext.ParamsFor.FsCtl.FsControlCode-Element ist auf den FSCTL-Hauptsteuerelementcode festgelegt.

Der LowIoContext.ParamsFor.FsCtl.MinorFunction-Member ist auf den FSCTL-Nebensteuerelementcode festgelegt.

Der LowIoContext.ParamsFor.FsCtl.pInputBuffer-Member ist auf den Eingabepuffer festgelegt.

Der LowIoContext.ParamsFor.FsCtl.InputBufferLength-Member ist auf die Eingabepufferlänge festgelegt.

Der LowIoContext.ParamsFor.FsCtl.pOutputBuffer-Member ist auf den Ausgabepuffer festgelegt.

Der LowIoContext.ParamsFor.FsCtl.OutputBufferLength-Member ist auf die Ausgabepufferlänge festgelegt.

Die FSCTL-Anforderungen (File System Control Code), die von einem Netzwerk-Mini-Redirector verarbeitet werden, können in eine von mehreren Kategorien unterteilt werden:

  • FSCTLs, die von RDBSS und dem Netzwerkminiumleitung implementiert und verwendet werden

  • FSCTLs, die nur vom Netzwerk-Mini-Redirector implementiert und verwendet werden

  • FSCTLs, die vom Netzwerk-Miniumleitungsor nie angezeigt werden sollten. Diese FSCTLs sind ausschließlich als Debughilfe vorgesehen.

Während die MRxLowIOSubmit[LOWIO_OP_FSCTL] -Routine verarbeitet wird, gibt das LowIoContext.ResourceThreadId-Mitglied von RX_CONTEXT garantiert den Thread des Prozesses an, der den Vorgang in RDBSS initiiert hat. Das LowIoContext.ResourceThreadId-Member von RX_CONTEXT kann verwendet werden, um die Eingaberessource im Auftrag eines anderen Threads freizugeben. Wenn eine asynchrone Routine abgeschlossen ist, kann die Eingaberessource, die aus dem anfänglichen Thread abgerufen wurde, freigegeben werden.

Anforderungen

Zielplattform

Desktop

Header

Mrx.h (einschließlich Mrx.h)

Weitere Informationen

MRxLowIOSubmit[LOWIO_OP_EXCLUSIVELOCK]

MRxLowIOSubmit[LOWIO_OP_IOCTL]

MRxLowIOSubmit[LOWIO_OP_NOTIFY_CHANGE_DIRECTORY]

MRxLowIOSubmit[LOWIO_OP_READ]

MRxLowIOSubmit[LOWIO_OP_SHAREDLOCK]

MRxLowIOSubmit[LOWIO_OP_UNLOCK]

MRxLowIOSubmit[LOWIO_OP_UNLOCK_MULTIPLE]

MRxLowIOSubmit[LOWIO_OP_WRITE]