Freigeben über


MRxErstellen der Routine

DieMRxCreate-Routine wird von RDBSS aufgerufen, um anzufordern, dass der Netzwerkminiumleitungsor ein Dateisystemobjekt erstellt.

Syntax

PMRX_CALLDOWN MRxCreate;

NTSTATUS MRxCreate(
  _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

MRxCreate gibt STATUS_SUCCESS bei Erfolg oder einen geeigneten NTSTATUS-Wert zurück, z. B. einen der folgenden:

Rückgabecode Beschreibung
STATUS_INSUFFICIENT_RESOURCES

Es waren nicht genügend Ressourcen vorhanden, um den Vorgang abzuschließen.

STATUS_NETWORK_ACCESS_DENIED

Der Netzwerkzugriff wurde verweigert. Dieser Fehler kann zurückgegeben werden, wenn der Netzwerkminiumleitungsor aufgefordert wurde, eine neue Datei in einer schreibgeschützten Freigabe zu öffnen.

STATUS_NOT_IMPLEMENTED

Ein angefordertes Feature, z. B. Remotestart oder eine Remoteseitendatei, wird nicht implementiert.

STATUS_NOT_SUPPORTED

Ein angefordertes Feature, z. B. erweiterte Attribute, wird nicht unterstützt.

STATUS_OBJECT_NAME_COLLISION

Der Netzwerkmini-Redirector wurde aufgefordert, eine Datei zu erstellen, die bereits vorhanden ist.

STATUS_OBJECT_NAME_NOT_FOUND

Der Objektname wurde nicht gefunden. Dieser Fehler kann zurückgegeben werden, wenn der Netzwerkminiumleitungsor aufgefordert wurde, eine datei zu öffnen, die nicht vorhanden ist.

STATUS_OBJECT_PATH_NOT_FOUND

Der Objektpfad wurde nicht gefunden. Dieser Fehler kann zurückgegeben werden, wenn ein NTFS-Streamobjekt angefordert wurde und das Remotedateisystem keine Streams unterstützt.

STATUS_REPARSE

Eine Analyse ist erforderlich, um eine symbolische Verknüpfung zu behandeln.

STATUS_RETRY

Der Vorgang sollte wiederholt werden. Dieser Fehler kann zurückgegeben werden, wenn beim Netzwerk-Mini-Redirector eine Freigabeverletzung oder ein Zugriff verweigerter Fehler aufgetreten ist.

Hinweise

MRxCreate wird von RDBSS aufgerufen, um anzufordern, dass der Netzwerkminiumleitungsor ein Dateisystemobjekt über das Netzwerk öffnet. Dieser Aufruf wird von RDBSS als Reaktion auf den Empfang einer IRP_MJ_CREATE-Anforderung ausgegeben.

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

pRelevantSrvOpen ist auf die SRV_OPEN-Struktur festgelegt.

Create.pSrvCall ist auf die SRV_CALL-Struktur festgelegt.

Create.NtCreateParameters ist auf die angeforderte NT_CREATE_PARAMETERS festgelegt.

Im Kontext eines Netzwerkmini-Redirectors bezieht sich ein Dateiobjekt auf die zugeordneten FcB-Strukturen (File Control Block) und File Object Extension (FOBX). Es besteht eine eins zu 1 Korrespondenz zwischen Dateiobjekten und FOBXs. Viele Dateiobjekte verweisen auf dieselbe FCB, die eine einzelne Datei auf einem Remoteserver darstellt. Ein Client kann mehrere unterschiedliche offene Anforderungen (NtCreateFile-Anforderungen) auf demselben FCB haben, und jede dieser Anforderungen erstellt ein neues Dateiobjekt. RDBSS- und Netzwerk-Miniumleitungen können wählen, dass weniger MRxCreate-Anforderungen als die empfangenen NtCreateFile-Anforderungen gesendet werden sollen. Dabei wird eine SRV_OPEN Struktur zwischen mehreren FOBX-Instanzen gemeinsam genutzt.

Wenn die MRxCreate-Anforderung für eine Dateiüberschreibung und MRxCreate STATUS_SUCCESS zurückgegeben wurde, ruft RDBSS die auslagernde E/A-Ressource ab und schneidet die Datei ab. Wenn die Datei vom Cache-Manager zwischengespeichert wird, aktualisiert RDBSS die Größen, die der Cache-Manager hat, mit den Größen, die gerade vom Server empfangen wurden.

Vor der Rückgabe muss MRxCreate das CurrentIrp-IoStatus.Information-Element> der RX_CONTEXT Struktur festlegen, auf die vom RxContext-Parameter verwiesen wird.

Anforderungen

Zielplattform

Desktop

Header

Mrx.h (einschließlich Mrx.h)

Weitere Informationen

MRxAreFilesAliased

MRxCleanupFobx

MRxCloseSrvOpen

MRxCollapseOpen

MRxCreate

MRxDeallocateForFcb

MRxDeallocateForFobx

MRxExtendForCache

MRxExtendForNonCache

MRxFlush

MRxForceClosed

MRxIsLockRealizable

MRxShouldTryToCollapseThisOpen

MRxTruncate

MRxZeroExtend