Named Pipes

Eine benannte Pipe ist eine benannte, unidirektionale oder Duplexpipe für die Kommunikation zwischen dem Pipeserver und einem oder mehreren Pipeclients. Alle Instanzen einer benannten Pipe haben denselben Pipenamen, aber jede instance verfügt über eigene Puffer und Handles und stellt einen separaten Kanal für die Client/Server-Kommunikation bereit. Die Verwendung von Instanzen ermöglicht es mehreren Pipeclients, dieselbe Named Pipe gleichzeitig zu verwenden.

Jeder Prozess kann auf benannte Pipes zugreifen, sofern Sicherheitsüberprüfungen durchgeführt werden, sodass Named Pipes eine einfache Form der Kommunikation zwischen verwandten oder nicht verwandten Prozessen sind.

Jeder Prozess kann sowohl als Server als auch als Client fungieren, wodurch eine Peer-to-Peer-Kommunikation möglich ist. Wie hier verwendet, bezieht sich der Begriff Pipeserver auf einen Prozess, der eine benannte Pipe erstellt, und der Begriff Pipe-Client bezieht sich auf einen Prozess, der eine Verbindung mit einer instance einer benannten Pipe herstellt. Die serverseitige Funktion zum Instanziieren einer Named Pipe ist CreateNamedPipe. Die serverseitige Funktion zum Akzeptieren einer Verbindung ist ConnectNamedPipe. Ein Clientprozess stellt mithilfe der Funktion CreateFile oder CallNamedPipe eine Verbindung mit einer benannten Pipe her.

Named Pipes können verwendet werden, um die Kommunikation zwischen Prozessen auf demselben Computer oder zwischen Prozessen auf verschiedenen Computern in einem Netzwerk bereitzustellen. Wenn der Serverdienst ausgeführt wird, kann remote auf alle Named Pipes zugegriffen werden. Wenn Sie eine Named Pipe nur lokal verwenden möchten, verweigern Sie den Zugriff auf NT AUTHORITY\NETWORK, oder wechseln Sie zu lokalem RPC.

Weitere Informationen finden Sie in den folgenden Themen: