PathAllocCombine-Funktion (pathcch.h)

Verkettet zwei Pfadfragmente zu einem einzelnen Pfad. Diese Funktion kanonisiert auch alle relativen Pfadelemente und ersetzt Pfadelemente wie "." und "..".

Diese Funktion unterscheidet sich von PathCchCombine und PathCchCombineEx dadurch, dass sie das Ergebnis auf dem Heap zurückgibt. Dies bedeutet, dass der Aufrufer die Größe der zurückgegebenen Zeichenfolge nicht deklarieren muss und die Stapelnutzung reduziert.

Diese Funktion unterscheidet sich von PathCombine dadurch, dass sie Pfade mit den Präfixen "\", "\?" und "\?\UNC" akzeptiert.

Hinweis Diese Funktion, PathCchCombine oder PathCchCombineEx, sollte anstelle von PathCombine verwendet werden.
<

Syntax

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

Parameter

[in] pszPathIn

Ein Zeiger auf die erste Pfadzeichenfolge.

[in] pszMore

Ein Zeiger auf die zweite Pfadzeichenfolge. Wenn dieser Pfad mit einem einzelnen umgekehrten Schrägstrich beginnt, wird er nur mit dem Stamm des Pfads kombiniert, auf den von pszPathIn verwiesen wird. Wenn dieser Pfad voll qualifiziert ist, wird er direkt in den Ausgabepuffer kopiert, ohne mit dem anderen Pfad kombiniert zu werden.

[in] dwFlags

Mindestens eins der folgenden Flags:

Wert Bedeutung
PATHCCH_NONE
0x0000000
Lassen Sie die Erstellung von \\?\ Pfaden (d. h. lange Pfade) nicht zu, die länger als MAX_PATH sind.
PATHCCH_ALLOW_LONG_PATHS
0x00000001
Lassen Sie die Erstellung von \\?\-Pfaden zu, die länger als MAX_PATH sind.
PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS
0x00000002
Erzwingt die API, den Aufrufer unabhängig vom Zustand des langen Namens des Prozesses als aktivierten langen Pfad zu behandeln. Diese Option kann nur verwendet werden, wenn PATHCCH_ALLOW_LONG_PATHS angegeben ist, und kann nicht mit PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS verwendet werden.

Hinweis Dieser Wert ist ab Windows 10 Version 1703 verfügbar.

PATHCCH_FORCE_DISABLE_LONG_NAME_PROCESS
0x00000004
Erzwingt die API, den Aufrufer unabhängig vom Zustand des langen Namens des Prozesses als deaktiviert zu behandeln. Diese Option kann nur verwendet werden, wenn PATHCCH_ALLOW_LONG_PATHS angegeben ist, und kann nicht mit PATHCCH_FORCE_ENABLE_LONG_NAME_PROCESS verwendet werden.

Hinweis Dieser Wert ist ab Windows 10 Version 1703 verfügbar.

PATHCCH_DO_NOT_NORMALIZE_SEGMENTS
0x00000008
Deaktiviert die Normalisierung von Pfadsegmenten, die das Entfernen von nachfolgenden Punkten und Leerzeichen umfasst. Dadurch wird der Zugriff auf Pfade ermöglicht, die durch die Win32-Pfadnormalisierung blockiert werden.

Hinweis Dieser Wert ist ab Windows 10 Version 1703 verfügbar.

PATHCCH_ENSURE_IS_EXTENDED_LENGTH_PATH
0x00000010
Konvertiert den Eingabepfad in das DOS-Gerätepfadformular mit erweiterter Länge (mit dem Präfix \\?\), falls nicht bereits in diesem Formular vorhanden. Dies ermöglicht den Zugriff auf Pfade, die aufgrund von Win32-Normalisierungsregeln (die nachfolgende Punkte und Leerzeichen entfernen können) und Pfadlängenbeschränkungen andernfalls nicht adressierbar sind. Diese Option impliziert das gleiche Verhalten wie PATHCCH_DO_NOT_NORMALIZE_SEGMENTS.

Hinweis Dieser Wert ist ab Windows 10 Version 1703 verfügbar.

PATHCCH_ENSURE_TRAILING_SLASH
0x00000020
Stellen Sie beim Kombinieren oder Normalisieren eines Pfads sicher, dass ein nachgestellter umgekehrter Schrägstrich vorliegt.

Hinweis Dieser Wert ist ab Windows 10 Version 1703 verfügbar.

[out] ppszPathOut

Die Adresse eines Zeigers auf einen Puffer, der bei erfolgreicher Rückgabe dieser Funktion die kombinierte Pfadzeichenfolge empfängt. Es liegt in der Verantwortung des Aufrufers, diese Ressource frei zu geben, wenn sie nicht mehr benötigt wird, indem die LocalFree-Funktion aufgerufen wird. Dieser Wert darf nicht NULL sein.

Rückgabewert

Wenn diese Funktion erfolgreich ist, gibt sie S_OK zurück. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Hinweise

Während entweder pszPathIn oder pszMoreNULL sein können, können beide nicht NULL sein.

Diese Funktion unterstützt die folgenden alternativen Pfadformulare:

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile pathcch.h
Bibliothek Pathcch.lib

Weitere Informationen

PathCchCombine

PathCchCombineEx