Rutina MRxLowIOSubmit[LOWIO_OP_FSCTL]

RDBSS llama a la rutina MRxLowIOSubmit[LOWIO_OP_FSCTL] para solicitar que un minidirector de red emita una solicitud de control del sistema de archivos en el archivo remoto.

Sintaxis

PMRX_CALLDOWN MRxLowIOSubmit[LOWIO_OP_FSCTL];

NTSTATUS MRxLowIOSubmit[LOWIO_OP_FSCTL](
  _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_FSCTL] devuelve STATUS_SUCCESS si se ejecuta correctamente o un valor NTSTATUS adecuado, como uno de los siguientes:

Código devuelto Descripción
STATUS_CONNECTION_DISCONNECTED

La conexión se desconectó.

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_NETWORK_RESPONSE

Se recibió una respuesta no válida del servidor remoto.

STATUS_INVALID_PARAMETER

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

STATUS_LINK_FAILED

Error al intentar volver a conectarse a un servidor remoto para completar la solicitud.

STATUS_NOT_IMPLEMENTED

Esta rutina no se implementa.

STATUS_NOT_SUPPORTED

El minidirector de red no admite el FSCTL especificado.

STATUS_UNSUCCESSFUL

La llamada no se realizó correctamente.

Comentarios

RDBSS llama a MRxLowIOSubmit[LOWIO_OP_FSCTL] en respuesta a recibir una solicitud de IRP_MJ_FILE_SYSTEM_CONTROL .

Antes de llamar a MRxLowIOSubmit[LOWIO_OP_FSCTL], 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_FSCTL.

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

El miembro LowIoContext.ParamsFor.FsCtl.FsControlCode se establece en el código de control principal FSCTL.

El miembro LowIoContext.ParamsFor.FsCtl.MinorFunction se establece en el código de control secundario FSCTL.

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

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

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

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

Las solicitudes de código de control del sistema de archivos (FSCTL) administradas por un minidirector de red se pueden clasificar en una de varias categorías:

  • FSCTLs implementados y usados por RDBSS y el minidirector de red

  • FSCTLs que se implementan y usan solo en el minidirector de red

  • FSCTLs que nunca debería ser visto por el minidirector de red. Estas FSCTL están pensadas únicamente como ayuda de depuración.

Mientras se procesa la rutina MRxLowIOSubmit[LOWIO_OP_FSCTL], 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_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]