Partager via


Routine MRxLowIOSubmit[LOWIO_OP_FSCTL]

La routine MRxLowIOSubmit[LOWIO_OP_FSCTL] est appelée par RDBSS pour demander qu’un mini-redirecteur réseau émette une demande de contrôle du système de fichiers sur un fichier distant.

Syntaxe

PMRX_CALLDOWN MRxLowIOSubmit[LOWIO_OP_FSCTL];

NTSTATUS MRxLowIOSubmit[LOWIO_OP_FSCTL](
  _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

MRxLowIOSubmit[LOWIO_OP_FSCTL] retourne STATUS_SUCCESS sur la réussite ou une valeur NTSTATUS appropriée, telle que l’une des suivantes :

Code de retour Description
STATUS_CONNECTION_DISCONNECTED

La connexion a été déconnectée.

STATUS_INSUFFICIENT_RESOURCES

Les ressources étaient insuffisantes pour terminer la demande.

STATUS_INVALID_DEVICE_REQUEST

Une demande d’appareil non valide a été spécifiée.

STATUS_INVALID_NETWORK_RESPONSE

Une réponse non valide a été reçue du serveur distant.

STATUS_INVALID_PARAMETER

Un paramètre non valide a été spécifié dans RxContext.

STATUS_LINK_FAILED

Échec de la tentative de reconnexion à un serveur distant pour terminer la demande.

STATUS_NOT_IMPLEMENTED

Cette routine n’est pas implémentée.

STATUS_NOT_SUPPORTED

Le fichier FSCTL spécifié n’est pas pris en charge par le mini-redirecteur réseau.

STATUS_UNSUCCESSFUL

L’appel a échoué.

Remarques

RDBSS appelle MRxLowIOSubmit[LOWIO_OP_FSCTL] en réponse à la réception d’une demande de IRP_MJ_FILE_SYSTEM_CONTROL .

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

Le membre LowIoContext.Operation est défini sur LOWIO_OP_FSCTL.

Le membre LowIoContext.ResourceThreadId est défini sur le thread du processus qui a lancé l’opération dans RDBSS.

Le membre LowIoContext.ParamsFor.FsCtl.FsControlCode est défini sur le code de contrôle principal FSCTL.

Le membre LowIoContext.ParamsFor.FsCtl.MinorFunction est défini sur le code de contrôle secondaire FSCTL.

Le membre LowIoContext.ParamsFor.FsCtl.pInputBuffer est défini sur la mémoire tampon d’entrée.

Le membre LowIoContext.ParamsFor.FsCtl.InputBufferLength est défini sur la longueur de la mémoire tampon d’entrée.

Le membre LowIoContext.ParamsFor.FsCtl.pOutputBuffer est défini sur la mémoire tampon de sortie.

Le membre LowIoContext.ParamsFor.FsCtl.OutputBufferLength est défini sur la longueur de la mémoire tampon de sortie.

Les requêtes FSCTL (File System Control Code) gérées par un mini-redirecteur réseau peuvent être classées dans l’une des catégories suivantes :

  • FSCTL implémentés et utilisés par RDBSS et le mini redirecteur réseau

  • FSCTL implémentés et utilisés uniquement par le mini-redirecteur réseau

  • FSCTL qui ne devraient jamais être vus par le mini-redirecteur réseau. Ces FSCTL sont uniquement destinés à servir d’aide au débogage.

Pendant le traitement de la routine MRxLowIOSubmit[LOWIO_OP_FSCTL], le membre LowIoContext.ResourceThreadId de RX_CONTEXT est garanti pour indiquer le thread du processus qui a lancé l’opération dans RDBSS. Le membre LowIoContext.ResourceThreadId de RX_CONTEXT peut être utilisé pour libérer la ressource d’entrée pour le compte d’un autre thread. Lorsqu’une routine asynchrone se termine, la ressource d’entrée qui a été acquise à partir du thread initial peut être libérée.

Configuration requise

Plateforme cible

Desktop (Expérience utilisateur)

En-tête

Mrx.h (inclure Mrx.h)

Voir aussi

MRxLowIOSubmit[LOWIO_OP_EXCLUSIVELOCK]

MRxLowIOSubmit[LOWIO_OP_IOCTL]

MRxLowIOSubmit[LOWIO_OP_NOTIFY_CHANGE_DIRECTORY]

MRxLowIOSubmit[LOWIO_OP_READ]

MRxLowIOSubmit[LOWIO_OP_SHAREDLOCK]

MRxLowIOSubmit[LOWIO_OP_UNLOCK]

MRxLowIOSubmit[LOWIO_OP_UNLOCK_MULTIPLE]

MRxLowIOSubmit[LOWIO_OP_WRITE]