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


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

Подпрограмма MRxLowIOSubmit[LOWIO_OP_IOCTL] вызывается RDBSS для выдачи запроса системы управления вводом-выводом мини-перенаправления сети.

Синтаксис

PMRX_CALLDOWN MRxLowIOSubmit[LOWIO_OP_IOCTL];

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

Параметры

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

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

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

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

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

STATUS_INVALID_DEVICE_REQUEST

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

STATUS_INVALID_PARAMETER

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

STATUS_NOT_IMPLEMENTED

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

STATUS_NOT_SUPPORTED

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

Комментарии

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

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

Для элемента LowIoContext.Operation задано значение LOWIO_OP_IOCTL.

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

Элементу LowIoContext.ParamsFor.IoCtl.IoControlCode присваивается код элемента управления IOCTL.

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

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

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

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

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

Требования

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

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

Заголовок

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

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

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]