WaitNamedPipeA-Funktion (winbase.h)

Wartet, bis entweder ein Timeoutintervall verstreicht oder ein instance der angegebenen benannten Pipe für die Verbindung verfügbar ist (d. h. der Serverprozess der Pipe verfügt über einen ausstehenden ConnectNamedPipe-Vorgang für die Pipe).

Syntax

BOOL WaitNamedPipeA(
  [in] LPCSTR lpNamedPipeName,
  [in] DWORD  nTimeOut
);

Parameter

[in] lpNamedPipeName

Der Name der benannten Pipe. Die Zeichenfolge muss den Namen des Computers enthalten, auf dem der Serverprozess ausgeführt wird. Ein Punkt kann für den Servernamen verwendet werden, wenn die Pipe lokal ist. Das folgende Pipenamenformat wird verwendet:

\\servername\pipe\pipename

[in] nTimeOut

Die Anzahl der Millisekunden, die die Funktion wartet, bis eine instance der benannten Pipe verfügbar ist. Sie können einen der folgenden Werte verwenden, anstatt eine Anzahl von Millisekunden anzugeben.

Wert Bedeutung
NMPWAIT_USE_DEFAULT_WAIT
0x00000000
Das Timeoutintervall ist der Standardwert, der vom Serverprozess in der CreateNamedPipe-Funktion angegeben wird.
NMPWAIT_WAIT_FOREVER
0xffffffff
Die Funktion wird erst zurückgegeben, wenn ein instance der benannten Pipe verfügbar ist.

Rückgabewert

Wenn ein instance der Pipe verfügbar ist, bevor das Timeoutintervall verstrichen ist, ist der Rückgabewert nichtzero.

Wenn ein instance der Pipe nicht verfügbar ist, bevor das Timeoutintervall verstrichen ist, ist der Rückgabewert 0. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Wenn keine Instanzen der angegebenen Named Pipe vorhanden sind, gibt die WaitNamedPipe-Funktion unabhängig vom Timeoutwert sofort zurück.

Wenn das Timeoutintervall abläuft, tritt für die WaitNamedPipe-Funktion ein Fehler auf, der ERROR_SEM_TIMEOUT.

Wenn die Funktion erfolgreich ist, sollte der Prozess die CreateFile-Funktion verwenden, um ein Handle für die benannte Pipe zu öffnen. Ein Rückgabewert von TRUE gibt an, dass mindestens eine instance der Pipe verfügbar ist. Bei einem nachfolgenden CreateFile-Aufruf der Pipe kann ein Fehler auftreten, da die instance vom Server geschlossen oder von einem anderen Client geöffnet wurde.

Windows 10, Version 1709: Pipes werden nur in einem App-Container unterstützt, d. h. von einem UWP-Prozess zu einem anderen UWP-Prozess, der Teil derselben App ist. Außerdem müssen Named Pipes die Syntax \\.\pipe\LOCAL\ für den Pipenamen verwenden.

Beispiele

Ein Beispiel finden Sie unter Named Pipe Client.

Anforderungen

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

Siehe auch

CallNamedPipe

ConnectNamedPipe

CreateFile

CreateNamedPipe

Pipefunktionen

Übersicht über Rohre