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