MRxCrea routine

La routineMRxCreate viene chiamata da RDBSS per richiedere che il mini-reindirizzamento di rete crei un oggetto file system.

Sintassi

PMRX_CALLDOWN MRxCreate;

NTSTATUS MRxCreate(
  _Inout_ PRX_CONTEXT RxContext
)
{ ... }

Parametri

RxContext [in, out]
Puntatore alla struttura RX_CONTEXT. Questo parametro contiene l'IRP che richiede l'operazione.

Valore restituito

MRxCreate restituisce STATUS_SUCCESS sull'esito positivo o su un valore NTSTATUS appropriato, ad esempio uno dei seguenti:

Codice restituito Descrizione
STATUS_INSUFFICIENT_RESOURCES

Per completare l'operazione sono state eseguite risorse insufficienti.

STATUS_NETWORK_ACCESS_DENIED

Accesso alla rete negato. Questo errore può essere restituito se il mini-reindirizzamento di rete è stato chiesto di aprire un nuovo file in una condivisione di sola lettura.

STATUS_NOT_IMPLEMENTED

Non viene implementata una funzionalità richiesta, ad esempio l'avvio remoto o un file di pagina remota.

STATUS_NOT_SUPPORTED

Una funzionalità richiesta, ad esempio attributi estesi, non è supportata.

STATUS_OBJECT_NAME_COLLISION

Il mini-reindirizzamento di rete è stato chiesto di creare un file già esistente.

STATUS_OBJECT_NAME_NOT_FOUND

Il nome dell'oggetto non è stato trovato. Questo errore può essere restituito se il mini-reindirizzamento di rete è stato chiesto di aprire un file che non esiste.

STATUS_OBJECT_PATH_NOT_FOUND

Il percorso dell'oggetto non è stato trovato. Questo errore può essere restituito se è stato richiesto un oggetto di flusso NTFS e il file system remoto non supporta i flussi.

STATUS_REPARSE

Un reparse è necessario per gestire un collegamento simbolico.

STATUS_RETRY

L'operazione deve essere riprovata. Questo errore può essere restituito se il mini-reindirizzamento di rete ha rilevato una violazione di condivisione o un errore di accesso negato.

Commenti

MRxCreate viene chiamato da RDBSS per richiedere che il mini-reindirizzamento di rete apri un oggetto file system nella rete. Questa chiamata viene emessa da RDBSS in risposta alla ricezione di una richiesta di IRP_MJ_CREATE .

Prima di chiamare MRxCreate, RDBSS modifica i membri seguenti nella struttura RX_CONTEXT a cui punta il parametro RxContext :

pRelevantSrvOpen è impostato sulla struttura SRV_OPEN.

Create.pSrvCall è impostato sulla struttura SRV_CALL.

Create.NtCreateParameters è impostato sul NT_CREATE_PARAMETERS richiesto.

Nel contesto di un mini-reindirizzamento di rete, un oggetto file fa riferimento alle strutture FOB (Associate File Control Block) e File Object Extension (FOBX). Esiste una corrispondenza tra oggetti file e FOBX. Molti oggetti file fanno riferimento allo stesso FCB, che rappresenta un singolo file in un server remoto. Un client può avere diverse richieste aperte (richieste NtCreateFile) nello stesso FCB e ognuna di queste creerà un nuovo oggetto file. I mini-reindirizzamenti di rete e RDBSS possono scegliere di inviare meno richieste MRxCreate rispetto alle richieste NtCreateFile ricevute, in modo da condividere una struttura SRV_OPEN tra diversi FOBX.

Se la richiesta MRxCreate era per una sovrascrittura del file e MRxCreate restituita STATUS_SUCCESS, RDBSS acquisirà la risorsa I/O di paging e tronca il file. Se il file viene memorizzato nella cache da gestione cache, RDBSS aggiornerà le dimensioni della gestione cache con quelle appena ricevute dal server.

Prima di restituire, MRxCreate deve impostare il membro CurrentIrp-IoStatus.Information> della struttura RX_CONTEXT a cui punta il parametro RxContext.

Requisiti

Piattaforma di destinazione

Desktop

Intestazione

Mrx.h (include Mrx.h)

Vedi anche

MRxAreFilesAliased

MRxCleanupFobx

MRxCloseSrvOpen

MRxCollapseOpen

MRxCreate

MRxDeallocateForFcb

MRxDeallocateForFobx

MRxExtendForCache

MRxExtendForNonCache

MRxFlush

MRxForceClosed

MRxIsLockRealizable

MRxShouldTryToCollapseThisOpen

MRxTruncate

MRxZeroExtend