Routine MRxCreate

La routineMRxCreate est appelée par RDBSS pour demander que le mini-redirecteur réseau crée un objet de système de fichiers.

Syntaxe

PMRX_CALLDOWN MRxCreate;

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

Paramètres

RxContext [in, out]
Pointeur vers la structure RX_CONTEXT. Ce paramètre contient l’IRP qui demande l’opération.

Valeur retournée

MRxCreate retourne STATUS_SUCCESS sur la réussite ou une valeur NTSTATUS appropriée, par exemple :

Code de retour Description
STATUS_INSUFFICIENT_RESOURCES

Les ressources étaient insuffisantes pour terminer l’opération.

STATUS_NETWORK_ACCESS_DENIED

L’accès réseau a été refusé. Cette erreur peut être retournée si le mini-redirecteur réseau a été invité à ouvrir un nouveau fichier sur un partage en lecture seule.

STATUS_NOT_IMPLEMENTED

Une fonctionnalité demandée, telle qu’un démarrage à distance ou un fichier de page distant, n’est pas implémentée.

STATUS_NOT_SUPPORTED

Une fonctionnalité demandée, telle que les attributs étendus, n’est pas prise en charge.

STATUS_OBJECT_NAME_COLLISION

Le mini-redirecteur réseau a été invité à créer un fichier qui existe déjà.

STATUS_OBJECT_NAME_NOT_FOUND

Le nom de l’objet est introuvable. Cette erreur peut être retournée si le mini-redirecteur réseau a été invité à ouvrir un fichier qui n’existe pas.

STATUS_OBJECT_PATH_NOT_FOUND

Le chemin d’accès de l’objet est introuvable. Cette erreur peut être retournée si un objet de flux NTFS a été demandé et si le système de fichiers distant ne prend pas en charge les flux.

STATUS_REPARSE

Une analyse est nécessaire pour gérer un lien symbolique.

STATUS_RETRY

L’opération doit être retentée. Cette erreur peut être retournée si le mini-redirecteur réseau a rencontré une violation de partage ou une erreur d’accès refusé.

Remarques

MRxCreate est appelé par RDBSS pour demander que le mini-redirecteur réseau ouvre un objet de système de fichiers sur le réseau. Cet appel est émis par RDBSS en réponse à la réception d’une demande de IRP_MJ_CREATE .

Avant d’appeler MRxCreate, RDBSS modifie les membres suivants dans la structure RX_CONTEXT pointée par le paramètre RxContext :

pRelevantSrvOpen est défini sur la structure SRV_OPEN.

Create.pSrvCall est défini sur la structure SRV_CALL.

Create.NtCreateParameters est défini sur le NT_CREATE_PARAMETERS demandé.

Dans le contexte d’un mini-redirecteur réseau, un objet fichier fait référence aux structures de bloc de contrôle de fichier (FCB) et d’extension d’objet de fichier (FOBX) associées. Il existe une correspondance un-à-un entre les objets de fichier et les FOBX. De nombreux objets de fichier font référence au même fcb, qui représente un seul fichier sur un serveur distant. Un client peut avoir plusieurs requêtes ouvertes différentes (requêtes NtCreateFile) sur le même fcb et chacune d’elles crée un objet de fichier. RDBSS et les mini-redirecteurs réseau peuvent choisir d’envoyer moins de demandes MRxCreate que les requêtes NtCreateFile reçues, ce qui permet de partager une structure SRV_OPEN entre plusieurs FOBX.

Si la demande MRxCreate concerne un remplacement de fichier et que MRxCreate a été retourné STATUS_SUCCESS, RDBSS acquiert la ressource d’E/S de pagination et tronque le fichier. Si le fichier est mis en cache par le gestionnaire de cache, RDBSS met à jour les tailles du gestionnaire de cache avec celles qui viennent d’être reçues du serveur.

Avant de retourner, MRxCreate doit définir le membre CurrentIrp-IoStatus.Information> de la structure RX_CONTEXT pointée vers le paramètre RxContext.

Configuration requise

Plateforme cible

Desktop (Expérience utilisateur)

En-tête

Mrx.h (inclure Mrx.h)

Voir aussi

MRxAreFilesAliased

MRxCleanupFobx

MRxCloseSrvOpen

MRxCollapseOpen

MRxCreate

MRxDeallocateForFcb

MRxDeallocateForFobx

MRxExtendForCache

MRxExtendForNonCache

MRxFlush

MRxForceClosed

MRxIsLockRealizable

MRxShouldTryToCollapseThisOpen

MRxTruncate

MRxZeroExtend