【问题标题】:How to obtain a list of accesible named pipes on remote server?如何获取远程服务器上可访问的命名管道列表?
【发布时间】: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


【解决方案1】:

如果另一台机器是 windows,通常使用 WNetUseConnection() 映射任何驱动器并获得连接到其他资源(即命名管道)所需的凭据就足够了。

http://support.microsoft.com/kb/256847

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-14
    • 1970-01-01
    • 2017-01-01
    • 2020-10-28
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    相关资源
    最近更新 更多