функция обратного вызова PMRX_CHANGE_BUFFERING_STATE_CALLDOWN (mrx.h)
RDBSS вызывает подпрограммуMRxCompleteBufferingStateChangeRequest для уведомления сетевого мини-перенаправителя о завершении запроса на изменение состояния буферизации.
Синтаксис
PMRX_CHANGE_BUFFERING_STATE_CALLDOWN PmrxChangeBufferingStateCalldown;
NTSTATUS PmrxChangeBufferingStateCalldown(
[in, out] IN OUT PRX_CONTEXT RxContext,
[in, out] IN OUT PMRX_SRV_OPEN SrvOpen,
[in] IN PVOID MRxContext
)
{...}
Параметры
[in, out] RxContext
Указатель на структуру RX_CONTEXT. Этот параметр содержит IRP, запрашивающий операцию.
[in, out] SrvOpen
Указатель на параметр контекста для использования подпрограммой обратного вызова сетевого мини-перенаправления.
[in] MRxContext
Указатель на структуру SRV_OPEN и связанную структуру FCB, которые необходимо изменить.
Возвращаемое значение
MRxCompleteBufferingStateChangeRequest возвращает STATUS_SUCCESS при успешном выполнении или соответствующее значение NTSTATUS, например следующее:
Код возврата | Описание |
---|---|
STATUS_NOT_SUPPORTED | Параметр в изменении запроса буферизации не поддерживается. |
Комментарии
Перед вызовом MRxCompleteBufferingStateChangeRequest RDBSS:
Получает монопольную блокировку структуры FCB.
Устанавливает для элемента FcbStateSrvOpen-Fcb> значение FCB_STATE_BUFFERSTATE_CHANGING.
Изменяет следующие элементы в структуре RX_CONTEXT, на которую указывает параметр RxContext :
- pRelevantSrvOpen имеет SRV_OPEN структуру.
- pFcb имеет структуру FCB.
- PFobx имеет структуру FOBX.
Если включена буферизация блокировки, MRxCompleteBufferingStateChangeRequest потребуется очистить блокировки диапазона байтов на сервере. Список заблокированных регионов передается мини-перенаправлению сети в элементе LowIoContext.ParamsFor.Locks.LockList структуры RX_CONTEXT.
Перенаправитель SMB использует MRxCompleteBufferingStateChangeRequest для отправки ответа на прерывание блокировки или закрытия дескриптора при разрыве операции, если файл больше не используется. Блокировки диапазона байтов, которые необходимо очистить на сервере, передаются в сетевой мини-перенаправитель в элементе LowIoContext.ParamsFor.Locks.LockList структуры RX_CONTEXT. Новый уровень oplock передается в параметре MrxContext .
RDBSS игнорирует возвращаемое значение из MRxCompleteBufferingStateChangeRequest.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | mrx.h (включая Mrx.h) |