Condividi tramite


Funzione GetNamedPipeHandleStateW (namedpipeapi.h)

Recupera informazioni su una named pipe specificata. Le informazioni restituite possono variare durante la durata di un'istanza della named pipe.

Sintassi

BOOL GetNamedPipeHandleStateW(
  [in]            HANDLE  hNamedPipe,
  [out, optional] LPDWORD lpState,
  [out, optional] LPDWORD lpCurInstances,
  [out, optional] LPDWORD lpMaxCollectionCount,
  [out, optional] LPDWORD lpCollectDataTimeout,
  [out, optional] LPWSTR  lpUserName,
  [in]            DWORD   nMaxUserNameSize
);

Parametri

[in] hNamedPipe

Handle alla named pipe per cui si desiderano informazioni. L'handle deve avere accesso GENERIC_READ per una pipe di sola lettura o di lettura/scrittura oppure deve avere GENERIC_WRITE e FILE_READ_ATTRIBUTES l'accesso per una pipe di sola scrittura.

Questo parametro può anche essere un handle per una pipe anonima, come restituito dalla funzione CreatePipe .

[out, optional] lpState

Puntatore a una variabile che indica lo stato corrente dell'handle. Questo parametro può essere NULL se queste informazioni non sono necessarie. È possibile specificare uno o entrambi i valori seguenti.

Valore Significato
PIPE_NOWAIT
0x00000001
L'handle pipe è in modalità non bloccante. Se questo flag non viene specificato, l'handle della pipe è in modalità di blocco.
PIPE_READMODE_MESSAGE
0x00000002
L'handle pipe è in modalità di lettura messaggi. Se questo flag non viene specificato, l'handle pipe è in modalità di lettura byte.

[out, optional] lpCurInstances

Puntatore a una variabile che riceve il numero di istanze della pipe corrente. Questo parametro può essere NULL se queste informazioni non sono necessarie.

[out, optional] lpMaxCollectionCount

Puntatore a una variabile che riceve il numero massimo di byte da raccogliere nel computer del client prima della trasmissione al server. Questo parametro deve essere NULL se l'handle pipe specificato è alla fine del server di una named pipe o se i processi client e server si trovano nello stesso computer. Questo parametro può essere NULL se queste informazioni non sono necessarie.

[out, optional] lpCollectDataTimeout

Puntatore a una variabile che riceve il tempo massimo, in millisecondi, che può passare prima che una named pipe remota trasferisca le informazioni in rete. Questo parametro deve essere NULL se l'handle pipe specificato è alla fine del server di una named pipe o se i processi client e server si trovano nello stesso computer. Questo parametro può essere NULL se queste informazioni non sono necessarie.

[out, optional] lpUserName

Puntatore a un buffer che riceve la stringa del nome utente associata all'applicazione client. Il server può recuperare queste informazioni solo se il client ha aperto la pipe con accesso SECURITY_IMPERSONATION.

Questo parametro deve essere NULL se l'handle pipe specificato è alla fine del client di una named pipe. Questo parametro può essere NULL se queste informazioni non sono necessarie.

[in] nMaxUserNameSize

Dimensioni del buffer specificato dal parametro lpUserName , in TCHAR. Questo parametro viene ignorato se lpUserName è NULL.

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.

Commenti

La funzione GetNamedPipeHandleState restituisce correttamente anche se tutti i puntatori passati sono NULL.

Per impostare lo stato di handle della pipe, usare la funzione SetNamedPipeHandleState .

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.

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

Funzioni pipe
Panoramica delle pipe
SetNamedPipeHandleState