Функция RxFsdPostRequest (rxprocs.h)
RxFsdPostRequest помещает пакет запроса ввода-вывода (IRP), заданный структурой RX_CONTEXT, в рабочую очередь для обработки процессом файловой системы (FSP).
Синтаксис
NTSTATUS RxFsdPostRequest(
[in] IN PRX_CONTEXT RxContext
);
Параметры
[in] RxContext
Указатель на RX_CONTEXT, содержащий IRP для постановки в очередь рабочего потока.
Возвращаемое значение
RxFsdPostRequest возвращает следующие значения:
Код возврата | Описание |
---|---|
|
Был выполнен асинхронный запрос, помещенный в очередь в рабочий поток для последующей обработки. Состояние запроса ожидается. |
Комментарии
RDBSS обычно вызывает rxFsdPostRequest для обработки асинхронного пакета запросов ввода-вывода (IRP). Эти irP обычно получаются RDBSS в ответ на запросы операций с файлом приложения в пользовательском режиме. Такой IRP также может выдать другой драйвер ядра.
Если элемент Flags структуры RX_CONTEXT, на который указывает параметр RxContext , не имеет RX_CONTEXT_FLAG_NO_PREPOSTING_NEEDED бита, RxFsdPostRequest попытается заблокировать любое адресное пространство пользователя, необходимое для определенных типов запросов. Запросы, которые приводят к такому поведению, основаны на элементе MajorFunction RX_CONTEXT структуры, на которую указывает RxContext , и включают следующее:
- IRP_MJ_DIRECTORY CONTROL при IRP_MN_QUERY_DIRECTORY IRP_MN_QUERY_DIRECTORY RxContext->MinorFunction.
- IRP_MJ_QUERY_EA
- IRP_MJ_READ
- IRP_MJ_SET_EA
- IRP_MJ_WRITE
Если элемент FileObject IRP не равен NULL и запрос может быть немедленно опубликован для обработки (пороговое значение для очереди устройств пустое), это произойдет. В противном случае запрос будет помещен в очередь переполнения тома.
Все вызовы RxFsdPostRequest помещаются в очередь в рабочий поток для вызова подпрограммы RxFsdDispatch , передавая параметр RxContext .
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | rxprocs.h (включая Rxprocs.h, Rxcontx.h) |
IRQL | <= APC_LEVEL |