Partager via


CallNamedPipeW, fonction (namedpipeapi.h)

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

Syntaxe

BOOL CallNamedPipeW(
  [in]  LPCWSTR 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 renvoie ERROR_MORE_DATA. Le reste du message est ignoré, car CallNamedPipe ferme le handle au canal avant de revenir.

Remarques

Appeler CallNamedPipe revient à appeler les fonctions CreateFile (ou WaitNamedPipe, si CreateFile ne peut pas ouvrir immédiatement le canal), TransactNamedPipe et CloseHandle . CreateFile est appelé avec un indicateur d’accès GENERIC_READ | GENERIC_WRITE et un indicateur de handle héritent 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 à un autre processus UWP qui fait 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 namedpipeapi.h
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

CloseHandle
CreateFile
CreateNamedPipe
Fonctions de canal
Vue d’ensemble des canaux
TransactNamedPipe
WaitNamedPipe