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