다음을 통해 공유


DefineDosDeviceW 함수(fileapi.h)

MS-DOS 디바이스 이름을 정의, 재정의 또는 삭제합니다.

구문

BOOL DefineDosDeviceW(
  [in]           DWORD   dwFlags,
  [in]           LPCWSTR lpDeviceName,
  [in, optional] LPCWSTR lpTargetPath
);

매개 변수

[in] dwFlags

DefineDosDevice 함수의 제어 가능한 측면입니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.

의미
DDD_EXACT_MATCH_ON_REMOVE
0x00000004
이 값이 DDD_REMOVE_DEFINITION 함께 지정된 경우 함수는 정확한 일치를 사용하여 제거할 매핑을 결정합니다. 이 값을 사용하여 정의하지 않은 항목을 삭제하지 않도록 합니다.
DDD_NO_BROADCAST_SYSTEM
0x00000008
WM_SETTINGCHANGE 메시지를 브로드캐스트하지 마세요. 기본적으로 이 메시지는 셸 및 애플리케이션에 변경 사항을 알리기 위해 브로드캐스트됩니다.
DDD_RAW_TARGET_PATH
0x00000001
lpTargetPath 문자열을 있는 그대로 사용합니다. 그렇지 않으면 MS-DOS 경로에서 경로로 변환됩니다.
DDD_REMOVE_DEFINITION
0x00000002
지정된 디바이스에 대해 지정된 정의를 제거합니다. 제거할 정의를 확인하기 위해 함수는 디바이스에 대한 매핑 목록을 안내하여 이 디바이스와 연결된 각 매핑의 접두사에 대해 lpTargetPath 의 일치 항목을 찾습니다. 일치하는 첫 번째 매핑은 제거된 매핑이고 함수는 를 반환합니다.

lpTargetPathNULL이거나 NULL 문자열에 대한 포인터인 경우 함수는 디바이스와 연결된 첫 번째 매핑을 제거하고 가장 최근에 푸시한 매핑을 팝합니다. 팝업할 항목이 없으면 디바이스 이름이 제거됩니다.

이 값을 지정하지 않으면 lpTargetPath 매개 변수가 가리키는 문자열이 이 디바이스의 새 매핑이 됩니다.

[in] lpDeviceName

함수가 정의, 재정의 또는 삭제하는 디바이스를 지정하는 MS-DOS 디바이스 이름 문자열에 대한 포인터입니다. 드라이브 문자를 정의, 다시 정의 또는 삭제하지 않는 한 디바이스 이름 문자열에는 콜론이 마지막 문자로 없어야 합니다. 예를 들어 C 드라이브는 문자열 "C:"입니다. 어떤 경우에도 후행 백슬래시(\)가 허용되지 않습니다.

[in, optional] lpTargetPath

이 디바이스를 구현할 경로 문자열에 대한 포인터입니다. 문자열은 DDD_RAW_TARGET_PATH 플래그를 지정하지 않는 한 MS-DOS 경로 문자열입니다. 이 경우 이 문자열은 경로 문자열입니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

MS-DOS 디바이스 이름은 개체 네임스페이스에 접합으로 저장됩니다. MS-DOS 경로를 해당 경로로 변환하는 코드는 이러한 접합을 사용하여 MS-DOS 디바이스 및 드라이브 문자를 매핑합니다. DefineDosDevice 함수를 사용하면 애플리케이션이 MS-DOS 디바이스 네임스페이스를 구현하는 데 사용되는 접합을 수정할 수 있습니다.

특정 MS-DOS 디바이스 이름에 대한 현재 매핑을 검색하거나 시스템에 알려진 모든 MS-DOS 디바이스 목록을 가져오려면 QueryDosDevice 함수를 사용합니다.

네트워크 공유가 아닌 부팅 간에 지속되는 드라이브 문자 할당을 정의하려면 SetVolumeMountPoint 함수를 사용합니다. 탑재할 볼륨에 이미 드라이브 문자가 할당된 경우 DeleteVolumeMountPoint 함수를 사용하여 할당을 제거합니다.

시스템 부팅 시 정의된 드라이브 문자 및 디바이스 이름은 사용자가 관리자가 아닌 한 재정의 및 삭제로부터 보호됩니다.

Windows XP부터 이 함수는 자체 로컬 MS-DOS 디바이스 네임스페이스의 "LocalSystem" 컨텍스트에서 실행되고 있지 않은 호출자의 디바이스 이름을 만듭니다. 호출자가 "LocalSystem" 컨텍스트에서 실행되는 경우 함수는 전역 MS-DOS 디바이스 네임스페이스에 디바이스 이름을 만듭니다. 자세한 내용은 MS DOS 디바이스 이름파일 이름, 경로 및 네임스페이스 정의를 참조하세요.

Windows 8 및 Windows Server 2012에서 이 함수는 다음 기술을 통해 지원됩니다.

기술 지원 여부
SMB(서버 메시지 블록) 3.0 프로토콜 No
SMB 3.0 TFO(투명 장애 조치(failover)) No
SO(스케일 아웃 파일 공유)를 사용하는 SMB 3.0 No
CsvFS(클러스터 공유 볼륨 파일 시스템) No
ReFS(Resilient File System) No
 

SMB는 볼륨 관리 기능을 지원하지 않습니다. CsvF의 경우 새 이름은 클러스터의 다른 노드에 복제되지 않습니다.

예제

예를 들어 드라이브 문자 할당 편집을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 fileapi.h(Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll

참고 항목

DeleteVolumeMountPoint

QueryDosDevice

SetVolumeMountPoint

볼륨 관리 함수