Función CallNamedPipeA (winbase.h)
Se conecta a una canalización de tipo de mensaje (y espera si una instancia de la canalización no está disponible), escribe en y lee desde la canalización y, a continuación, cierra la canalización.
Sintaxis
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
Nombre de la canalización.
[in] lpInBuffer
Datos que se van a escribir en la canalización.
[in] nInBufferSize
Tamaño del búfer de escritura, en bytes.
[out] lpOutBuffer
Puntero al búfer que recibe los datos leídos de la canalización.
[in] nOutBufferSize
Tamaño del búfer de lectura, en bytes.
[out] lpBytesRead
Puntero a una variable que recibe el número de bytes leídos de la canalización.
[in] nTimeOut
Número de milisegundos que se esperarán a que la canalización con nombre esté disponible. Además de los valores numéricos, se pueden especificar los siguientes valores especiales.
Valor | Significado |
---|---|
|
No espera la canalización con nombre. Si la canalización con nombre no está disponible, la función devuelve un error. |
|
Espera indefinidamente. |
|
Usa el tiempo de espera predeterminado especificado en una llamada a la función CreateNamedPipe . |
Valor devuelto
Si la función se realiza correctamente, el valor devuelto es distinto de cero.
Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.
Si el mensaje escrito en la canalización por el proceso del servidor es mayor que nOutBufferSize, CallNamedPipe devuelve FALSE y GetLastError devuelve ERROR_MORE_DATA. El resto del mensaje se descarta, porque CallNamedPipe cierra el identificador de la canalización antes de devolverlo.
Comentarios
Llamar a CallNamedPipe equivale a llamar a las funciones CreateFile (o WaitNamedPipe, si CreateFile no puede abrir la canalización inmediatamente), TransactNamedPipe y CloseHandle . Se llama a CreateFile con una marca de acceso de GENERIC_READ | GENERIC_WRITE y una marca de identificador heredada de FALSE.
CallNamedPipe produce un error si la canalización es de tipo byte.
Windows 10, versión 1709: las canalizaciones solo se admiten en un contenedor de aplicaciones; es decir, desde un proceso de UWP a otro proceso de UWP que forma parte de la misma aplicación. Además, las canalizaciones con nombre deben usar la sintaxis \\.\pipe\LOCAL\
para el nombre de la canalización.
Ejemplos
Para obtener un ejemplo, vea Transacciones en canalizaciones con nombre.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | winbase.h (incluye Windows.h) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |