ZwFlushBuffersFileEx 함수(ntifs.h)

ZwFlushBuffersFileEx 루틴은 파일 시스템 필터 드라이버에 의해 호출되어 지정된 파일에 대한 플러시 요청을 파일 시스템에 보냅니다. 선택적 플러시 작업 플래그를 설정하여 파일 데이터가 스토리지에 기록되는 방식을 제어할 수 있습니다.

구문

NTSYSAPI NTSTATUS ZwFlushBuffersFileEx(
  [in]  HANDLE           FileHandle,
        ULONG            FLags,
        PVOID            Parameters,
        ULONG            ParametersSize,
  [out] PIO_STATUS_BLOCK IoStatusBlock
);

매개 변수

[in] FileHandle

버퍼가 플러시될 파일에 대해 ZwCreateFile 또는 ZwOpenFile 에서 반환된 핸들입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

FLags

플러시 작업 플래그. 플래그 는 0 또는 다음 값 중 하나일 수 있습니다.

의미
FLUSH_FLAGS_FILE_DATA_ONLY

파일이 NTFS 파일 시스템에 있는 경우 파일 캐시의 파일 데이터가 기록됩니다. 메타데이터가 작성되지 않고 기본 스토리지가 캐시를 플러시하도록 동기화되지 않습니다. 이 플래그는 볼륨 핸들에서 유효하지 않습니다.

FLUSH_FLAGS_NO_SYNC

파일이 NTFS 파일 시스템에 있는 경우 파일 캐시의 파일 데이터 및 메타데이터가 기록됩니다. 기본 스토리지가 캐시를 플러시하도록 동기화되지 않습니다. 이 플래그는 볼륨 핸들에서 유효하지 않습니다.

 

Parameters

호출자의 I/O 상태 블록의 주소입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

ParametersSize

매개 변수 블록의 크기(바이트)입니다.

[out] IoStatusBlock

호출자의 I/O 상태 블록의 주소입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

반환 값

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

반환 코드 설명
STATUS_MEDIA_WRITE_PROTECTED
파일은 쓰기로 보호된 볼륨에 있습니다. 오류 코드입니다.
STATUS_VOLUME_DISMOUNTED
파일은 현재 탑재되지 않은 볼륨에 있습니다. 오류 코드입니다.
STATUS_ACCESS_DENIED
파일에는 쓰기 또는 추가 액세스 권한이 없습니다.

설명

파일 시스템 필터 드라이버는 ZwFlushBuffersFileEx 를 호출하여 지정된 파일에 대한 파일 시스템에 IRP_MJ_FLUSH_BUFFERS 요청을 실행할 수 있습니다. 플러시 작업은 동기식입니다.

미니필터 드라이버는 ZwFlushBuffersFileEx를 호출하는 대신 FltFlushBuffers를 호출해야 합니다.

ZwFlushBuffersFileEx의 호출자는 IRQL = PASSIVE_LEVEL 및 특수 커널 APC를 사용하도록 설정된 상태에서 실행되어야 합니다.

참고ZwFlushBuffersFileEx 함수에 대한 호출이 사용자 모드에서 발생하는 경우 "ZwFlushBuffersFileEx" 대신 "NtFlushBuffersFileEx" 이름을 사용해야 합니다.
 
커널 모드 드라이버의 호출의 경우 Windows 네이티브 시스템 서비스 루틴의 **Nt*Xxx*** 및 **Zw*Xxx*** 버전은 입력 매개 변수를 처리하고 해석하는 방식으로 다르게 동작할 수 있습니다. 루틴의 **Nt*Xxx***와 **Zw*Xxx*** 버전 간의 관계에 대한 자세한 내용은 [네이티브 시스템 서비스 루틴의 Nt 및 Zw 버전 사용](/windows-hardware/drivers/kernel/using-nt-and-zw-versions-of-the-native-system-services-routines)을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8
대상 플랫폼 유니버설
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL(설명 섹션 참조)

추가 정보

FltFlushBuffers

IRP_MJ_FLUSH_BUFFERS

네이티브 시스템 서비스 루틴의 Nt 및 Zw 버전 사용

ZwCreateFile

ZwOpenFile