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