PMRX_CHANGE_BUFFERING_STATE_CALLDOWN 콜백 함수(mrx.h)
RDBSSMRxCompleteBufferingStateChangeRequest 루틴을 호출하여 네트워크 미니 리디렉터에 버퍼링 상태 변경 요청이 완료되었음을 알립니다.
통사론
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 구조체에 대한 배타적 잠금을 획득합니다.
SrvOpen->FcbFcbState 멤버를 FCB_STATE_BUFFERSTATE_CHANGING 설정합니다.
RxContext 매개 변수가 가리키는 RX_CONTEXT 구조체에서 다음 멤버를 수정합니다.
- pRelevantSrvOpen SRV_OPEN 구조체로 설정됩니다.
- pFcb FCB 구조체로 설정됩니다.
- pFobx FOBX 구조체로 설정됩니다.
잠금 버퍼링을 사용하는 경우 MRxCompleteBufferingStateChangeRequest 바이트 범위 잠금을 서버로 플러시해야 합니다. 잠긴 지역 목록은 RX_CONTEXT 구조의 LowIoContext.ParamsFor.Locks.LockList 멤버의 네트워크 미니 리렉터로 전달됩니다.
SMB(서버 메시지 블록) 리디렉션자는 MRxCompleteBufferingStateChangeRequest 사용하여 oplock 중단 응답을 보내거나 파일이 더 이상 사용되지 않는 경우 oplock 중단에서 핸들을 닫습니다. 서버로 플러시해야 하는 바이트 범위 잠금은 RX_CONTEXT 구조의 LowIoContext.ParamsFor.Locks.LockList 멤버의 네트워크 미니 리다이렉터로 전달됩니다. 새 oplock 수준은 MrxContext 매개 변수에 전달됩니다.
RDBSS는 MRxCompleteBufferingStateChangeRequest반환 값을 무시합니다.
요구 사항
요구 | 값 |
---|---|
대상 플랫폼 | 바탕 화면 |
헤더 | mrx.h(Mrx.h 포함) |