Функция RxChangeBufferingState (rxprocs.h)
RxChangeBufferingState вызывается для обработки запроса на изменение состояния буферизации.
Синтаксис
NTSTATUS RxChangeBufferingState(
PSRV_OPEN SrvOpen,
PVOID Context,
BOOLEAN ComputeNewState
);
Параметры
SrvOpen
Указатель на SRV_OPEN структуру данных, которые необходимо изменить.
Context
Указатель на параметр контекста для использования обратным вызовом мини-перенаправления сети.
ComputeNewState
Значение, указывающее, требуется ли вычислить новое состояние буферизации. Если для этого значения задано значение TRUE, новое состояние буферизации определяется путем вызова мини-перенаправителя сети для вычисления нового состояния буферизации. Если это значение равно FALSE, новое состояние буферизации определяется членом BufferingFlags объекта , переданного в структуре SrvOpen .
Возвращаемое значение
RxChangeBufferingState всегда возвращает STATUS_SUCCESS, была ли эта подпрограмма успешной или произошла ошибка. При возникновении ошибки состояние буферизации изменяется таким образом, что буферизация не включена.
Комментарии
Если локальная буферизация отключена для этого FCB (FCB_STATE_DISABLE_LOCAL_BUFFERING задана в элементе структуры FcbState FCB), локальная буферизация будет отключена независимо от открытого режима в FCB и всех параметров буферизации по умолчанию. Если FCB_STATE_DISABLE_LOCAL_BUFFERING задано, новое состояние буферизации, заданное параметром RxChangeBufferingState , будет включать отключение всей буферизации.
Если параметр ComputeNewState имеет значение TRUE, то для вычисления нового состояния буферизации вызывается подпрограмма MRxComputeNewBufferingState , экспортируемая мини-перенаправителем сети.
Если fcb получается исключительно, а ComputeNewState имеет значение FALSE. тогда RxChangeBufferingState установит следующие параметры состояния буферизации:
- FCB_STATE_WRITECACHING_ENABLED
- FCB_STATE_FILESIZECACHEING_ENABLED
- FCB_STATE_FILETIMECACHEING_ENABLED
- FCB_STATE_WRITEBUFFERING_ENABLED
- FCB_STATE_LOCK_BUFFERING_ENABLED
- FCB_STATE_READBUFFERING_ENABLED
- FCB_STATE_READCACHING_ENABLED
- ShareAccess.SharedRead
- ShareAccess.SharedWrite
- ShareAccess.SharedDelete
- FCB_STATE_WRITEBUFFERING_ENABLED
- FCB_STATE_READBUFFERING_ENABLED
- FCB_STATE_OPENSHARING_ENABLED
- FCB_STATE_COLLAPSING_ENABLED
- FCB_STATE_FILESIZECACHEING_ENABLED
- FCB_STATE_FILETIMECACHEING_ENABLED
При выходе из RxChangeBufferingState не изменяется владение ресурсом.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | rxprocs.h (включая Rxprocs.h, Struchdr.h, Fcb.h) |
IRQL | <= APC_LEVEL |
См. также раздел
RxIndicateChangeOfBufferingState