NtFlushBuffersFileEx 함수(ntifs.h)
NtFlushBuffersFileEx 루틴은 지정된 파일에 대한 플러시 요청을 파일 시스템에 보냅니다. 파일 데이터가 스토리지에 기록되는 방법을 제어하도록 선택적 플러시 작업 플래그를 설정할 수 있습니다.
구문
__kernel_entry NTSYSCALLAPI NTSTATUS NtFlushBuffersFileEx(
[in] HANDLE FileHandle,
[in] ULONG Flags,
[in] PVOID Parameters,
[in] ULONG ParametersSize,
[out] PIO_STATUS_BLOCK IoStatusBlock
);
매개 변수
[in] FileHandle
버퍼가 플러시되는 파일에 대해 NtCreateFile 또는 NtOpenFile 에서 반환된 핸들입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
[in] Flags
플러시 작업 플래그. 플래그 는 다음 값 중 하나일 수 있습니다.
값 | 의미 |
---|---|
0(일반) | 파일 캐시의 파일 데이터 및 메타데이터가 작성되고 기본 스토리지가 캐시를 플러시하도록 동기화됩니다. 지원되는 Windows 파일 시스템: NTFS, ReFS, FAT, exFAT. |
FLUSH_FLAGS_FILE_DATA_ONLY | 파일 캐시의 파일 데이터가 기록됩니다. 메타데이터가 기록되지 않으며 기본 스토리지가 캐시를 플러시하도록 동기화되지 않습니다. 이 플래그는 볼륨 핸들에서 유효하지 않습니다. 지원되는 Windows 파일 시스템: NTFS, FAT, exFAT. |
FLUSH_FLAGS_NO_SYNC | 파일 캐시의 파일 데이터 및 메타데이터가 기록됩니다. 기본 스토리지는 캐시를 플러시하도록 동기화되지 않습니다. 이 플래그는 볼륨 핸들에서 유효하지 않습니다. 지원되는 Windows 파일 시스템: NTFS, FAT, exFAT. |
FLUSH_FLAGS_FILE_DATA_SYNC_ONLY | 지정된 파일의 데이터는 Windows 메모리 내 캐시에서 기록됩니다. 데이터 검색에 필요한 메타데이터만 플러시됩니다(타임스탬프 업데이트는 가능한 한 많이 건너뜁니다). 기본 스토리지는 캐시를 플러시하도록 동기화됩니다. 이 플래그는 볼륨 또는 디렉터리 핸들에서 유효하지 않습니다. 지원되는 Windows 파일 시스템: NTFS. |
[in] Parameters
추가 매개 변수가 있는 블록에 대한 포인터입니다. 이 매개 변수는 현재 NULL로 설정해야 합니다.
[in] ParametersSize
매개 변수가 가리키는 블록의 크기(바이트)입니다. 이 매개 변수는 현재 0으로 설정해야 합니다.
[out] IoStatusBlock
호출자의 I/O 상태 블록의 주소입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.
반환 값
NtFlushBuffersFileEx 는 STATUS_SUCCESS 또는 다음 중 하나와 같은 적절한 NTSTATUS 값을 반환합니다.
반환 코드 | 설명 |
---|---|
STATUS_MEDIA_WRITE_PROTECTED | 파일은 쓰기로 보호된 볼륨에 있습니다. 오류 코드입니다. |
STATUS_VOLUME_DISMOUNTED | 파일은 현재 탑재되지 않은 볼륨에 있습니다. 오류 코드입니다. |
STATUS_ACCESS_DENIED | 파일에는 쓰기 또는 추가 액세스 권한이 없습니다. |
설명
미니필터 드라이버는 NtFlushBuffersFileEx를 호출하는 대신 FltFlushBuffers2를 호출해야 합니다.
레거시 파일 시스템 필터 드라이버는 NtFlushBuffersFileEx 를 호출하여 지정된 파일에 대한 파일 시스템에 IRP_MJ_FLUSH_BUFFERS 요청을 실행할 수 있습니다. 플러시 작업은 동기적입니다.
NtFlushBuffersFileEx의 호출자는 IRQL = PASSIVE_LEVEL 및 특수 커널 APC를 사용하도록 설정된 상태에서 실행되어야 합니다.
커널 모드 드라이버에서 호출하는 경우 Windows 네이티브 시스템 서비스 루틴의 NtXxx 및 ZwXxx 버전은 입력 매개 변수를 처리하고 해석하는 방식으로 다르게 동작할 수 있습니다. 루틴의 NtXxx 버전과 ZwXxx 버전 간의 관계에 대한 자세한 내용은 네이티브 시스템 서비스 루틴의 Nt 및 Zw 버전 사용을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 |
대상 플랫폼 | 유니버설 |
헤더 | ntifs.h(Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL(설명 섹션 참조) |