Condividi tramite


Funzione PathCchAppendEx (pathcch.h)

Aggiunge un percorso alla fine di un altro.

Questa funzione differisce da PathCchAppend in quanto consente di costruire un percorso finale più lungo.

Questa funzione differisce da PathAppend in quanto accetta percorsi con "\", "\?" e "\?\UNC".

Nota Questa funzione, o PathCchAppend, deve essere usata al posto di PathAppend per impedire la possibilità di un overrun del buffer.

Sintassi

WINPATHCCHAPI HRESULT PathCchAppendEx(
  [in, out]      PWSTR  pszPath,
  [in]           size_t cchPath,
  [in, optional] PCWSTR pszMore,
  [in]           ULONG  dwFlags
);

Parametri

[in, out] pszPath

Puntatore a un buffer che, nella voce, contiene il percorso originale. Quando questa funzione restituisce correttamente, il buffer contiene il percorso originale e il percorso aggiunto.

[in] cchPath

Dimensioni del buffer a cui punta pszPath, in caratteri.

[in, optional] pszMore

Puntatore al percorso da aggiungere alla fine del percorso a cui punta pszPath. I percorsi e i percorsi UNC che iniziano con la sequenza \?\ vengono accettati e riconosciuti come percorsi completi. Questi percorsi sostituiscono la stringa puntata da pszPath anziché aggiungerla.

[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 l'edificio 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.

Valore restituito

Se questa funzione ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice HRESULT , incluso quanto segue.

Codice restituito Descrizione
E_INVALIDARG
PszPath o pszMore è NULL, cchPath è 0 o cchPath è maggiore di PATHCCH_MAX_CCH.
PATHCCH_E_FILENAME_TOO_LONG
La stringa risultante supera PATHCCH_MAX_CCH.
E_OUTOFMEMORY
Impossibile allocare un buffer delle dimensioni necessarie.

Commenti

Questa funzione inserisce una barra rovesciata tra le due stringhe, se non è già presente.

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

Vedi anche

PathCchAppend