Compartir a través de


Rutina MRxLowIOSubmit[LOWIO_OP_IOCTL]

RDBSS llama a la rutina MRxLowIOSubmit[LOWIO_OP_IOCTL] para emitir una solicitud de control del sistema de E/S al minidirector de red.

Sintaxis

PMRX_CALLDOWN MRxLowIOSubmit[LOWIO_OP_IOCTL];

NTSTATUS MRxLowIOSubmit[LOWIO_OP_IOCTL](
  _Inout_ PRX_CONTEXT RxContext
)
{ ... }

Parámetros

RxContext [in, out]
Puntero a la estructura RX_CONTEXT. Este parámetro contiene el IRP que solicita la operación.

Valor devuelto

MRxLowIOSubmit[LOWIO_OP_IOCTL] devuelve STATUS_SUCCESS si se ejecuta correctamente o un valor NTSTATUS adecuado, como uno de los siguientes:

Código devuelto Descripción
STATUS_INSUFFICIENT_RESOURCES

No había recursos suficientes para completar la solicitud.

STATUS_INVALID_DEVICE_REQUEST

Se especificó una solicitud de dispositivo no válida.

STATUS_INVALID_PARAMETER

Se especificó un parámetro no válido en RxContext.

STATUS_NOT_IMPLEMENTED

Esta rutina no se implementa.

STATUS_NOT_SUPPORTED

El minidirector de red no admite el IOCTL especificado.

Comentarios

RDBSS llama a MRxLowIOSubmit[LOWIO_OP_IOCTL] en respuesta a recibir una solicitud de IRP_MJ_DEVICE_CONTROL o IRP_MJ_INTERNAL_DEVICE_CONTROL .

Antes de llamar a MRxLowIOSubmit[LOWIO_OP_IOCTL], RDBSS modifica los siguientes miembros de la estructura RX_CONTEXT a la que apunta el parámetro RxContext :

El miembro LowIoContext.Operation se establece en LOWIO_OP_IOCTL.

El miembro LowIoContext.ResourceThreadId se establece en el subproceso del proceso que inició la operación en RDBSS.

El miembro LowIoContext.ParamsFor.IoCtl.IoControlCode se establece en el código de control IOCTL.

El miembro LowIoContext.ParamsFor.IoCtl.pInputBuffer se establece en el búfer de entrada.

El miembro LowIoContext.ParamsFor.IoCtl.InputBufferLength se establece en la longitud del búfer de entrada.

El miembro LowIoContext.ParamsFor.IoCtl.pOutputBuffer se establece en el búfer de salida.

El miembro LowIoContext.ParamsFor.IoCtl.OutputBufferLength se establece en la longitud del búfer de salida.

Mientras se procesa la rutina MRxLowIOSubmit[LOWIO_OP_IOCTL], se garantiza que el miembro LowIoContext.ResourceThreadId de RX_CONTEXT indique el subproceso del proceso que inició la operación en RDBSS. El miembro LowIoContext.ResourceThreadId de RX_CONTEXT se puede usar para liberar el recurso de entrada en nombre de otro subproceso. Cuando se completa una rutina asincrónica, se puede liberar el recurso de entrada que se adquirió del subproceso inicial.

Requisitos

Plataforma de destino

Escritorio

Encabezado

Mrx.h (incluya Mrx.h)

Consulte también

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]