Auswirkungen symbolischer Verknüpfungen auf Dateisystemfunktionen

Mehrere Standarddateifunktionen, die Pfadnamen verwenden, um eine oder mehrere Dateien anzugeben, sind von der Verwendung symbolischer Verknüpfungen betroffen. In diesem Thema werden diese Funktionen aufgelistet und die Verhaltensänderungen beschrieben:

In den folgenden Beschreibungen werden die folgenden Begriffe verwendet:

  • Quelldatei: Die ursprüngliche Datei, die kopiert werden soll.
  • Zieldatei: Die neu erstellte Kopie der Datei.
  • Ziel: Die Entität, auf die eine symbolische Verknüpfung verweist.

Hinweis

Das Verhalten von Funktionen, die ein handle akzeptieren, das mit der CreateFile-Funktion erstellt wurde, z. B. die GetFileTime-Funktion, unterscheidet sich je danach, ob die CreateFile-Funktion mit dem FLAG FILE FLAG OPEN _ _ _ REPARSE _ POINT aufgerufen wurde oder nicht. Weitere Informationen finden Sie unter CreateFile und im folgenden Abschnitt CreateFile und CreateFileTransacted.

CopyFile und CopyFileTransacted

Wenn die Quelldatei eine symbolische Verknüpfung ist, ist die tatsächlich kopierte Datei das Ziel der symbolischen Verknüpfung.

Wenn die Zieldatei bereits vorhanden ist und eine symbolische Verknüpfung ist, wird die symbolische Verknüpfung von der Quelldatei überschrieben.

CopyFileEx

Wenn COPY FILE COPY _ _ _ SYMLINK angegeben ist und:

  • Wenn die Quelldatei eine symbolische Verknüpfung ist, wird die symbolische Verknüpfung kopiert, nicht die Zieldatei.
  • Wenn die Quelldatei keine symbolische Verknüpfung ist, gibt es keine Verhaltensänderung.
  • Wenn die Zieldatei eine vorhandene symbolische Verknüpfung ist, wird die symbolische Verknüpfung überschrieben, nicht die Zieldatei.
  • Wenn COPY FILE FAIL IF _ _ _ _ EXISTS ebenfalls angegeben ist und die Zieldatei eine vorhandene symbolische Verknüpfung ist, schlägt der Vorgang in allen Fällen fehl.

Wenn COPY FILE COPY _ _ _ SYMLINK nicht angegeben ist, und:

  • Wenn COPY FILE FAIL IF _ _ _ _ EXISTS ebenfalls angegeben ist und die Zieldatei eine vorhandene symbolische Verknüpfung ist, schlägt der Vorgang nur fehl, wenn das Ziel der symbolischen Verknüpfung vorhanden ist.
  • Wenn COPY FILE FAIL IF _ _ _ _ EXISTS nicht angegeben ist, gibt es keine Verhaltensänderung.

Windows Server 2003 und Windows XP: Das COPY FILE COPY _ _ _ SYMLINK-Flag wird nicht unterstützt. Wenn die Quelldatei eine symbolische Verknüpfung ist, ist die tatsächlich kopierte Datei das Ziel der symbolischen Verknüpfung.

CreateFile und CreateFileTransacted

Wenn durch den Aufruf dieser Funktion eine neue Datei erstellt wird, gibt es keine Verhaltensänderung.

Wenn FILE FLAG OPEN _ _ _ REPARSE _ POINT angegeben ist und:

  • Wenn eine vorhandene Datei geöffnet wird und es sich um eine symbolische Verknüpfung handelt, ist das zurückgegebene Handle ein Handle für die symbolische Verknüpfung.
  • Wenn CREATE _ ALWAYS, TRUNCATE _ EXISTING oder FILE FLAG DELETE ON _ _ _ _ CLOSE angegeben sind, ist die betroffene Datei eine symbolische Verknüpfung.

Wenn FILE FLAG OPEN _ _ _ REPARSE _ POINT nicht angegeben ist, und:

  • Wenn eine vorhandene Datei geöffnet wird und es sich um eine symbolische Verknüpfung handelt, ist das zurückgegebene Handle ein Handle für das Ziel.
  • Wenn CREATE _ ALWAYS, TRUNCATE _ EXISTING oder FILE FLAG DELETE ON _ _ _ _ CLOSE angegeben sind, ist die betroffene Datei das Ziel.

