PathAllocCanonicalize 関数 (pathcch.h)
パス文字列を正規形式に変換します。
この関数は、ヒープで結果を返す点で 、PathCchCanonicalize および PathCchCanonicalizeEx とは異なります。 つまり、呼び出し元は返される文字列のサイズを宣言する必要がないため、スタックの使用が減ります。
この関数は PathCanonicalize とは異なり、"\"、"\?" および "\?\UNC" プレフィックスを持つパスを受け入れます。
構文
WINPATHCCHAPI HRESULT PathAllocCanonicalize(
[in] PCWSTR pszPathIn,
[in] ULONG dwFlags,
[out] PWSTR *ppszPathOut
);
パラメーター
[in] pszPathIn
元の文字列を含むバッファーへのポインター。 この値を NULL にすることはできません。
[in] dwFlags
次のフラグの 1 つまたは複数:
値 |
意味 |
-
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 |
Library |
Pathcch.lib |