다음을 통해 공유


PathCchAppendEx 함수(pathcch.h)

한 경로를 다른 경로의 끝에 추가합니다.

이 함수는 더 긴 최종 경로를 생성할 수 있다는 점에서 PathCchAppend 와 다릅니다.

이 함수는 "\", "\?" 및 "\?\UNC" 접두사를 사용하여 경로를 허용한다는 점에서 PathAppend 와 다릅니다.

참고 버퍼 오버런 가능성을 방지하기 위해 PathAppend 대신 이 함수 또는 PathCchAppend를 사용해야 합니다.

구문

WINPATHCCHAPI HRESULT PathCchAppendEx(
  [in, out]      PWSTR  pszPath,
  [in]           size_t cchPath,
  [in, optional] PCWSTR pszMore,
  [in]           ULONG  dwFlags
);

매개 변수

[in, out] pszPath

항목에 원래 경로가 포함된 버퍼에 대한 포인터입니다. 이 함수가 성공적으로 반환되면 버퍼에는 원래 경로와 추가된 경로가 포함됩니다.

[in] cchPath

pszPath가 가리키는 버퍼의 크기(문자)입니다.

[in, optional] pszMore

pszPath가 가리키는 경로의 끝에 추가할 경로에 대한 포인터입니다. \?\ 시퀀스로 시작하는 UNC 경로 및 경로가 허용되고 정규화된 경로로 인식됩니다. 이러한 경로는 pszPath 가 가리키는 문자열을 추가하지 않고 바꿉니다.

[in] dwFlags

다음 플래그 중 하나 이상:

의미
PATHCCH_NONE
0x0000000
MAX_PATH 보다 긴 \\?\ 경로(즉, 긴 경로)의 생성을 허용하지 않습니다.
PATHCCH_ALLOW_LONG_PATHS
0x00000001
MAX_PATH 보다 긴 \\?\ 경로 빌드를 허용합니다.
PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS
0x00000002
API가 프로세스의 긴 이름 사용 상태와 관계없이 호출자를 긴 경로 사용으로 처리하도록 합니다. 이 옵션은 PATHCCH_ALLOW_LONG_PATHS 지정된 경우에만 사용할 수 있으며 PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS 사용할 수 없습니다.

참고 이 값은 Windows 10 버전 1703부터 사용할 수 있습니다.

PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS
0x00000004
API가 프로세스의 긴 이름 사용 상태와 관계없이 호출자를 긴 경로를 사용하지 않도록 처리하도록 합니다. 이 옵션은 PATHCCH_ALLOW_LONG_PATHS 지정한 경우에만 사용할 수 있으며 PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS 사용할 수 없습니다.

참고 이 값은 Windows 10 버전 1703부터 사용할 수 있습니다.

PATHCCH_DO_NOT_NORMALIZE_SEGMENTS
0x00000008
후행 점과 공백 제거를 포함하는 경로 세그먼트의 정규화를 사용하지 않도록 설정합니다. 이렇게 하면 win32 경로 정규화가 차단되는 경로에 액세스할 수 있습니다.

참고 이 값은 Windows 10 버전 1703부터 사용할 수 있습니다.

PATHCCH_ENSURE_IS_EXTENDED_LENGTH_PATH
0x00000010
입력 경로가 확장된 DOS 디바이스 경로 양식(\\?\ 접두사 포함)으로 변환합니다(해당 형식이 아직 없는 경우). 이렇게 하면 Win32 정규화 규칙(후행 점 및 공백을 제거할 수 있는) 및 경로 길이 제한으로 인해 주소를 지정할 수 없는 경로에 액세스할 수 있습니다. 이 옵션은 PATHCCH_DO_NOT_NORMALIZE_SEGMENTS 동일한 동작을 의미합니다.

참고 이 값은 Windows 10 버전 1703부터 사용할 수 있습니다.

반환 값

이 함수가 성공하면 S_OK 반환합니다. 그렇지 않으면 다음을 포함하여 HRESULT 코드를 반환합니다.

반환 코드 설명
E_INVALIDARG
pszPath 또는 pszMoreNULL이거나, cchPath가 0이거나, cchPathPATHCCH_MAX_CCH보다 큽니다.
PATHCCH_E_FILENAME_TOO_LONG
결과 문자열이 PATHCCH_MAX_CCH 초과합니다.
E_OUTOFMEMORY
함수가 필요한 크기의 버퍼를 할당할 수 없습니다.

설명

이 함수는 아직 없는 경우 두 문자열 사이에 백슬래시를 삽입합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2012 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 pathcch.h
라이브러리 Pathcch.lib

추가 정보

PathCchAppend