Função CallNamedPipeA (winbase.h)

Conecta-se a um pipe do tipo mensagem (e aguarda se uma instância do pipe não está disponível), grava e lê do pipe e fecha o pipe.

Sintaxe

BOOL CallNamedPipeA(
  [in]  LPCSTR  lpNamedPipeName,
  [in]  LPVOID  lpInBuffer,
  [in]  DWORD   nInBufferSize,
  [out] LPVOID  lpOutBuffer,
  [in]  DWORD   nOutBufferSize,
  [out] LPDWORD lpBytesRead,
  [in]  DWORD   nTimeOut
);

Parâmetros

[in] lpNamedPipeName

O nome do pipe.

[in] lpInBuffer

Os dados a serem gravados no pipe.

[in] nInBufferSize

O tamanho do buffer de gravação, em bytes.

[out] lpOutBuffer

Um ponteiro para o buffer que recebe os dados lidos do pipe.

[in] nOutBufferSize

O tamanho do buffer de leitura, em bytes.

[out] lpBytesRead

Um ponteiro para uma variável que recebe o número de bytes lidos do pipe.

[in] nTimeOut

O número de milissegundos a aguardar até que o pipe nomeado esteja disponível. Além dos valores numéricos, os valores especiais a seguir podem ser especificados.

Valor Significado
NMPWAIT_NOWAIT
0x00000001
Não aguarda o pipe nomeado. Se o pipe nomeado não estiver disponível, a função retornará um erro.
NMPWAIT_WAIT_FOREVER
0xffffffff
Espera indefinidamente.
NMPWAIT_USE_DEFAULT_WAIT
0x00000000
Usa o tempo limite padrão especificado em uma chamada para a função CreateNamedPipe .

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.

Se a mensagem gravada no pipe pelo processo do servidor for maior que nOutBufferSize, CallNamedPipe retornará FALSE e GetLastError retornará ERROR_MORE_DATA. O restante da mensagem é descartado porque CallNamedPipe fecha o identificador do pipe antes de retornar.

Comentários

Chamar CallNamedPipe é equivalente a chamar as funções CreateFile (ou WaitNamedPipe, se CreateFile não puder abrir o pipe imediatamente), TransactNamedPipe e CloseHandle . CreateFile é chamado com um sinalizador de acesso de GENERIC_READ | GENERIC_WRITE e um sinalizador de identificador herdado de FALSE.

CallNamedPipe falhará se o pipe for um pipe do tipo byte.

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.

Exemplos

Para obter um exemplo, consulte Transações em pipes nomeados.

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

CloseHandle

CreateFile

CreateNamedPipe

Funções de pipe

Visão geral de pipes

TransactNamedPipe

WaitNamedPipe