FltFlushBuffers2 함수(fltkernel.h)

미니필터 드라이버는 FltFlushBuffers2 를 호출하여 지정된 파일에 대한 플러시 요청을 파일 시스템에 보냅니다.

구문

NTSTATUS FLTAPI FltFlushBuffers2(
  PFLT_INSTANCE      Instance,
  PFILE_OBJECT       FileObject,
  ULONG              FlushType,
  PFLT_CALLBACK_DATA CallbackData
);

매개 변수

Instance

[in] 호출하는 미니필터 드라이버 instance 대한 불투명 instance 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

FileObject

[in] 플러시할 파일 또는 볼륨에 대한 파일 개체 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

FlushType

[in] 파일 시스템에서 파일에서 수행해야 하는 플러시 형식을 지정합니다. FlushType 은 다음 중 하나일 수 있습니다.

FlushType 작업 값 Description
0 FileObject가 파일에 대한 경우 파일 캐시의 파일 데이터와 메타데이터가 모두 작성되고 기본 스토리지가 캐시를 플러시하도록 동기화됩니다. FileObject가 볼륨에 대한 경우 파일 시스템에서 볼륨의 수정된 모든 파일에 대한 파일 데이터와 메타데이터가 모두 작성되고 기본 스토리지가 캐시를 플러시하도록 동기화됩니다. 이 작업은 FltFlushBuffers와 동일합니다.
FLT_FLUSH_TYPE_FLUSH_AND_PURGE 0(FltFlushBuffers)과 동일하며, 플러시가 완료된 후에도 캐시가 제거된다는 점을 제외하면 입니다.
FLT_FLUSH_TYPE_FILE_DATA_ONLY 파일이 NTFS 파일 시스템에 있는 경우 파일 캐시의 파일 데이터만 기록됩니다. 메타데이터가 기록되지 않으며 기본 스토리지가 캐시를 플러시하도록 동기화되지 않습니다. FileObject가 볼륨에 대한 경우 이 플래그는 유효하지 않습니다.
FLT_FLUSH_TYPE_NO_SYNC 파일이 NTFS 파일 시스템에 있는 경우 파일 캐시의 파일 데이터 및 메타데이터가 기록됩니다. 기본 스토리지는 캐시를 플러시하도록 동기화되지 않습니다. FileObject가 볼륨에 대한 경우 이 플래그는 유효하지 않습니다.
FLT_FLUSH_TYPE_DATA_SYNC_ONLY 파일이 NTFS 파일 시스템에 있는 경우 파일 캐시의 파일 데이터가 기록됩니다. 메타데이터가 기록되지 않습니다. 기본 스토리지는 캐시를 플러시하도록 동기화됩니다. FileObject가 볼륨 또는 디렉터리에 대한 경우 이 플래그는 유효하지 않습니다.

CallbackData

[in/optional] 호출자의 IRP 확장을 전파하는 데 사용되는 선택적 FLT_CALLBACK_DATA 구조체에 대한 포인터입니다. FltPropagateIrpExtension을 참조하세요.

반환 값

FltFlushBuffers2 는 STATUS_SUCCESS 또는 다음 중 하나와 같은 적절한 NTSTATUS 값을 반환합니다.

반환 코드 설명
STATUS_MEDIA_WRITE_PROTECTED 파일은 쓰기로 보호되는 볼륨에 상주합니다. 오류 코드입니다.
STATUS_VOLUME_DISMOUNTED 파일은 현재 탑재되지 않은 볼륨에 있습니다. 오류 코드입니다.

설명

미니필터 드라이버는 FltFlushBuffers2 를 호출하여 지정된 파일에 대한 파일 시스템에 IRP_MJ_FLUSH_BUFFERS 요청을 실행할 수 있습니다. 플러시 작업은 동기적이며 지정된 인스턴스 아래의 instance 발급됩니다.

파일이 NTFS 파일 시스템에 있는 경우 미니 필터는 FlushType 매개 변수를 통해 플러시 유형을 제어할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10, 버전 1903
머리글 fltkernel.h

추가 정보

FltFlushBuffers

FltPropagateIrpExtension

IRP_MJ_FLUSH_BUFFERS