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 에서 설정한 새 버퍼링 상태는 모든 버퍼링을 사용하지 않도록 설정하는 것입니다.
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
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기