CallNamedPipeA-Funktion (winbase.h)
Stellt eine Verbindung mit einer Pipe vom Typ Nachrichten her (und wartet, wenn ein instance der Pipe nicht verfügbar ist), schreibt in die Pipe und liest sie aus, und schließt dann die Pipe.
Syntax
BOOL CallNamedPipeA(
[in] LPCSTR 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 der Millisekunden, die warten, bis die benannte Pipe verfügbar ist. Zusätzlich zu numerischen Werten können die folgenden speziellen Werte angegeben werden.
Wert | Bedeutung |
---|---|
|
Wartet nicht auf die benannte Pipe. Wenn die benannte 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 aufgerufen | GENERIC_WRITE und ein erbenes Handleflag von FALSE.
CallNamedPipe schlägt fehl, wenn es sich bei der Pipe um eine Pipe vom Typ Byte handelt.
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 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 | winbase.h (einschließlich Windows.h) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |