Converte una stringa di percorso in un formato canonico.
Questa funzione differisce da PathCchCanonicalize e PathCchCanonicalizeEx in quanto restituisce il risultato sull'heap. Ciò significa che il chiamante non deve dichiarare le dimensioni della stringa restituita e riduce l'uso dello stack.
Questa funzione differisce da PathCanonicalize in quanto accetta percorsi con prefissi "\", "\?" e "\?\UNC".
Puntatore a un buffer contenente la stringa originale. Questo valore non può essere NULL.
[in] dwFlags
Uno o più dei flag seguenti:
Valore
Significato
PATHCCH_NONE
0x0000000
Non consentire la costruzione di percorsi \\?\ (ad esempio, percorsi lunghi) più lunghi di MAX_PATH .
PATHCCH_ALLOW_LONG_PATHS
0x00000001
Consentire la compilazione di percorsi \\?\ più lunghi di MAX_PATH .
PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS
0x00000002
Forza l'API a considerare il chiamante a condizione che il percorso sia abilitato, indipendentemente dallo stato di abilitazione del nome lungo del processo. Questa opzione può essere usata solo quando si specifica PATHCCH_ALLOW_LONG_PATHS e non può essere usata con PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS.
Nota Questo valore è disponibile a partire da Windows 10 versione 1703.
PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS
0x00000004
Forza l'API a considerare il chiamante a condizione che il percorso sia disabilitato, indipendentemente dallo stato di abilitazione del nome lungo del processo. Questa opzione può essere usata solo quando si specifica PATHCCH_ALLOW_LONG_PATHS e non può essere usata con PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS.
Nota Questo valore è disponibile a partire da Windows 10 versione 1703.
PATHCCH_DO_NOT_NORMALIZE_SEGMENTS
0x00000008
Disabilita la normalizzazione dei segmenti di percorso che include la rimozione di punti finali e spazi. Ciò consente l'accesso ai percorsi che la normalizzazione del percorso win32 bloccherà.
Nota Questo valore è disponibile a partire da Windows 10 versione 1703.
PATHCCH_ENSURE_IS_EXTENDED_LENGTH_PATH
0x00000010
Converte il percorso di input nel formato del percorso del dispositivo DOS di lunghezza estesa (con il prefisso \\?\), se non è già presente in tale modulo. Ciò consente l'accesso ai percorsi che altrimenti non sono indirizzabili a causa di regole di normalizzazione Win32 (che possono rimuovere punti e spazi finali) e limitazioni della lunghezza del percorso. Questa opzione implica lo stesso comportamento di PATHCCH_DO_NOT_NORMALIZE_SEGMENTS.
Nota Questo valore è disponibile a partire da Windows 10 versione 1703.
PATHCCH_ENSURE_TRAILING_SLASH
0x00000020
Quando si combina o si normalizza un percorso, assicurarsi che sia presente una barra rovesciata finale.
Nota Questo valore è disponibile a partire da Windows 10 versione 1703.
PATHCCH_CANONICALIZE_SLASHES
0x00000040
Convertire le barre in barre rovesciate e comprimere più barre.
Nota Questo valore è disponibile a partire da Windows 11 (SDK versione 10.0.22000.194).
[out] ppszPathOut
L'indirizzo di un puntatore a un buffer che, quando questa funzione viene restituita correttamente, riceve la stringa di percorso canonica. È responsabilità del chiamante liberare questa risorsa, quando non è più necessaria, chiamando la funzione LocalFree. Questo valore non può essere NULL.
Valore restituito
Se questa funzione ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT.
Osservazioni
Questa funzione supporta questi moduli di percorso alternativo:
\\?\
\\?\\UNC\
\\?\Volume{guid}\
Questa funzione non converte le barre (/) in barre rovesciata (\). Con l'input non attendibile, questa funzione non può essere usata per convertire i percorsi in un modulo che può essere confrontato con altri percorsi per il percorso secondario o l'identità. I chiamanti che necessitano di tale capacità devono eseguire la conversione in avanti in barre rovesciata prima di usare questa funzione.