Wenn der Pfad auf eine symbolische Verknüpfung zeigt, erstellt die Funktion eine harte Verknüpfung mit dem Ziel.

DeleteFile und DeleteFileTransacted

Wenn der Pfad auf eine symbolische Verknüpfung zeigt, wird die symbolische Verknüpfung gelöscht, nicht das Ziel. Um ein Ziel zu löschen, müssen Sie CreateFile aufrufen und FILE FLAG DELETE ON _ _ _ _ CLOSE angeben.

FindFirstChangeNotification

Wenn der Pfad auf eine symbolische Verknüpfung zeigt, wird das Benachrichtigungshandle für das Ziel erstellt. Wenn eine Anwendung für den Empfang von Änderungsbenachrichtigungen für ein Verzeichnis registriert wurde, das symbolische Verknüpfungen enthält, wird die Anwendung nur benachrichtigt, wenn die symbolischen Verknüpfungen geändert wurden, nicht die Zieldateien.

FindFirstFile und FindFirstFileTransacted

Wenn der Pfad auf eine symbolische Verknüpfung zeigt, enthält der WIN32 _ FIND _ DATA-Puffer Informationen über die symbolische Verknüpfung, nicht über das Ziel.

FindFirstFileEx

Wenn der Pfad auf eine symbolische Verknüpfung zeigt, enthält der WIN32 _ FIND _ DATA-Puffer Informationen über die symbolische Verknüpfung, nicht über das Ziel.

FindNextFile

Wenn der Pfad auf eine symbolische Verknüpfung zeigt, enthält der WIN32 _ FIND _ DATA-Puffer Informationen über die symbolische Verknüpfung, nicht über das Ziel.

GetBinaryType

Wenn der Pfad auf eine symbolische Verknüpfung zeigt, wird die Zieldatei verwendet.

GetCompressedFileSize und GetCompressedFileSizeTransacted

Wenn der Pfad auf eine symbolische Verknüpfung zeigt, gibt die Funktion die Dateigröße des Ziels zurück.

GetDiskFreeSpace

Wenn der Pfad auf eine symbolische Verknüpfung zeigt, wird der Vorgang auf dem Ziel ausgeführt.

Getdiskfreespaceex

Wenn der Pfad auf eine symbolische Verknüpfung zeigt, wird der Vorgang auf dem Ziel ausgeführt.

GetFileAttributes

Wenn der Pfad auf eine symbolische Verknüpfung zeigt, gibt die Funktion Attribute für die symbolische Verknüpfung zurück.

GetFileAttributesEx

Wenn der Pfad auf eine symbolische Verknüpfung zeigt, gibt die Funktion Attribute für die symbolische Verknüpfung zurück.

GetFileSecurity

Wenn der Pfad auf eine symbolische Verknüpfung zeigt, gibt die Funktion Attribute für die symbolische Verknüpfung zurück.

GetTempPath

Wenn der Pfad auf eine symbolische Verknüpfung verweist, behält der Name des temporären Pfads alle symbolischen Verknüpfungen bei.

GetVolumeInformation

Wenn der Pfad auf eine symbolische Verknüpfung zeigt, gibt die Funktion Volumeinformationen für das Ziel zurück.

SetFileAttributes

Wenn der Pfad auf eine symbolische Verknüpfung zeigt, ruft die Funktion Attribute für die symbolische Verknüpfung ab.

SetFileSecurity

Wenn der Pfad auf eine symbolische Verknüpfung zeigt, gibt die Funktion Attribute für die symbolische Verknüpfung zurück.

CopyFile

CopyFileTransacted

CopyFileEx

CreateFile

CreateFileTransacted

CreateHardLink

CreateHardLinkTransacted

DeleteFile

DeleteFileTransacted

FindFirstChangeNotification

FindFirstFile

FindFirstFileEx

FindFirstFileTransacted

FindNextFile

GetBinaryType

GetCompressedFileSize

GetCompressedFileSizeTransacted

GetDiskFreeSpace

Getdiskfreespaceex

GetFileAttributes

GetFileAttributesEx

GetFileSecurity

GetTempPath

GetVolumeInformation

SetFileAttributes

SetFileSecurity