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.

Valor Significado
PIPE_NOWAIT
0x00000001
A alça de pipe está no modo sem bloqueio. Se esse sinalizador não for especificado, o identificador de pipe estará no modo de bloqueio.
PIPE_READMODE_MESSAGE
0x00000002
O identificador de pipe está no modo de leitura de mensagem. Se esse sinalizador não for especificado, o identificador de pipe estará no modo de leitura de bytes.

[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

Confira também

Funções de pipe

Visão geral de pipes

SetNamedPipeHandleState