Подпрограмма 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_SHAREDLOCK]
MRxLowIOSubmit[LOWIO_OP_UNLOCK]