다음을 통해 공유


PathAllocCanonicalize 함수(pathcch.h)

경로 문자열을 정식 형식으로 변환합니다.

이 함수는 힙의 결과를 반환한다는 점에서 PathCchCanonicalizePathCchCanonicalizeEx 와 다릅니다. 즉, 호출자는 반환된 문자열의 크기를 선언할 필요가 없으며 스택 사용을 줄입니다.

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

참고PathCchCanonicalize 또는 PathCchCanonicalizeEx 함수는 PathCanonicalize 대신 사용해야 합니다.

구문

WINPATHCCHAPI HRESULT PathAllocCanonicalize(
  [in]  PCWSTR pszPathIn,
  [in]  ULONG  dwFlags,
  [out] PWSTR  *ppszPathOut
);

매개 변수

[in] pszPathIn

원래 문자열을 포함하는 버퍼에 대한 포인터입니다. 이 값은 NULL일 수 없습니다.

[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부터 사용할 수 있습니다.

PATHCCH_ENSURE_TRAILING_SLASH
0x00000020
경로를 결합하거나 정규화할 때 후행 백슬래시가 있는지 확인합니다.

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

[out] ppszPathOut

이 함수가 성공적으로 반환될 때 정식화된 경로 문자열을 수신하는 버퍼에 대한 포인터의 주소입니다. 더 이상 필요하지 않은 경우 LocalFree 함수를 호출하여 이 리소스를 해제하는 것은 호출자의 책임입니다. 이 값은 NULL일 수 없습니다.

반환 값

이 함수가 성공하면 S_OK 반환합니다. 그러지 않으면 HRESULT 오류 코드를 반환합니다.

설명

이 함수는 다음과 같은 대체 경로 양식을 지원합니다.

  • \\?\
  • \\?\\Unc\
  • \\?\Volume{guid}\

이 함수는 슬래시(/)를 슬래시(\)로 변환하지 않습니다. 신뢰할 수 없는 입력을 사용하면 이 함수 자체를 사용하여 경로를 하위 경로 또는 ID의 다른 경로와 비교할 수 있는 형식으로 변환할 수 없습니다. 이 기능이 필요한 호출자는 이 함수를 사용하기 전에 슬래시로 앞으로 변환해야 합니다.

요구 사항

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