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
피드백
다음에 대한 사용자 의견 제출 및 보기