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) |