Condividi tramite


Funzione GetNamedPipeHandleStateA (winbase.h)

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

Sintassi

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

Parametri

[in] hNamedPipe

Handle alla pipe denominata per cui sono necessarie informazioni. L'handle deve avere GENERIC_READ accesso per una pipe di sola lettura o 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 entrambi i valori seguenti.

Valore Significato
PIPE_NOWAIT
0x00000001
L'handle della pipe è in modalità non sbloccante. Se questo flag non è specificato, l'handle della pipe è in modalità di blocco.
PIPE_READMODE_MESSAGE
0x00000002
L'handle della pipe è in modalità di lettura messaggio. Se questo flag non è specificato, l'handle della 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 pipe denominata 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 pipe denominata remota trasferisca informazioni sulla rete. Questo parametro deve essere NULL se l'handle pipe specificato è alla fine del server di una pipe denominata 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 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 pipe denominata. Questo parametro può essere NULL se queste informazioni non sono necessarie.

[in] nMaxUserNameSize

Dimensioni del buffer specificato dal parametro lpUserName , in TCHARs. 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 dell'handle della pipe, usare la funzione SetNamedPipeHandleState .

Windows 10 versione 1709: i pipe sono supportati solo all'interno di un contenitore di app, ovvero da un processo UWP a un altro processo UWP che fa parte della stessa app. Inoltre, i pipe denominati devono 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 winbase.h (include Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

Funzioni pipe

Panoramica di Pipe

SetNamedPipeHandleState