GetVolumeInformationByHandleW 함수(fileapi.h)
지정된 파일과 연결된 파일 시스템 및 볼륨 관련 정보를 검색합니다.
파일 또는 디렉터리의 현재 압축 상태를 검색하려면 FSCTL_GET_COMPRESSION 사용합니다.
구문
BOOL GetVolumeInformationByHandleW(
[in] HANDLE hFile,
[out, optional] LPWSTR lpVolumeNameBuffer,
[in] DWORD nVolumeNameSize,
[out, optional] LPDWORD lpVolumeSerialNumber,
[out, optional] LPDWORD lpMaximumComponentLength,
[out, optional] LPDWORD lpFileSystemFlags,
[out, optional] LPWSTR lpFileSystemNameBuffer,
[in] DWORD nFileSystemNameSize
);
매개 변수
[in] hFile
파일에 대한 핸들입니다.
[out, optional] lpVolumeNameBuffer
지정된 볼륨의 이름을 받는 버퍼에 대한 포인터입니다. 최대 버퍼 크기는 입니다 MAX_PATH+1
.
[in] nVolumeNameSize
WCHAR의 볼륨 이름 버퍼 길이입니다. 최대 버퍼 크기는 입니다 MAX_PATH+1
.
볼륨 이름 버퍼가 제공되지 않으면 이 매개 변수는 무시됩니다.
[out, optional] lpVolumeSerialNumber
볼륨 일련 번호를 받는 변수에 대한 포인터입니다.
일련 번호가 필요하지 않은 경우 이 매개 변수는 NULL 일 수 있습니다.
이 함수는 하드 디스크의 형식이 지정될 때 운영 체제에서 할당하는 볼륨 일련 번호를 반환합니다. 제조업체에서 할당하는 하드 디스크의 일련 번호를 프로그래밍 방식으로 가져오려면 WMI(Windows Management Instrumentation) Win32_PhysicalMedia 속성 SerialNumber를 사용합니다.
[out, optional] lpMaximumComponentLength
지정된 파일 시스템에서 지원하는 파일 이름 구성 요소의 최대 길이( WCHAR)를 수신하는 변수에 대한 포인터입니다.
파일 이름 구성 요소는 백 슬래시 사이의 파일 이름의 부분입니다.
*lpMaximumComponentLength 가 가리키는 변수에 저장된 값은 지정된 파일 시스템에서 긴 이름을 지원함을 나타내는 데 사용됩니다. 예를 들어 긴 이름을 지원하는 FAT 파일 시스템의 경우 함수는 이전 8.3 표시기가 아닌 값 255를 저장합니다. 긴 이름은 NTFS 파일 시스템을 사용하는 시스템에서도 지원될 수 있습니다.
[out, optional] lpFileSystemFlags
지정된 파일 시스템과 연결된 플래그를 수신하는 변수에 대한 포인터입니다.
이 매개 변수는 다음 플래그 중 하나 이상일 수 있습니다. 그러나 FILE_FILE_COMPRESSION 및 FILE_VOL_IS_COMPRESSED 상호 배타적입니다.
값 | 의미 |
---|---|
|
지정된 볼륨은 대/소문자를 구분하는 파일 이름을 지원합니다. |
|
지정된 볼륨은 디스크에 이름을 배치할 때 파일 이름의 보존된 대/소문자를 지원합니다. |
|
지정된 볼륨은 디스크에 표시될 때 파일 이름의 유니코드를 지원합니다. |
|
지정된 볼륨은 ACL(액세스 제어 목록)을 유지하고 적용합니다. 예를 들어 NTFS 파일 시스템은 ACL을 유지 및 적용하며 FAT 파일 시스템은 유지하지 않습니다. |
|
지정된 볼륨은 파일 기반 압축을 지원합니다. |
|
지정된 볼륨은 디스크 할당량을 지원합니다. |
|
지정된 볼륨은 스파스 파일을 지원합니다. |
|
지정된 볼륨은 점 다시 구문 분석을 지원합니다. |
|
지정된 볼륨은 압축된 볼륨(예: DoubleSpace 볼륨)입니다. |
|
지정된 볼륨은 개체 식별자를 지원합니다. |
|
지정된 볼륨은 EFS(암호화된 파일 시스템)를 지원합니다. 자세한 내용은 파일 암호화를 참조하세요. |
|
지정된 볼륨은 명명된 스트림을 지원합니다. |
|
지정된 볼륨은 읽기 전용입니다. |
|
지정된 볼륨은 단일 순차 쓰기를 지원합니다. |
|
지정된 볼륨은 트랜잭션을 지원합니다. 자세한 내용은 KTM 정보를 참조하세요. |
|
지정된 볼륨은 하드 링크를 지원합니다. 자세한 내용은 하드 링크 및 접합을 참조하세요.
Windows Vista 및 Windows Server 2008: 이 값은 지원되지 않습니다. |
|
지정된 볼륨은 확장된 특성을 지원합니다. 확장 특성은 애플리케이션이 파일과 연결할 수 있고 파일 데이터의 일부가 아닌 애플리케이션별 메타데이터의 일부입니다.
Windows Vista 및 Windows Server 2008: 이 값은 지원되지 않습니다. |
|
파일 시스템은 FileID에서 열기를 지원합니다. 자세한 내용은 FILE_ID_BOTH_DIR_INFO 참조하세요.
Windows Vista 및 Windows Server 2008: 이 값은 지원되지 않습니다. |
|
지정된 볼륨은 USN(업데이트 시퀀스 번호) 저널을 지원합니다. 자세한 내용은 저널 레코드 변경을 참조하세요.
Windows Vista 및 Windows Server 2008: 이 값은 지원되지 않습니다. |
|
지정된 볼륨은 동일한 볼륨의 파일 간에 논리 클러스터 공유를 지원합니다. 파일 시스템은 쓰기를 공유 클러스터에 다시 할당합니다. FSCTL_DUPLICATE_EXTENTS_TO_FILE 지원되는 작업임을 나타냅니다. |
[out, optional] lpFileSystemNameBuffer
파일 시스템의 이름(예: FAT 파일 시스템 또는 NTFS 파일 시스템)을 수신하는 버퍼에 대한 포인터입니다. 버퍼 크기는 nFileSystemNameSize 매개 변수로 지정됩니다.
[in] nFileSystemNameSize
WCHAR의 파일 시스템 이름 버퍼 길이입니다. 최대 버퍼 크기는 입니다 MAX_PATH+1
.
파일 시스템 이름 버퍼가 제공되지 않으면 이 매개 변수는 무시됩니다.
반환 값
요청된 모든 정보를 검색하면 반환 값은 0이 아닌 값입니다.
요청된 정보가 모두 검색되지 않으면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
설명
Windows 8 및 Windows Server 2012에서 이 함수는 다음 기술을 통해 지원됩니다.
기술 | 지원됨 |
---|---|
SMB(서버 메시지 블록) 3.0 프로토콜 | No |
SMB 3.0 TFO(투명 장애 조치(failover)) | No |
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 | No |
CsvFS(클러스터 공유 볼륨 파일 시스템) | Yes |
ReFS(Resilient File System) | Yes |
SMB는 볼륨 관리 기능을 지원하지 않습니다.
요구 사항
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | fileapi.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |