RxChangeBufferingState 함수(rxprocs.h)

RxChangeBufferingState 는 버퍼링 상태 변경 요청을 처리하기 위해 호출됩니다.

구문

NTSTATUS RxChangeBufferingState(
  PSRV_OPEN SrvOpen,
  PVOID     Context,
  BOOLEAN   ComputeNewState
);

매개 변수

SrvOpen

변경할 SRV_OPEN 데이터 구조에 대한 포인터입니다.

Context

네트워크 미니 리다이렉터 콜백에서 사용할 컨텍스트 매개 변수에 대한 포인터입니다.

ComputeNewState

새 버퍼링 상태를 계산할지를 나타내는 값입니다. 이 값을 TRUE로 설정하면 네트워크 미니 리다이렉터를 호출하여 새 버퍼링 상태를 계산하여 새 버퍼링 상태가 결정됩니다. 이 값이 FALSE이면 새 버퍼링 상태는 전달된 SrvOpen 구조체의 BufferingFlags 멤버에 의해 결정됩니다.

반환 값

RxChangeBufferingState 는 이 루틴이 성공했는지 또는 오류가 발생하는지 여부에 STATUS_SUCCESS 항상 반환합니다. 오류가 발생하면 버퍼링이 활성화되지 않도록 버퍼링 상태가 변경됩니다.

설명

이 FCB에 대해 로컬 버퍼링이 사용하지 않도록 설정된 경우(FCB_STATE_DISABLE_LOCAL_BUFFERING FCB의 FcbState 구조 멤버에서 설정됨) FCB의 열린 모드 및 모든 기본 버퍼링 옵션에 관계없이 로컬 버퍼링을 사용하지 않도록 설정합니다. FCB_STATE_DISABLE_LOCAL_BUFFERING 설정되면 RxChangeBufferingState 에서 설정한 새 버퍼링 상태는 모든 버퍼링을 사용하지 않도록 설정하는 것입니다.

ComputeNewStateTRUE이면 네트워크 미니 리다이렉터에서 내보낸 MRxComputeNewBufferingState 루틴이 호출되어 사용할 새 버퍼링 상태를 계산합니다.

FCB를 독점적으로 획득하고 ComputeNewStateFALSE인 경우 그런 다음 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
FCB를 독점적으로 획득하려면 다음 값으로 FCB를 열지 않아야 합니다.
  • ShareAccess.SharedRead
  • ShareAccess.SharedWrite
  • ShareAccess.SharedDelete
RDBSS는 현재 가능한 여러 버퍼링 옵션을 사용하지 않으므로 RxChangeBufferingState를 사용하여 설정되면 RDBSS에서 이러한 옵션을 내부적으로 무시합니다. 이러한 무시된 버퍼링 옵션은 다음과 같습니다.
  • FCB_STATE_WRITEBUFFERING_ENABLED
  • FCB_STATE_READBUFFERING_ENABLED
  • FCB_STATE_OPENSHARING_ENABLED
  • FCB_STATE_COLLAPSING_ENABLED
  • FCB_STATE_FILESIZECACHEING_ENABLED
  • FCB_STATE_FILETIMECACHEING_ENABLED
FCB_STATE_WRITECACHING_ENABLED 버퍼링 상태가 off로 변경되면 시스템 캐시의 모든 FCB가 플러시됩니다.

RxChangeBufferingState에서 종료할 때 리소스 소유권은 변경되지 않습니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 rxprocs.h(Rxprocs.h, Struchdr.h, Fcb.h 포함)
IRQL <= APC_LEVEL

추가 정보

RxIndicateChangeOfBufferingState

RxIndicateChangeOfBufferingStateForSrvOpen

SRV_OPEN 구조체