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