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 |
---|---|
|
Wartet nicht auf die benannte Pipe. Wenn die Named Pipe nicht verfügbar ist, gibt die Funktion einen Fehler zurück. |
|
Wartet unbegrenzt. |
|
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