Partager via


Routine MRxLowIOSubmit[LOWIO_OP_IOCTL]

La routine MRxLowIOSubmit[LOWIO_OP_IOCTL] est appelée par RDBSS pour émettre une demande de contrôle système d’E/S au mini-redirecteur réseau.

Syntaxe

PMRX_CALLDOWN MRxLowIOSubmit[LOWIO_OP_IOCTL];

NTSTATUS MRxLowIOSubmit[LOWIO_OP_IOCTL](
  _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_IOCTL] retourne STATUS_SUCCESS sur la réussite ou une valeur NTSTATUS appropriée, comme l’une des valeurs suivantes :

Code de retour Description
STATUS_INSUFFICIENT_RESOURCES

Les ressources étaient insuffisantes pour effectuer la demande.

STATUS_INVALID_DEVICE_REQUEST

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

STATUS_INVALID_PARAMETER

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

STATUS_NOT_IMPLEMENTED

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

STATUS_NOT_SUPPORTED

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

Remarques

RDBSS appelle MRxLowIOSubmit[LOWIO_OP_IOCTL] en réponse à la réception d’un IRP_MJ_DEVICE_CONTROL ou d’une IRP_MJ_INTERNAL_DEVICE_CONTROL demandes.

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

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

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

Le membre LowIoContext.ParamsFor.IoCtl.IoControlCode est défini sur le code de contrôle IOCTL.

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

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

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

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

Pendant le traitement de la routine MRxLowIOSubmit[LOWIO_OP_IOCTL], 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_FSCTL]

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]