Condividi tramite


Funzione PathAllocCanonicalize (pathcch.h)

Converte una stringa di percorso in un modulo canonico.

Questa funzione differisce da PathCchCanonicalize e PathCchCanonicalizeEx in cui restituisce il risultato nell'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 "\", "\?" e "\?\UNC".

Nota Questa funzione, PathCchCanonicalize, o 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 \\?\ (ie, percorsi lunghi) più lunghi di MAX_PATH .
PATHCCH_ALLOW_LONG_PATHS
0x00000001
Consenti 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 abilitato per il nome lungo del processo. Questa opzione può essere usata solo quando viene specificata 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 lungo percorso disabilitato, indipendentemente dallo stato abilitato per il nome lungo del processo. Questa opzione può essere usata solo quando viene specificata 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 includono 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 modulo percorso del dispositivo DOS di lunghezza estesa (con il prefisso \\?\) se non già presente in tale formato. Ciò consente l'accesso ai percorsi che altrimenti non sono indirizzabili a causa di regole di normalizzazione Win32 (che possono strisciare 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 normalizza un percorso, assicurarsi che vi sia una barra rovesciata finale.

Nota Questo valore è disponibile a partire da Windows 10 versione 1703.

[out] ppszPathOut

L'indirizzo di un puntatore a un buffer che, quando questa funzione restituisce 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 .

Commenti

Questa funzione supporta questi moduli di percorso alternativi:

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

Questa funzione non converte le barre in barra rovesciata (/) in barre indietro (\). Con l'input non attendibile, questa funzione non può essere usata per convertire i percorsi in una maschera che può essere confrontata con altri percorsi per il percorso secondario o l'identità. I chiamanti che necessitano di tale capacità devono convertire in avanti le barre indietro prima di usare questa funzione.

Requisiti

Requisito Valore
Client minimo supportato Windows 8 [app desktop | App UWP]
Server minimo supportato Windows Server 2012 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione pathcch.h
Libreria Pathcch.lib