Freigeben über


CallNamedPipeW-Funktion (namedpipeapi.h)

Stellt eine Verbindung mit einer Meldungspipe her (und wartet, wenn ein instance der Pipe nicht verfügbar ist), schreibt in die Pipe und liest aus der Pipe, und schließt dann die Pipe.

Syntax

BOOL CallNamedPipeW(
  [in]  LPCWSTR lpNamedPipeName,
  [in]  LPVOID  lpInBuffer,
  [in]  DWORD   nInBufferSize,
  [out] LPVOID  lpOutBuffer,
  [in]  DWORD   nOutBufferSize,
  [out] LPDWORD lpBytesRead,
  [in]  DWORD   nTimeOut
);

Parameter

[in] lpNamedPipeName

Der Pipename.

[in] lpInBuffer

Die Daten, die in die Pipe geschrieben werden sollen.

[in] nInBufferSize

Die Größe des Schreibpuffers in Bytes.

[out] lpOutBuffer

Ein Zeiger auf den Puffer, der die aus der Pipe gelesenen Daten empfängt.

[in] nOutBufferSize

Die Größe des Lesepuffers in Bytes.

[out] lpBytesRead

Ein Zeiger auf eine Variable, die die Anzahl der aus der Pipe gelesenen Bytes empfängt.

[in] nTimeOut

Die Anzahl von Millisekunden, die auf die Verfügbarkeit der benannten Pipe gewartet werden soll. Zusätzlich zu numerischen Werten können die folgenden speziellen Werte angegeben werden.

Wert Bedeutung
NMPWAIT_NOWAIT
0x00000001
Wartet nicht auf die benannte Pipe. Wenn die Named Pipe nicht verfügbar ist, gibt die Funktion einen Fehler zurück.
NMPWAIT_WAIT_FOREVER
0xffffffff
Wartet unbegrenzt.
NMPWAIT_USE_DEFAULT_WAIT
0x00000000
Verwendet das Standardtimeout, das in einem Aufruf der CreateNamedPipe-Funktion angegeben ist.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Wenn die vom Serverprozess in die Pipe geschriebene Nachricht länger als nOutBufferSize ist, gibt CallNamedPipeFALSE zurück, und GetLastError gibt ERROR_MORE_DATA zurück. Der Rest der Nachricht wird verworfen, da CallNamedPipe das Handle vor der Rückgabe an die Pipe schließt.

Hinweise

Das Aufrufen von CallNamedPipe entspricht dem Aufrufen der Funktionen CreateFile (oder WaitNamedPipe, wenn CreateFile die Pipe nicht sofort öffnen kann), TransactNamedPipe und CloseHandle . CreateFile wird mit dem Zugriffsflag GENERIC_READ | GENERIC_WRITE und ein Handle-Erbeflag von FALSE.

CallNamedPipe schlägt fehl, wenn es sich bei der Pipe um eine Byte-Pipe handelt.

Windows 10 Version 1709: Pipes werden nur innerhalb eines App-Containers 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 Transaktionen in Named Pipes.

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 namedpipeapi.h
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

CloseHandle
CreateFile
CreateNamedPipe
Pipefunktionen
Übersicht über Pipes
TransactNamedPipe
WaitNamedPipe