Funzione CallNamedPipeW (namedpipeapi.h)
Si connette a una pipe di tipo messaggio e attende se un'istanza della pipe non è disponibile, scrive e legge dalla pipe e quindi chiude la pipe.
Sintassi
BOOL CallNamedPipeW(
[in] LPCWSTR lpNamedPipeName,
[in] LPVOID lpInBuffer,
[in] DWORD nInBufferSize,
[out] LPVOID lpOutBuffer,
[in] DWORD nOutBufferSize,
[out] LPDWORD lpBytesRead,
[in] DWORD nTimeOut
);
Parametri
[in] lpNamedPipeName
Nome della pipe.
[in] lpInBuffer
Dati da scrivere nella pipe.
[in] nInBufferSize
Dimensioni del buffer di scrittura, in byte.
[out] lpOutBuffer
Puntatore al buffer che riceve i dati letti dalla pipe.
[in] nOutBufferSize
Dimensioni del buffer di lettura, in byte.
[out] lpBytesRead
Puntatore a una variabile che riceve il numero di byte letti dalla pipe.
[in] nTimeOut
Numero di millisecondi di attesa per la disponibilità della named pipe. Oltre ai valori numerici, è possibile specificare i valori speciali seguenti.
Valore | Significato |
---|---|
|
Non attende la named pipe. Se la named pipe non è disponibile, la funzione restituisce un errore. |
|
Attende per un periodo illimitato. |
|
Usa il timeout predefinito specificato in una chiamata alla funzione CreateNamedPipe . |
Valore restituito
Se la funzione ha esito positivo, il valore restituito è diverso da zero.
Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Se il messaggio scritto nella pipe dal processo del server è più lungo di nOutBufferSize, CallNamedPipe restituisce FALSE e GetLastError restituisce ERROR_MORE_DATA. Il resto del messaggio viene rimosso perché CallNamedPipe chiude l'handle alla pipe prima di restituire.
Commenti
La chiamata a CallNamedPipe equivale a chiamare le funzioni CreateFile (o WaitNamedPipe, se CreateFile non è in grado di aprire immediatamente la pipe), le funzioni TransactNamedPipe e CloseHandle . CreateFile viene chiamato con un flag di accesso di GENERIC_READ | GENERIC_WRITE e un flag di handle eredita false.
CallNamedPipe ha esito negativo se la pipe è di tipo byte.
Windows 10 versione 1709: le pipe sono supportate solo all'interno di un contenitore di app, ad esempio da un processo UWP a un altro processo UWP che fa parte della stessa app. Inoltre, named pipe deve usare la sintassi \\.\pipe\LOCAL\
per il nome della pipe.
Esempio
Per un esempio, vedere Transazioni nelle named pipe.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [app desktop | App UWP] |
Server minimo supportato | Windows 2000 Server [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | namedpipeapi.h |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |
Vedere anche
Closehandle
CreateFile
CreateNamedPipe
Funzioni pipe
Panoramica delle pipe
TransactNamedPipe
WaitNamedPipe