Condividi tramite


Funzione PathAllocCanonicalize (pathcch.h)

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".

Nota Questa funzione, PathCchCanonicalizeo PathCchCanonicalizeEx, deve essere usata al posto di PathCanonicalize.

Sintassi

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

Parametri

[in] pszPathIn

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.

Fabbisogno

Requisito Valore
client minimo supportato Windows 8 [app desktop | App UWP]
server minimo supportato Windows Server 2012 [app desktop | App UWP]
piattaforma di destinazione Finestre
intestazione pathcch.h
libreria Pathcch.lib