【问题标题】:IPC between windows service and LSP DLLWindows 服务和 LSP DLL 之间的 IPC
【发布时间】:2011-06-28 15:50:41
【问题描述】:

我正在编写一个需要与 Windows 服务通信的 Winsock LSP(分层服务提供程序)DLL。

使用内存映射文件和事件进行通信以进行同步。如果应用程序未作为服务运行,则一切正常,但如果它确实找不到任何事件或文件映射(我在 OpenEvent 上收到 ERROR_FILE_NOT_FOUND 错误)。

我怀疑这是因为当作为服务运行时,应用程序以 SYSTEM 用户身份运行,而 LSP 由以本地用户身份运行的应用程序加载。

我认为这可以通过使用适当的 SECURITY_DESCRIPTOR 来解决,但我不知道应该设置什么。

关于如何完成这项工作的任何想法?

谢谢,

【问题讨论】:

  • 欢迎来到 SO。您可以通过编辑来更新您自己的问题。您可以为问题投票(赞成或反对),如果您得到满足您需求并回答了您的问题的答案,您可以将其标记为答案

标签: dll windows-services ipc winsock-lsp


【解决方案1】:

根据操作系统,可能是会话问题。如果您再看一下 CreateEvent、CreateMemoryMapping 等的文档,您会注意到对象名称的 GLOBAL\ 前缀。此前缀(与 SESSION\x\ 前缀一起)定义对象的可见性范围。 GLOBAL 前缀在整个系统中可见,而名称中没有前缀的对象是特定会话的本地对象(如果省略 \SESSION 前缀,则为当前会话)。会话出现在 Windows XP 的终端服务中,然后进入 Windows 2003 Server 及更高版本的操作系统。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多