CallNamedPipeA, fonction (winbase.h)

Se connecte à un canal de type message (et attend si une instance du canal n’est pas disponible), écrit dans le canal et lit à partir du canal, puis ferme le canal.

Syntaxe

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

Paramètres

[in] lpNamedPipeName

Nom du canal.

[in] lpInBuffer

Données à écrire dans le canal.

[in] nInBufferSize

Taille de la mémoire tampon d’écriture, en octets.

[out] lpOutBuffer

Pointeur vers la mémoire tampon qui reçoit les données lues à partir du canal.

[in] nOutBufferSize

Taille de la mémoire tampon de lecture, en octets.

[out] lpBytesRead

Pointeur vers une variable qui reçoit le nombre d’octets lus à partir du canal.

[in] nTimeOut

Nombre de millisecondes à attendre pour que le canal nommé soit disponible. En plus des valeurs numériques, les valeurs spéciales suivantes peuvent être spécifiées.

Valeur Signification
NMPWAIT_NOWAIT
0x00000001
N’attend pas le canal nommé. Si le canal nommé n’est pas disponible, la fonction retourne une erreur.
NMPWAIT_WAIT_FOREVER
0xffffffff
Attend indéfiniment.
NMPWAIT_USE_DEFAULT_WAIT
0x00000000
Utilise le délai d’attente par défaut spécifié dans un appel à la fonction CreateNamedPipe .

Valeur retournée

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Si le message écrit dans le canal par le processus serveur est plus long que nOutBufferSize, CallNamedPipe retourne FALSE et GetLastError retourne ERROR_MORE_DATA. Le reste du message est ignoré, car CallNamedPipe ferme le handle au canal avant de retourner.

Remarques

Appeler CallNamedPipe équivaut à appeler les fonctions CreateFile (ou WaitNamedPipe, si CreateFile ne peut pas ouvrir le canal immédiatement), TransactNamedPipe et CloseHandle . CreateFile est appelé avec un indicateur d’accès de GENERIC_READ | GENERIC_WRITE, et un indicateur de handle hérite de FALSE.

CallNamedPipe échoue si le canal est un canal de type octet.

Windows 10, version 1709 : les canaux ne sont pris en charge que dans un conteneur d’application, c’est-à-dire d’un processus UWP vers un autre processus UWP faisant partie de la même application. En outre, les canaux nommés doivent utiliser la syntaxe \\.\pipe\LOCAL\ du nom du canal.

Exemples

Pour obtenir un exemple, consultez Transactions sur des canaux nommés.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

CloseHandle

CreateFile

CreateNamedPipe

Fonctions de canal

Vue d’ensemble des canaux

TransactNamedPipe

WaitNamedPipe