GetVolumeInformationA 함수(fileapi.h)
지정된 루트 디렉터리와 연결된 파일 시스템 및 볼륨에 대한 정보를 검색합니다.
이 정보를 검색할 때 핸들을 지정하려면 GetVolumeInformationByHandleW 함수를 사용합니다.
파일 또는 디렉터리의 현재 압축 상태를 검색하려면 FSCTL_GET_COMPRESSION사용합니다.
통사론
BOOL GetVolumeInformationA(
[in, optional] LPCSTR lpRootPathName,
[out, optional] LPSTR lpVolumeNameBuffer,
[in] DWORD nVolumeNameSize,
[out, optional] LPDWORD lpVolumeSerialNumber,
[out, optional] LPDWORD lpMaximumComponentLength,
[out, optional] LPDWORD lpFileSystemFlags,
[out, optional] LPSTR lpFileSystemNameBuffer,
[in] DWORD nFileSystemNameSize
);
매개 변수
[in, optional] lpRootPathName
설명할 볼륨의 루트 디렉터리가 포함된 문자열에 대한 포인터입니다.
이 매개 변수가 NULL
[out, optional] lpVolumeNameBuffer
지정된 볼륨의 이름을 받는 버퍼에 대한 포인터입니다. 버퍼 크기는 nVolumeNameSize 매개 변수에 의해 지정됩니다.
[in] nVolumeNameSize
TCHAR볼륨 이름 버퍼의 길이입니다. 최대 버퍼 크기는 MAX_PATHs+1입니다.
볼륨 이름 버퍼가 제공되지 않으면 이 매개 변수는 무시됩니다.
[out, optional] lpVolumeSerialNumber
볼륨 일련 번호를 받는 변수에 대한 포인터입니다.
일련 번호가 필요하지 않은 경우 이 매개 변수는 NULL
이 함수는 하드 디스크의 형식을 지정할 때 운영 체제에서 할당하는 볼륨 일련 번호를 반환합니다. 제조업체에서 할당하는 하드 디스크의 일련 번호를 프로그래밍 방식으로 가져오려면 WMI(Windows Management Instrumentation) Win32_PhysicalMedia 속성 SerialNumber사용합니다.
[out, optional] lpMaximumComponentLength
지정된 파일 시스템에서 지원하는 파일 이름 구성 요소의 TCHAR최대 길이를 수신하는 변수에 대한 포인터입니다.
파일 이름 구성 요소는 백 슬래시 사이의 파일 이름의 부분입니다.
*lpMaximumComponentLength 가리키는 변수에 저장된 값은 지정된 파일 시스템에서 긴 이름을 지원함을 나타내는 데 사용됩니다. 예를 들어 긴 이름을 지원하는 FAT 파일 시스템의 경우 함수는 이전 8.3 표시기가 아닌 값 255를 저장합니다. NTFS 파일 시스템을 사용하는 시스템에서도 긴 이름을 지원합니다.
[out, optional] lpFileSystemFlags
지정된 파일 시스템과 연결된 플래그를 수신하는 변수에 대한 포인터입니다.
이 매개 변수는 다음 플래그 중 하나 이상일 수 있습니다. 그러나 FILE_FILE_COMPRESSION 및 FILE_VOL_IS_COMPRESSED 함께 사용할 수 없습니다.
값 | 의미 |
---|---|
FILE_CASE_SENSITIVE_SEARCH 0x00000001 |
지정된 볼륨은 대/소문자를 구분하는 파일 이름을 지원합니다. |
FILE_CASE_PRESERVED_NAMES 0x00000002 |
지정된 볼륨은 디스크에 이름을 배치할 때 파일 이름의 보존된 대/소문자를 지원합니다. |
FILE_UNICODE_ON_DISK 0x00000004 |
지정된 볼륨은 디스크에 표시될 때 파일 이름의 유니코드를 지원합니다. |
FILE_PERSISTENT_ACLS 0x00000008 |
지정된 볼륨은 ACL(액세스 제어 목록)을 유지하고 적용합니다. 예를 들어 NTFS 파일 시스템은 ACL을 유지 및 적용하며 FAT 파일 시스템은 유지하지 않습니다. |
FILE_FILE_COMPRESSION 0x00000010 |
지정된 볼륨은 파일 기반 압축을 지원합니다. |
FILE_VOLUME_QUOTAS 0x00000020 |
지정된 볼륨은 디스크 할당량을 지원합니다. |
FILE_SUPPORTS_SPARSE_FILES 0x00000040 |
지정된 볼륨은 스파스 파일을 지원합니다. |
FILE_SUPPORTS_REPARSE_POINTS 0x00000080 |
지정된 볼륨은 재문 분석 지점을 지원합니다. |
FILE_SUPPORTS_REMOTE_STORAGE 0x00000100 |
파일 시스템은 원격 스토리지를 지원합니다. |
FILE_RETURNS_CLEANUP_RESULT_INFO 0x00000200 |
성공적인 정리 작업에서 파일 시스템은 정리 중에 수행되는 추가 작업(예: 파일 삭제)을 설명하는 정보를 반환합니다. 파일 시스템 필터는 정리 후 콜백에서 이 정보를 검사할 수 있습니다. |
FILE_SUPPORTS_POSIX_UNLINK_RENAME 0x00000400 |
파일 시스템은 POSIX 스타일 삭제 및 이름 바꾸기 작업을 지원합니다. |
FILE_VOLUME_IS_COMPRESSED 0x00008000 |
지정된 볼륨은 압축된 볼륨(예: DoubleSpace 볼륨)입니다. |
FILE_SUPPORTS_OBJECT_IDS 0x00010000 |
지정된 볼륨은 개체 식별자를 지원합니다. |
FILE_SUPPORTS_ENCRYPTION 0x00020000 |
지정된 볼륨은 EFS(암호화된 파일 시스템)를 지원합니다. 자세한 내용은 파일 암호화 |
FILE_NAMED_STREAMS 0x00040000 |
지정된 볼륨은 명명된 스트림을 지원합니다. |
FILE_READ_ONLY_VOLUME 0x00080000 |
지정된 볼륨이 읽기 전용입니다. |
FILE_SEQUENTIAL_WRITE_ONCE 0x00100000 |
지정된 볼륨은 단일 순차 쓰기를 지원합니다. |
FILE_SUPPORTS_TRANSACTIONS 0x00200000 |
지정된 볼륨은 트랜잭션을 지원합니다. 자세한 내용은 KTM |
FILE_SUPPORTS_HARD_LINKS 0x00400000 |
지정된 볼륨은 하드 링크를 지원합니다. 자세한 내용은 하드 링크 및 접합 Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 Windows Server 2008 R2 및 Windows 7까지 지원되지 않습니다. |
FILE_SUPPORTS_EXTENDED_ATTRIBUTES 0x00800000 |
지정된 볼륨은 확장 특성을 지원합니다. 확장 특성은 애플리케이션이 파일과 연결할 수 있고 파일 데이터의 일부가 아닌 애플리케이션별 메타데이터의 일부입니다. Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 Windows Server 2008 R2 및 Windows 7까지 지원되지 않습니다. |
FILE_SUPPORTS_OPEN_BY_FILE_ID 0x01000000 |
파일 시스템은 FileID에서 열기를 지원합니다. 자세한 내용은 FILE_ID_BOTH_DIR_INFO참조하세요. Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 Windows Server 2008 R2 및 Windows 7까지 지원되지 않습니다. |
FILE_SUPPORTS_USN_JOURNAL 0x02000000 |
지정된 볼륨은 USN(업데이트 시퀀스 번호) 저널을 지원합니다. 자세한 내용은 저널 레코드 변경 Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP: 이 값은 Windows Server 2008 R2 및 Windows 7까지 지원되지 않습니다. |
FILE_SUPPORTS_INTEGRITY_STREAMS 0x04000000 |
파일 시스템은 |
FILE_SUPPORTS_BLOCK_REFCOUNTING 0x08000000 |
지정된 볼륨은 동일한 볼륨의 파일 간에 논리 클러스터 공유를 지원합니다. 파일 시스템은 쓰기를 공유 클러스터에 다시 할당합니다. FSCTL_DUPLICATE_EXTENTS_TO_FILE 지원되는 작업임을 나타냅니다. |
FILE_SUPPORTS_SPARSE_VDL 0x10000000 |
파일 시스템은 파일의 각 클러스터에 유효한 데이터(명시적 파일 쓰기 또는 자동 0)가 포함되어 있는지 또는 잘못된 데이터(아직 기록되지 않았거나 0으로 기록되지 않았는지)를 추적합니다. 스파스 VDL(유효한 데이터 길이)을 사용하는 파일 시스템은 유효한 데이터 길이를 저장하지 않으며 파일 내에서 유효한 데이터를 연속할 필요가 없습니다. |
FILE_DAX_VOLUME 0x20000000 |
지정된 볼륨은 DAX(직접 액세스) 볼륨입니다. 참고: 이 플래그는 Windows 10 버전 1607에서 도입되었습니다. |
FILE_SUPPORTS_GHOSTING 0x40000000 |
파일 시스템은 고스팅을 지원합니다. |
[out, optional] lpFileSystemNameBuffer
파일 시스템의 이름(예: FAT 파일 시스템 또는 NTFS 파일 시스템)을 수신하는 버퍼에 대한 포인터입니다. 버퍼 크기는 nFileSystemNameSize 매개 변수에 의해 지정됩니다.
[in] nFileSystemNameSize
TCHAR파일 시스템 이름 버퍼의 길이입니다. 최대 버퍼 크기는 MAX_PATH+1입니다.
파일 시스템 이름 버퍼가 제공되지 않으면 이 매개 변수는 무시됩니다.
반환 값
요청된 모든 정보가 검색되면 반환 값은 0이 아닌 값입니다.
요청된 정보가 모두 검색되지 않으면 반환 값은 0입니다. 확장 오류 정보를 얻으려면 GetLastError호출합니다.
발언
플로피 디스크가 없는 플로피 드라이브 또는 압축 디스크가 없는 CD-ROM 드라이브에 대한 정보를 얻으려는 경우 시스템은 플로피 디스크 또는 컴팩트 디스크를 각각 삽입할 수 있는 메시지 상자를 표시합니다. 시스템에서 이 메시지 상자를 표시하지 않도록 하려면 SEM_FAILCRITICALERRORS사용하여 SetErrorMode 함수를 호출합니다.
FILE_VOL_IS_COMPRESSED 플래그는 볼륨 기반 압축의 유일한 지표입니다. 파일 시스템 이름은 압축을 나타내도록 변경되지 않습니다. 예를 들어 이 플래그는 DoubleSpace 볼륨에 설정된 상태로 반환됩니다. 압축이 볼륨 기반이면 전체 볼륨이 압축되거나 압축되지 않습니다.
FILE_FILE_COMPRESSION 플래그는 파일 시스템에서 파일 기반 압축을 지원하는지 여부를 나타냅니다. 압축이 파일 기반인 경우 개별 파일을 압축하거나 압축할 수 없습니다.
FILE_FILE_COMPRESSION 및 FILE_VOL_IS_COMPRESSED 플래그는 상호 배타적입니다. 두 비트 모두 집합을 반환할 수 없습니다.
lpMaximumComponentLength 저장된 최대 구성 요소 길이 값은 볼륨이 일반보다 긴 FAT 파일 시스템(또는 다른 파일 시스템) 파일 이름을 지원하는 유일한 표시기입니다. 파일 시스템 이름은 긴 파일 이름에 대한 지원을 나타내기 위해 변경되지 않습니다.
GetCompressedFileSize 함수는 파일의 압축된 크기를 가져옵니다. GetFileAttributes 함수는 개별 파일이 압축되는지 여부를 확인할 수 있습니다.
기호화된 링크 동작
경로가 기호 링크를 가리키는 경우 함수는 대상에 대한 볼륨 정보를 반환합니다.
Windows 8 및 Windows Server 2012부터 이 함수는 다음 기술에서 지원됩니다.
기술 | 지원 |
---|---|
SMB(서버 메시지 블록) 3.0 프로토콜 | 아니요 |
SMB 3.0 TFO(투명한 장애 조치(failover) | 아니요 |
SO(스케일 아웃 파일 공유)가 있는 SMB 3.0 | 아니요 |
CsvFS(클러스터 공유 볼륨 파일 시스템) | 예 |
ReFS(복원 파일 시스템) | 예 |
SMB는 볼륨 관리 기능을 지원하지 않습니다.
거래된 작업
볼륨이 파일 시스템 트랜잭션을 지원하는 경우 함수는 lpFileSystemFlagsFILE_SUPPORTS_TRANSACTIONS 반환합니다.
메모
fileapi.h 헤더는 GETVolumeInformation을 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | fileapi.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |
참고 항목
KTM 정보
파일 암호화
GetCompressedFileSize
GetFileAttributes
GetVolumeInformationByHandleW
SetErrorMode