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 |
---|---|
|
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 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