FlushViewOfFile 함수(memoryapi.h)

파일의 매핑된 보기 내에서 바이트 범위를 디스크에 씁니다.

구문

BOOL FlushViewOfFile(
  [in] LPCVOID lpBaseAddress,
  [in] SIZE_T  dwNumberOfBytesToFlush
);

매개 변수

[in] lpBaseAddress

매핑된 파일의 디스크 표현으로 플러시할 바이트 범위의 기본 주소에 대한 포인터입니다.

[in] dwNumberOfBytesToFlush

플러시할 바이트 수입니다. dwNumberOfBytesToFlush가 0이면 파일이 기본 주소에서 매핑의 끝으로 플러시됩니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

매핑된 보기 범위를 플러시하면 해당 범위 내의 더티 페이지를 디스크에 쓰기 시작합니다. 더티 페이지는 파일 보기가 매핑된 이후 콘텐츠가 변경된 페이지입니다. FlushViewOfFile 함수는 파일 메타데이터를 플러시하지 않으며 변경 내용이 기본 하드웨어 디스크 캐시에서 플러시되고 디스크에 물리적으로 기록될 때까지 반환될 때까지 기다리지 않습니다. 모든 더티 페이지와 파일의 메타데이터를 플러시하고 실제로 디스크에 기록되도록 하려면 FlushViewOfFile을 호출한 다음 FlushFileBuffers 함수를 호출합니다.

네트워크를 통해 메모리 매핑된 파일을 플러시할 때 FlushViewOfFile 은 데이터가 로컬 컴퓨터에서 작성되었지만 데이터가 원격 컴퓨터에 상주하지 않도록 보장합니다. 서버는 원격 쪽에서 데이터를 캐시할 수 있습니다. 따라서 FlushViewOfFile 은 데이터가 디스크에 물리적으로 기록되기 전에 를 반환할 수 있습니다.

매핑된 보기를 통해 파일을 수정할 때 마지막 수정 타임스탬프는 자동으로 업데이트되지 않을 수 있습니다. 필요한 경우 호출자는 SetFileTime 을 사용하여 타임스탬프를 설정해야 합니다.

Windows Server 2012 이 함수는 다음 기술에서 지원됩니다.

기술 지원됨
SMB(서버 메시지 블록) 3.0 프로토콜 Yes
SMB 3.0 TFO(투명 장애 조치(failover)) Yes
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 Yes
CsvFS(클러스터 공유 볼륨 파일 시스템) Yes
ReFS(Resilient File System) Yes
 

CsvF가 일시 중지되면 잠금 충돌이 있음을 나타내는 오류와 함께 이 호출이 실패할 수 있습니다.

예제

예제는 파일 보기에서 읽기 및 쓰기를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 memoryapi.h(Windows.h, Memoryapi.h 포함)
라이브러리 onecore.lib
DLL Kernel32.dll

참고 항목

CreateFile

파일 뷰 만들기

파일 매핑 함수

MapViewOfFile

UnmapViewOfFile