Partager via


PathAllocCanonicalize, fonction (pathcch.h)

Convertit une chaîne de chemin d’accès en forme canonique.

Cette fonction diffère de PathCchCanonicalize et PathCchCanonicalizeEx dans laquelle elle retourne le résultat sur le tas. Cela signifie que l’appelant n’a pas à déclarer la taille de la chaîne retournée et réduit l’utilisation de la pile.

Cette fonction diffère de PathCanonicalize qu’elle accepte les chemins d’accès avec les préfixes « \ », « \ ? » et « \ ?\UNC ».

Remarque Cette fonction, PathCchCanonicalize, ou PathCchCanonicalizeEx, doit être utilisée à la place de PathCanonicalize.

Syntaxe

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

Paramètres

[in] pszPathIn

Pointeur vers une mémoire tampon qui contient la chaîne d’origine. Cette valeur ne peut pas être NULL.

[in] dwFlags

Un ou plusieurs des indicateurs suivants :

Valeur Signification
PATHCCH_NONE
0x0000000
N’autorisez pas la construction de chemins \\ ?\ (chemins d’accès longs) plus longs que MAX_PATH .
PATHCCH_ALLOW_LONG_PATHS
0x00000001
Autorisez la génération de chemins \\ ?\ plus longs que MAX_PATH .
PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS
0x00000002
Force l’API à traiter l’appelant comme chemin d’accès long activé, indépendamment de l’état activé du nom long du processus. Cette option ne peut être utilisée que lorsque PATHCCH_ALLOW_LONG_PATHS est spécifiée et ne peut pas être utilisée avec PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS.

Remarque Cette valeur est disponible à partir de Windows 10, version 1703.

PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS
0x00000004
Force l’API à traiter l’appelant comme chemin d’accès long désactivé, indépendamment de l’état activé du nom long du processus. Cette option ne peut être utilisée que lorsque PATHCCH_ALLOW_LONG_PATHS est spécifiée et ne peut pas être utilisée avec PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS.

Remarque Cette valeur est disponible à partir de Windows 10, version 1703.

PATHCCH_DO_NOT_NORMALIZE_SEGMENTS
0x00000008
Désactive la normalisation des segments de chemin d’accès qui incluent la suppression des points de fin et des espaces. Cela permet d’accéder aux chemins d’accès qui bloquent la normalisation des chemins win32.

Remarque Cette valeur est disponible à partir de Windows 10, version 1703.

PATHCCH_ENSURE_IS_EXTENDED_LENGTH_PATH
0x00000010
Convertit le chemin d’entrée dans le formulaire de chemin d’accès d’appareil DOS de longueur étendue (avec le préfixe \\ ?\) s’il n’est pas déjà dans ce formulaire. Cela permet d’accéder aux chemins d’accès qui ne sont pas adressables autrement en raison de règles de normalisation Win32 (qui peuvent supprimer des points de fin et des espaces) et des limitations de longueur de chemin. Cette option implique le même comportement de PATHCCH_DO_NOT_NORMALIZE_SEGMENTS.

Remarque Cette valeur est disponible à partir de Windows 10, version 1703.

PATHCCH_ENSURE_TRAILING_SLASH
0x00000020
Lors de la combinaison ou de la normalisation d’un chemin, vérifiez qu’il existe une barre oblique inverse de fin.

Remarque Cette valeur est disponible à partir de Windows 10, version 1703.

PATHCCH_CANONICALIZE_SLASHES
0x00000040
Convertissez les barres obliques vers les barres obliques inverses et réduisez plusieurs barres obliques.

Remarque Cette valeur est disponible à partir de Windows 11 (SDK version 10.0.22000.194).

[out] ppszPathOut

Adresse d’un pointeur vers une mémoire tampon qui, lorsque cette fonction retourne correctement, reçoit la chaîne de chemin canonique. Il incombe à l’appelant de libérer cette ressource, lorsqu’elle n’est plus nécessaire, en appelant la fonction LocalFree. Cette valeur ne peut pas être NULL.

Valeur de retour

Si cette fonction réussit, elle retourne S_OK. Sinon, elle retourne un HRESULT code d’erreur.

Remarques

Cette fonction prend en charge ces autres formulaires de chemin d’accès :

  • \\?\
  • \\?\\UNC\
  • \\ ?\Volume{guid}\

Cette fonction ne convertit pas les barres obliques (/) en barres obliques inverses (\). Avec une entrée non approuvée, cette fonction ne peut pas être utilisée pour convertir des chemins d’accès en un formulaire qui peut être comparé à d’autres chemins d’accès pour le sous-chemin ou l’identité. Les appelants qui ont besoin de cette capacité doivent convertir les barres obliques inverses en barres obliques inverses avant d’utiliser cette fonction.

Exigences

Exigence Valeur
client minimum pris en charge Windows 8 [applications de bureau | Applications UWP]
serveur minimum pris en charge Windows Server 2012 [applications de bureau | Applications UWP]
plateforme cible Windows
d’en-tête pathcch.h
bibliothèque Pathcch.lib