Windows Win32IPCkernel32.dll
TransactNamedPipe
Combina uma escrita e uma leitura em uma única operação sobre um pipe em modo mensagem duplex.
Descrição
Otimização que evita duas chamadas (WriteFile + ReadFile) e a troca de contexto extra associada, para o padrão comum de requisição-resposta.
Header:
namedpipeapi.hDLL: kernel32.dllAssinatura
BOOL TransactNamedPipe(
HANDLE hNamedPipe,
LPVOID lpInBuffer,
DWORD nInBufferSize,
LPVOID lpOutBuffer,
DWORD nOutBufferSize,
LPDWORD lpBytesRead,
LPOVERLAPPED lpOverlapped
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| hNamedPipe | HANDLE | Handle do pipe, em modo mensagem duplex. |
| lpInBuffer | LPVOID | Dados a enviar. |
| nInBufferSize | DWORD | Tamanho de `lpInBuffer`. |
| lpOutBuffer | LPVOID | Recebe a resposta. |
| nOutBufferSize | DWORD | Tamanho de `lpOutBuffer`. |
| lpBytesRead | LPDWORD | Recebe o número de bytes de resposta lidos. |
| lpOverlapped | LPOVERLAPPED | Estrutura para operação assíncrona, ou NULL. |
Valor de retorno
Diferente de zero em sucesso; 0 em erro (consulte GetLastError).
Códigos de erro (GetLastError)
- ERROR_INVALID_HANDLE(6)
- O identificador (handle) informado é inválido.
- ERROR_MORE_DATA(234)
- Há mais dados disponíveis do que o buffer comporta.