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 |
---|---|
|
Das Timeoutintervall ist der Standardwert, der vom Serverprozess in der CreateNamedPipe-Funktion angegeben wird. |
|
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 |