WaitNamedPipeA 函式 (winbase.h)
等候直到指定的命名管道實例經過逾時間隔或指定的命名管道實例可供連線 (,也就是管道的伺服器進程在管道) 上有擱置的 ConnectNamedPipe 作業。
語法
BOOL WaitNamedPipeA(
[in] LPCSTR lpNamedPipeName,
[in] DWORD nTimeOut
);
參數
[in] lpNamedPipeName
命名管道的名稱。 字串必須包含伺服器進程執行所在的計算機名稱。 如果管道是本機,則句點可用於 servername 。 使用下列管道名稱格式:
\\servername\pipe\pipe\pipename
[in] nTimeOut
函式將等候具名管道實例可用的毫秒數。 您可以使用下列其中一個值,而不是指定毫秒數。
值 | 意義 |
---|---|
|
逾時間隔是 CreateNamedPipe 函式中伺服器進程所指定的預設值。 |
|
函式不會在具名管道的實例可用之前傳回。 |
傳回值
如果管道的實例在逾時間隔經過之前可用,則傳回值為非零。
如果管道的實例在逾時間隔經過之前無法使用,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
如果指定的命名管道實例不存在, 則 WaitNamedPipe 函式會立即傳回,而不論逾時值為何。
如果逾時間隔過期, WaitNamedPipe 函式將會失敗,並出現錯誤 ERROR_SEM_TIMEOUT。
如果函式成功,進程應該使用 CreateFile 函式來開啟命名管道的句柄。 TRUE 的傳回值表示至少有一個可用的管道實例。 管道的後續 CreateFile 呼叫可能會失敗,因為實例已由伺服器關閉,或由另一個客戶端開啟。
Windows 10 版本 1709:管道僅在應用程式容器內受到支援;亦即,從一個 UWP 進程到另一個屬於相同 app 的 UWP 進程。 此外,命名管道必須使用管道名稱的語法 \\.\pipe\LOCAL\
。
範例
如需範例,請參閱 命名管道用戶端。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | winbase.h (包含 Windows.h) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |
另請參閱
CreateNamedPipe (CreateNamedPipe 函式)