Condividi tramite


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
NMPWAIT_NOWAIT
0x00000001
Non attende la named pipe. Se la named pipe non è disponibile, la funzione restituisce un errore.
NMPWAIT_WAIT_FOREVER
0xffffffff
Attende per un periodo illimitato.
NMPWAIT_USE_DEFAULT_WAIT
0x00000000
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