【发布时间】:2011-02-09 12:03:20
【问题描述】:
我可以从客户端应用程序以某种方式列出远程服务器上的命名管道吗?
在我使用的本地计算机上
hFindFile = FindFirstFile("\\\\.\\pipe\\*",&fdFileData);
其中 hFindFile 是句柄,fdFileData 是 WIN32_FIND_DATA 结构。我反复调用 FindNextFile(),当它返回 0 时,我用 FindClose() 关闭。它在本地机器上完美运行,但是当我尝试调用时
hFindFile = FindFirstFile("\\\\servername\\pipe\\*",&fdFileData);
导致 ERROR_INVALID_FUNCTION。 有人建议我需要通过 WNetUseConnection() 连接到远程服务器,但对我来说并不清楚我连接到什么对象。
【问题讨论】:
-
哇。坦率地说,我很惊讶第一个确实有效。不过,我认为依赖它可能很危险,因为它没有记录为支持管道。
-
@Luke:Windows 上的命名管道实际上是挂载到 \\.\pipe\ 目录的 NPFS 文件系统上的临时“文件”。这就是为什么您可以使用 CreateFile() 连接到客户端程序中的命名管道。
标签: c++ winapi named-pipes