WaitNamedPipeA, fonction (winbase.h)
Attend qu’un intervalle de délai d’attente s’écoule ou qu’une instance du canal nommé spécifié soit disponible pour la connexion (autrement dit, le processus serveur du canal a une opération ConnectNamedPipe en attente sur le canal).
Syntaxe
BOOL WaitNamedPipeA(
[in] LPCSTR lpNamedPipeName,
[in] DWORD nTimeOut
);
Paramètres
[in] lpNamedPipeName
Nom du canal nommé. La chaîne doit inclure le nom de l’ordinateur sur lequel le processus serveur s’exécute. Un point peut être utilisé pour le nom du serveur si le canal est local. Le format de nom de canal suivant est utilisé :
\\servername\pipe\pipename
[in] nTimeOut
Nombre de millisecondes pendant lesquelles la fonction attend qu’une instance du canal nommé soit disponible. Vous pouvez utiliser l’une des valeurs suivantes au lieu de spécifier un nombre de millisecondes.
Valeur | Signification |
---|---|
|
L’intervalle de délai d’attente est la valeur par défaut spécifiée par le processus serveur dans la fonction CreateNamedPipe . |
|
La fonction ne retourne pas tant qu’une instance du canal nommé n’est pas disponible. |
Valeur retournée
Si une instance du canal est disponible avant l’expiration de l’intervalle de délai d’attente, la valeur de retour est différente de zéro.
Si une instance du canal n’est pas disponible avant l’expiration de l’intervalle de délai d’attente, la valeur de retour est zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Remarques
Si aucune instance du canal nommé spécifié n’existe, la fonction WaitNamedPipe retourne immédiatement, quelle que soit la valeur du délai d’attente.
Si l’intervalle de délai d’expiration expire, la fonction WaitNamedPipe échoue avec l’erreur ERROR_SEM_TIMEOUT.
Si la fonction réussit, le processus doit utiliser la fonction CreateFile pour ouvrir un handle sur le canal nommé. La valeur de retour TRUE indique qu’il existe au moins un instance du canal disponible. Un appel CreateFile suivant au canal peut échouer, car le instance a été fermé par le serveur ou ouvert par un autre client.
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 Client de canal nommé.
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 |