Freigeben über


CreateSymbolicLinkA-Funktion (winbase.h)

Erstellt eine symbolische Verknüpfung.

Um diesen Vorgang als transaktionierten Vorgang auszuführen, verwenden Sie die Funktion CreateSymbolicLinkTransacted .

Syntax

BOOLEAN CreateSymbolicLinkA(
  [in] LPCSTR lpSymlinkFileName,
  [in] LPCSTR lpTargetFileName,
  [in] DWORD  dwFlags
);

Parameter

[in] lpSymlinkFileName

Der zu erstellende symbolische Link.

Dieser Parameter kann den Pfad enthalten.

Standardmäßig ist der Name auf MAX_PATH Zeichen beschränkt. Um dieses Limit auf 32.767 breite Zeichen zu erweitern, müssen Sie dem Pfad "\\?\" voranstellen. Weitere Informationen finden Sie unter Benennen von Dateien, Pfaden und Namespaces.

Tipp

Ab Windows 10 Version 1607 können Sie die MAX_PATH-Einschränkung entfernen, ohne "\\?\" vorauszustellen. Weitere Informationen finden Sie im Abschnitt "Maximale Pfadlängenbegrenzung" unter Benennung von Dateien, Pfaden und Namespaces .

[in] lpTargetFileName

Der Name des Ziels für den zu erstellenden symbolischen Link.

Wenn lpTargetFileName über einen Gerätenamen verfügt, wird der Link als absoluter Link behandelt. andernfalls wird der Link als relativer Link behandelt.

Dieser Parameter kann den Pfad enthalten.

Standardmäßig ist der Name auf MAX_PATH Zeichen beschränkt. Um dieses Limit auf 32.767 breite Zeichen zu erweitern, müssen Sie dem Pfad "\\?\" voranstellen. Weitere Informationen finden Sie unter Benennen von Dateien, Pfaden und Namespaces.

Tipp

Ab Windows 10 Version 1607 können Sie die MAX_PATH-Einschränkung entfernen, ohne "\\?\" vorauszustellen. Weitere Informationen finden Sie im Abschnitt "Maximale Pfadlängenbegrenzung" unter Benennung von Dateien, Pfaden und Namespaces .

[in] dwFlags

Gibt an, ob das Linkziel lpTargetFileName ein Verzeichnis ist.

Wert Bedeutung
0x0
Das Linkziel ist eine Datei.
SYMBOLIC_LINK_FLAG_DIRECTORY
0x1
Das Linkziel ist ein Verzeichnis.
SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE
0x2
Geben Sie dieses Flag an, um das Erstellen symbolischer Verknüpfungen zu ermöglichen, wenn der Prozess nicht erhöht ist. In UWP muss zuerst der Entwicklermodus auf dem Computer aktiviert werden, bevor diese Option funktioniert. Unter MSIX muss der Entwicklermodus für dieses Flag nicht aktiviert werden.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Symbolische Verknüpfungen können entweder absolute oder relative Links sein. Absolute Links sind Links, die jeden Teil des Pfadnamens angeben. relative Links werden relativ zu dem Wert bestimmt, an dem sich relative Link-Bezeichner in einem angegebenen Pfad befinden. Relative Links werden mithilfe der folgenden Konventionen angegeben:

  • Punktkonventionen (. und ..) – z. B. ".. \" lösen den Pfad relativ zum übergeordneten Verzeichnis auf.
  • Namen ohne Schrägstriche (\\) – beispielsweise löst "tmp" den Pfad relativ zum aktuellen Verzeichnis auf.
  • Stammrelativ– z. B. "\Windows\System32" wird in "current drive:\Windows\System32" aufgelöst.
  • Aktuelles Arbeitsverzeichnis – relativ: Wenn das aktuelle Arbeitsverzeichnis beispielsweise C:\Windows\System32 ist, wird "C:File.txt" in "C:\Windows\System32\File.txt" aufgelöst.
    Hinweis Wenn Sie einen relativen Link für ein aktuelles Arbeitsverzeichnis angeben, wird dieser als absoluter Link erstellt, da das aktuelle Arbeitsverzeichnis basierend auf dem Benutzer und dem Thread verarbeitet wird.
     
Um einen symbolischen Link zu entfernen, löschen Sie die Datei (mit DeleteFile oder ähnlichen APIs), oder entfernen Sie das Verzeichnis (mit RemoveDirectory oder ähnlichen APIs), je nachdem, welcher Typ der symbolischen Verknüpfung verwendet wird.

Unter Windows 8 und Windows Server 2012 wird diese Funktion von den folgenden Technologien unterstützt.

Technologie Unterstützt
SMB 3.0-Protokoll (Server Message Block) Ja
SMB 3.0 Transparent Failover (TFO) Ja
SMB 3.0 mit Dateifreigaben mit horizontaler Skalierung (SO) No
Dateisystem mit freigegebenen Clustervolumes (CsvFS) No
Robustes Dateisystem (Resilient File System, ReFS) Ja
 

CsvFs unterstützt keine Softlinks oder andere Analysepunkte.

Hinweis

Der winbase.h-Header definiert CreateSymbolicLink als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winbase.h (einschließlich Windows.h)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

CreateSymbolicLinkTransacted

Dateiverwaltungsfunktionen

Symbolische Links