GetFileInformationByHandleEx 함수(winbase.h)
지정된 파일의 파일 정보를 검색합니다.
데스크톱 앱에 대한 이 함수의 더 기본적인 버전은 GetFileInformationByHandle을 참조하세요.
파일 핸들을 사용하여 파일 정보를 설정하려면 SetFileInformationByHandle을 참조하세요.
구문
BOOL GetFileInformationByHandleEx(
[in] HANDLE hFile,
[in] FILE_INFO_BY_HANDLE_CLASS FileInformationClass,
[out] LPVOID lpFileInformation,
[in] DWORD dwBufferSize
);
매개 변수
[in] hFile
검색할 정보가 포함된 파일에 대한 핸들입니다.
이 핸들은 파이프 핸들이 아니어야 합니다.
[in] FileInformationClass
검색할 정보의 형식을 지정하는 FILE_INFO_BY_HANDLE_CLASS 열거형 값입니다.
유효한 값의 테이블은 주의 섹션을 참조하세요.
[out] lpFileInformation
요청된 파일 정보를 수신하는 버퍼에 대한 포인터입니다. 반환되는 구조체는 FileInformationClass에 지정된 클래스에 해당합니다. 유효한 구조체 형식의 테이블은 주의 섹션을 참조하세요.
[in] dwBufferSize
lpFileInformation 버퍼의 크기(바이트)입니다.
반환 값
함수가 성공하면 반환 값이 0이 아니고 lpFileInformation 매개 변수가 가리키는 버퍼에 파일 정보 데이터가 포함됩니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
설명
FileInformationClass가 FileStreamInfo이고 호출이 성공하지만 스트림이 반환되지 않으면 GetLastError에서 반환되는 오류가 ERROR_HANDLE_EOF.
특정 파일 정보 클래스는 다른 운영 체제 릴리스에서 약간 다르게 동작합니다. 이러한 클래스는 기본 드라이버에서 지원되며 반환되는 모든 정보는 운영 체제 릴리스 간에 변경될 수 있습니다.
다음 표에서는 이 함수와 함께 사용할 유효한 파일 정보 클래스 형식 및 해당 데이터 구조 형식을 보여 있습니다.
FileInformationClass 값 | lpFileInformation 형식 |
---|---|
FileBasicInfo (0) | FILE_BASIC_INFO |
FileStandardInfo (1) | FILE_STANDARD_INFO |
FileNameInfo (2) | FILE_NAME_INFO |
FileStreamInfo (7) | FILE_STREAM_INFO |
FileCompressionInfo (8) | FILE_COMPRESSION_INFO |
FileAttributeTagInfo (9) | FILE_ATTRIBUTE_TAG_INFO |
FileIdBothDirectoryInfo (0xa) | FILE_ID_BOTH_DIR_INFO |
FileIdBothDirectoryRestartInfo (0xb) | FILE_ID_BOTH_DIR_INFO |
FileRemoteProtocolInfo (0xd) | FILE_REMOTE_PROTOCOL_INFO |
FileFullDirectoryInfo (0xe) | FILE_FULL_DIR_INFO |
FileFullDirectoryRestartInfo (0xf) | FILE_FULL_DIR_INFO |
FileStorageInfo (0x10) | FILE_STORAGE_INFO |
FileAlignmentInfo (0x11) | FILE_ALIGNMENT_INFO |
FileIdInfo (0x12) | FILE_ID_INFO |
FileIdExtdDirectoryInfo (0x13) | FILE_ID_EXTD_DIR_INFO |
FileIdExtdDirectoryRestartInfo (0x14) | FILE_ID_EXTD_DIR_INFO |
거래된 작업
호출 시 스레드에 바인딩된 트랜잭션이 있는 경우 함수는 격리된 파일 뷰의 압축된 파일 크기를 반환합니다. 자세한 내용은 트랜잭션 NTFS 정보를 참조하세요.Windows 8 및 Windows Server 2012에서 이 함수는 다음 기술을 통해 지원됩니다.
기술 | 지원됨 |
---|---|
SMB(서버 메시지 블록) 3.0 프로토콜 | 예 |
SMB 3.0 TFO(투명 장애 조치(failover)) | 예 |
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 | 예 |
CsvFS(클러스터 공유 볼륨 파일 시스템) | 예 |
ReFS(Resilient File System) | 예 |
요구 사항
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | winbase.h(Windows.h 포함) |
라이브러리 | Kernel32.lib; Windows Server 2003 및 Windows XP의 FileExtd.lib |
DLL | Kernel32.dll |
재배포 가능 파일 | Windows Server 2003 및 Windows XP의 Windows SDK. |