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


функция обратного вызова PMRX_CHANGE_BUFFERING_STATE_CALLDOWN (mrx.h)

ПодпрограммаMRxCompleteBufferingStateChangeReque st вызывается RDBSS, чтобы уведомить мини-перенаправление сети о завершении запроса на изменение состояния буферизации.

Синтаксис

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.

  • Задает FcbState член SrvOpen->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. Новый уровень оплока передается в параметре MrxContext.

RDBSS игнорирует возвращаемое значение из MRxCompleteBufferingStateChangeRequest.

Требования

Требование Ценность
целевая платформа Настольный
заголовка mrx.h (include Mrx.h)

См. также

MRxComputeNewBufferingState

MRxGetConnectionId