Erstellen Sie einen symbolischen Link zu einer Named Pipe

666
IllidanS4

Angenommen, eine Anwendung macht eine Named Pipe mit dem Namen "Pipe1" verfügbar. Wenn ich die Named Pipe als Dateipfad ausdrücken möchte, der zum Schreiben oder Lesen verwendet werden kann, ist der Pfad \\.\pipe\Pipe1oder \\?\pipe\Pipe1gültig und zeigt auf die Named Pipe.

Nun, zur einfacheren Validierung des Pfads (einige Anwendungen mögen das nicht \\.\), dachte ich, vielleicht könnte ein Symlink verwendet werden, um auf das Named Pipe-Gerät zu zeigen. Ich habe versucht, den Link über mklink link \\.\pipe\Pipe1, mklink link \\?\pipe\Pipe1und auch zu erstellen. mklink link \\?\GlobalRoot\Device\NamedPipe\Pipe1Dies schlägt jedoch fehl, wenn versucht wird, den Link zu öffnen, mit dem folgenden Fehler:

Die im Analysepunktpuffer vorhandenen Daten sind ungültig

Ist es sinnvoll, was ich versuche? Kann ein Symlink auf einen beliebigen Pfad zeigen und nicht nur in das Dateisystem? Gibt es einen besseren Weg, um das zu erreichen, was ich versuche?

Seltsamerweise erinnere ich mich, dass ich zuvor versucht hatte, dieses Problem zu lösen, und der Symlink funktionierte mehr oder weniger auf diese Weise. Auch ein symbolischer Link ist der einzige verwendbare Typ. Das Erstellen eines Hardlinks schlägt fehl (da sich pipe nicht auf einer NTFS-Partition befindet) und ein Verzeichnislink oder eine Junction kann nicht für E / A verwendet werden.

2
Was ist, wenn Sie es mit der Option [`/ H` - _Hard Link_ oder` / J` - _Directory Junction_] (https://technet.microsoft.com/de-de/library/cc753194 (WS.10)) versuchen. aspx)? Gerold Broser vor 6 Jahren 0
@GeroldBroser Hard Link kann nicht verwendet werden, es kann nur auf eine echte Datei auf derselben Partition verweisen, und ein Verzeichnis kann nicht zum Schreiben oder Lesen verwendet werden. IllidanS4 vor 6 Jahren 0

0 Antworten auf die Frage