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 |
---|---|
|
N’attend pas le canal nommé. Si le canal nommé n’est pas disponible, la fonction retourne une erreur. |
|
Attend indéfiniment. |
|
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 |