Compartir a través de


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
NMPWAIT_NOWAIT
0x00000001
No espera la canalización con nombre. Si la canalización con nombre no está disponible, la función devuelve un error.
NMPWAIT_WAIT_FOREVER
0xffffffff
Espera indefinidamente.
NMPWAIT_USE_DEFAULT_WAIT
0x00000000
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

Vea también

CloseHandle

CreateFile

CreateNamedPipe

Funciones de canalización

Información general sobre canalizaciones

TransactNamedPipe

WaitNamedPipe