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_SHAREDLOCK]
MRxLowIOSubmit[LOWIO_OP_UNLOCK]