QueryDosDeviceW 함수(fileapi.h)
MS-DOS 디바이스 이름에 대한 정보를 검색합니다. 함수는 특정 MS-DOS 디바이스 이름에 대한 현재 매핑을 가져올 수 있습니다. 함수는 모든 기존 MS-DOS 디바이스 이름 목록을 가져올 수도 있습니다.
MS-DOS 디바이스 이름은 개체 네임스페이스에 접합으로 저장됩니다. MS-DOS 경로를 해당 경로로 변환하는 코드는 이러한 접합을 사용하여 MS-DOS 디바이스 및 드라이브 문자를 매핑합니다. QueryDosDevice 함수를 사용하면 애플리케이션이 MS-DOS 디바이스 네임스페이스를 구현하는 데 사용되는 접합의 이름과 각 특정 접합의 값을 쿼리할 수 있습니다.
구문
DWORD QueryDosDeviceW(
[in, optional] LPCWSTR lpDeviceName,
[out] LPWSTR lpTargetPath,
[in] DWORD ucchMax
);
매개 변수
[in, optional] lpDeviceName
쿼리의 대상을 지정하는 MS-DOS 디바이스 이름 문자열입니다. 디바이스 이름에 후행 백슬래시가 있을 수 없습니다. 예를 들어 "C:\"가 아닌 "C:"를 사용합니다.
이 매개 변수는 NULL일 수 있습니다. 이 경우 QueryDosDevice 함수는 모든 기존 MS-DOS 디바이스 이름 목록을 lpTargetPath가 가리키는 버퍼에 저장합니다.
[out] lpTargetPath
쿼리 결과를 수신할 버퍼에 대한 포인터입니다. 함수는 이 버퍼를 하나 이상의 null로 끝나는 문자열로 채웁니다. 마지막 null로 종료된 문자열 뒤에 추가 NULL이 잇습니다.
lpDeviceName이 NULL이 아닌 경우 함수는 lpDeviceName으로 지정된 특정 MS-DOS 디바이스에 대한 정보를 검색합니다. 버퍼에 저장된 첫 번째 null 종료 문자열은 디바이스에 대한 현재 매핑입니다. 다른 null로 끝나는 문자열은 디바이스에 대한 삭제되지 않은 이전 매핑을 나타냅니다.
lpDeviceName이 NULL인 경우 함수는 모든 기존 MS-DOS 디바이스 이름 목록을 검색합니다. 버퍼에 저장된 각 null로 끝나는 문자열은 기존 MS-DOS 디바이스의 이름입니다(예: \Device\HarddiskVolume1 또는 \Device\Floppy0).
[in] ucchMax
lpTargetPath가 가리키는 버퍼에 저장할 수 있는 최대 TCHAR 수입니다.
반환 값
함수가 성공하면 반환 값은 lpTargetPath가 가리키는 버퍼에 저장된 TCHAR의 수입니다.
함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
버퍼가 너무 작으면 함수가 실패하고 마지막 오류 코드가 ERROR_INSUFFICIENT_BUFFER.
설명
DefineDosDevice 함수를 사용하면 애플리케이션이 MS-DOS 디바이스 네임스페이스를 구현하는 데 사용되는 접합을 만들고 수정할 수 있습니다.
Windows Server 2003 및 Windows XP: QueryDosDevice 는 먼저 로컬 MS-DOS 디바이스 네임스페이스에서 지정된 디바이스 이름을 검색합니다. 디바이스 이름을 찾을 수 없는 경우 함수는 전역 MS-DOS 디바이스 네임스페이스를 검색합니다.
모든 기존 MS-DOS 디바이스 이름을 쿼리할 때 반환되는 디바이스 이름 목록은 "LocalSystem" 컨텍스트에서 실행 중인지 여부에 따라 달라집니다. 그렇다면 전역 MS-DOS 디바이스 네임스페이스에 포함된 디바이스 이름만 반환됩니다. 실행 중이 아닌 경우에는 전역 및 로컬 MS-DOS 디바이스 네임스페이스의 디바이스 이름 연결이 반환됩니다. 두 네임스페이스에 디바이스 이름이 있으면 QueryDosDevice가 로컬 MS-DOS 디바이스 네임스페이스의 항목을 반환합니다.
전역 및 로컬 MS-DOS 디바이스 네임스페이스 및 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(클러스터 공유 볼륨 파일 시스템) | Yes |
ReFS(Resilient File System) | Yes |
SMB는 볼륨 관리 기능을 지원하지 않습니다.
예제
예를 들어 파일 핸들에서 파일 이름 가져오기 또는 볼륨 경로 표시를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2003 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | fileapi.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |