Поделиться через


Подпрограмма MRxLowIOSubmit[LOWIO_OP_FSCTL]

Подпрограмма MRxLowIOSubmit[LOWIO_OP_FSCTL] вызывается RDBSS для запроса на то, чтобы сетевой мини-перенаправитель выдал запрос на управление файловой системой для удаленного файла.

Синтаксис

PMRX_CALLDOWN MRxLowIOSubmit[LOWIO_OP_FSCTL];

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

Параметры

RxContext [in, out]
Указатель на структуру RX_CONTEXT. Этот параметр содержит IRP, запрашивающий операцию.

Возвращаемое значение

MRxLowIOSubmit[LOWIO_OP_FSCTL] возвращает STATUS_SUCCESS при успешном выполнении или соответствующее значение NTSTATUS, например одно из следующих значений:

Код возврата Описание
STATUS_CONNECTION_DISCONNECTED

Подключение было отключено.

STATUS_INSUFFICIENT_RESOURCES

Недостаточно ресурсов для выполнения запроса.

STATUS_INVALID_DEVICE_REQUEST

Указан недопустимый запрос устройства.

STATUS_INVALID_NETWORK_RESPONSE

От удаленного сервера получен недопустимый ответ.

STATUS_INVALID_PARAMETER

В RxContext указан недопустимый параметр.

STATUS_LINK_FAILED

Попытка повторно подключиться к удаленному серверу для выполнения запроса завершилась сбоем.

STATUS_NOT_IMPLEMENTED

Эта подпрограмма не реализована.

STATUS_NOT_SUPPORTED

Указанный параметр FSCTL не поддерживается сетевым мини-перенаправлением.

STATUS_UNSUCCESSFUL

Звонок не увенчался успехом.

Комментарии

RDBSS вызывает MRxLowIOSubmit[LOWIO_OP_FSCTL] в ответ на получение запроса IRP_MJ_FILE_SYSTEM_CONTROL .

Перед вызовом MRxLowIOSubmit[LOWIO_OP_FSCTL], RDBSS изменяет следующие элементы в структуре RX_CONTEXT, на которую указывает параметр RxContext :

Член LowIoContext.Operation имеет значение LOWIO_OP_FSCTL.

Для элемента LowIoContext.ResourceThreadId задается поток процесса, который инициировал операцию в RDBSS.

Элементу LowIoContext.ParamsFor.FsCtl.FsControlCode присваивается основной код элемента управления FSCTL.

Элементу LowIoContext.ParamsFor.FsCtl.MinorFunction присваивается дополнительный код элемента управления FSCTL.

Для элемента LowIoContext.ParamsFor.FsCtl.pInputBuffer задан входной буфер.

Член LowIoContext.ParamsFor.FsCtl.InputBufferLength имеет длину входного буфера.

Для элемента LowIoContext.ParamsFor.FsCtl.pOutputBuffer задан выходной буфер.

Член LowIoContext.ParamsFor.FsCtl.OutputBufferLength имеет длину выходного буфера.

Запросы кода управления файловой системой (FSCTL), обрабатываемые сетевым мини-перенаправлением, можно разделить на одну из нескольких категорий:

  • Списки FSCTL, реализованные и используемые RDBSS и мини-перенаправителем сети

  • Списки FSCTL, реализованные и используемые только сетевым мини-перенаправлением

  • Списки FSCTL, которые никогда не должны быть замечены мини-перенаправлением сети. Эти FSCTL предназначены исключительно для отладки.

Пока обрабатывается подпрограмма MRxLowIOSubmit[LOWIO_OP_FSCTL] , элемент LowIoContext.ResourceThreadId RX_CONTEXT гарантированно указывает поток процесса, который инициировал операцию в RDBSS. Элемент LowIoContext.ResourceThreadId RX_CONTEXT можно использовать для освобождения входного ресурса от имени другого потока. После завершения асинхронной подпрограммы можно освободить входной ресурс, полученный из начального потока.

Требования

Целевая платформа

Персональный компьютер

Заголовок

Mrx.h (включая Mrx.h)

См. также раздел

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]