다음을 통해 공유


볼륨 이름 지정

레이블은 일반적으로 최종 사용자가 쉽게 인식할 수 있도록 볼륨에 할당된 사용자 친화적인 이름입니다. 볼륨에는 레이블, 드라이브 문자, 둘 다 있거나 둘 다 없을 수 있습니다. 볼륨에 대한 레이블을 설정하려면 SetVolumeLabel 함수를 사용합니다.

드라이브 문자 및 레이블만 사용하여 특정 볼륨을 식별하기 어려운 몇 가지 요인이 있습니다. 하나는 볼륨에 드라이브 문자 또는 레이블이 필요하지 않다는 것입니다. 또 다른 하나는 두 개의 서로 다른 볼륨이 동일한 레이블을 가질 수 있으므로 드라이브 문자를 제외하고 구별할 수 없다는 것입니다. 세 번째 요소는 볼륨이 컴퓨터에 추가되고 컴퓨터에서 제거될 때 드라이브 문자 할당이 변경될 수 있다는 것입니다.

이 문제를 해결하기 위해 운영 체제는 볼륨 GUID 경로를 사용하여 볼륨을 식별합니다. 이러한 형식의 문자열은 다음과 같습니다.

\\?\Volume{GUID}\

여기서 GUID 볼륨을 식별하는 GUID(Globally Unique Identifier)입니다.

볼륨 GUID 경로는 하나의 볼륨만 참조할 수 있으므로 볼륨 GUID 경로는 고유한 볼륨 이름이라고도 합니다. 그러나 볼륨에 둘 이상의 볼륨 GUID 경로가 있을 수 있으므로 이 용어는 오해의 소지가 있습니다.

"\\?\" 접두사는 경로 구문 분석을 사용하지 않도록 설정하며 경로의 일부로 간주되지 않습니다. "\\?\" 접두사에 대한 자세한 내용은 파일 또는 디렉터리 이름 지정을 참조하십시오."

"\\?\" 접두사로 볼륨 GUID 경로를 사용할 때 전체 경로를 지정해야 합니다.

탑재된 폴더 한 볼륨의 폴더와 다른 볼륨 간의 연결이므로 폴더 경로를 사용하여 볼륨에 액세스할 수 있습니다. 예를 들어 SetVolumeMountPoint 함수를 사용하여 볼륨 "D:\"를 "C:\MountD\" 폴더와 연결하는 탑재된 폴더를 만드는 경우 경로("D:\" 또는 "C:\MountD\")를 사용하여 볼륨 "D:\"에 액세스할 수 있습니다.

볼륨 탑재 지점 볼륨에 액세스하는 데 사용할 수 있는 모든 사용자 모드 경로입니다. 볼륨 탑재 지점의 세 가지 유형은 다음과 같습니다.

  • 드라이브 문자(예: "C:\")입니다.
  • 볼륨 GUID 경로(예: "\\?\Volume{26a21bda-a627-11d7-9931-806e6f6e6963}\")입니다.
  • 탑재된 폴더(예: "C:\MountD\")입니다.

볼륨 GUID 경로를 입력 매개 변수로 사용하는 모든 볼륨 및 탑재된 폴더 함수에는 후행 백슬래시가 필요합니다. 볼륨 GUID 경로를 반환하는 모든 볼륨 및 탑재된 폴더 함수는 후행 백슬래시를 제공하지만 CreateFile 함수에서는 그렇지 않습니다. CreateFile 호출하여 볼륨을 열고 지정한 볼륨 이름에서 후행 백슬래시를 생략할 수 있습니다. CreateFile 추가된 백슬래시를 볼륨의 루트 디렉터리로 사용하여 볼륨 GUID 경로를 처리합니다.

운영 체제는 볼륨이 처음 설치되고 볼륨의 형식이 지정될 때 볼륨에 볼륨 GUID 경로를 할당합니다. 볼륨 및 탑재된 폴더 함수는 볼륨 GUID 경로를 사용하여 볼륨에 액세스합니다. 볼륨의 볼륨 GUID 경로를 가져오려면 GetVolumeNameForVolumeMountPoint 함수를 사용합니다.

경로 길이는 깊이 디렉터리 트리가 있는 볼륨을 다른 볼륨의 디렉터리에 연결하는 탑재된 폴더를 만들 때 문제가 될 수 있습니다. 볼륨의 경로가 디렉터리의 경로에 연결되었기 때문입니다. 전역적으로 정의된 상수 MAX_PATH 경로에 사용할 수 있는 최대 문자 수를 정의합니다. (MAX_PATH대한 자세한 내용은 파일 또는 디렉터리 이름 참조하세요.) 다음 중 하나를 수행하여 이 제약 조건을 방지할 수 있습니다.

  • 볼륨 GUID 경로별로 볼륨을 참조합니다.
  • \\?\ 접두사를 지원하는 파일 함수의 유니코드(W) 버전을 사용합니다.