Função GetNamedPipeHandleStateA (winbase.h)
Recupera informações sobre um pipe nomeado especificado. As informações retornadas podem variar durante o tempo de vida de uma instância do pipe nomeado.
Sintaxe
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
);
Parâmetros
[in] hNamedPipe
Um identificador para o pipe nomeado para o qual as informações são desejadas. O identificador deve ter acesso GENERIC_READ para um pipe somente leitura ou leitura/gravação ou deve ter acesso GENERIC_WRITE e FILE_READ_ATTRIBUTES para um pipe somente gravação.
Esse parâmetro também pode ser um identificador para um pipe anônimo, conforme retornado pela função CreatePipe .
[out, optional] lpState
Um ponteiro para uma variável que indica o estado atual do identificador. Esse parâmetro poderá ser NULL se essas informações não forem necessárias. Ou ambos os valores a seguir podem ser especificados.
[out, optional] lpCurInstances
Um ponteiro para uma variável que recebe o número de instâncias de pipe atuais. Esse parâmetro poderá ser NULL se essas informações não forem necessárias.
[out, optional] lpMaxCollectionCount
Um ponteiro para uma variável que recebe o número máximo de bytes a serem coletados no computador do cliente antes da transmissão para o servidor. Esse parâmetro deverá ser NULL se o identificador de pipe especificado for para a extremidade do servidor de um pipe nomeado ou se os processos de cliente e servidor estiverem no mesmo computador. Esse parâmetro poderá ser NULL se essas informações não forem necessárias.
[out, optional] lpCollectDataTimeout
Um ponteiro para uma variável que recebe o tempo máximo, em milissegundos, que pode passar antes que um pipe nomeado remoto transfira informações pela rede. Esse parâmetro deverá ser NULL se o identificador de pipe especificado for para a extremidade do servidor de um pipe nomeado ou se os processos de cliente e servidor estiverem no mesmo computador. Esse parâmetro poderá ser NULL se essas informações não forem necessárias.
[out, optional] lpUserName
Um ponteiro para um buffer que recebe a cadeia de caracteres de nome de usuário associada ao aplicativo cliente. O servidor só poderá recuperar essas informações se o cliente tiver aberto o pipe com acesso SECURITY_IMPERSONATION.
Esse parâmetro deverá ser NULL se o identificador de pipe especificado for para o final do cliente de um pipe nomeado. Esse parâmetro poderá ser NULL se essas informações não forem necessárias.
[in] nMaxUserNameSize
O tamanho do buffer especificado pelo parâmetro lpUserName , em TCHARs. Esse parâmetro será ignorado se lpUserName for NULL.
Valor retornado
Se a função for bem-sucedida, o valor retornado será diferente de zero.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
Comentários
A função GetNamedPipeHandleState retorna com êxito mesmo que todos os ponteiros passados para ela sejam NULL.
Para definir o estado do identificador de pipe, use a função SetNamedPipeHandleState .
Windows 10, versão 1709: os pipes só têm suporte em um app-container; ou seja, de um processo UWP para outro processo UWP que faz parte do mesmo aplicativo. Além disso, os pipes nomeados devem usar a sintaxe \\.\pipe\LOCAL\
para o nome do pipe.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP] |
Servidor mínimo com suporte | Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP] |
Plataforma de Destino | Windows |
Cabeçalho | winbase.h (incluir Windows.h) |
Biblioteca | Kernel32.lib |
DLL | Kernel32.dll |