【发布时间】:2013-09-29 16:55:35
【问题描述】:
我正在尝试为 Internet Explorer 11 (Windows 8.1) 编写 BHO。
我的 BHO 实现了 AppContainer 沙箱,但我似乎无法创建命名管道,CreateNamedPipe 失败并显示以下消息: Access is denied.
这是我用来创建命名管道的代码(我在 russian website 上找到的,最后一条评论:
LPCWSTR LOW_INTEGRITY_SDDL_SACL_W = L"S:(ML;;NW;;;LW)D:(A;;0x120083;;;WD)(A;;0x120083;;;AC)"; PSECURITY_DESCRIPTOR pSD = NULL; ConvertStringSecurityDescriptorToSecurityDescriptorW ( LOW_INTEGRITY_SDDL_SACL_W, SDDL_REVISION_1, &pSD, 空值 ); 如果 ( pSD != NULL) { SECURITY_ATTRIBUTES 安全属性; SecurityAttributes.nLength = sizeof(SECURITY_ATTRIBUTES); SecurityAttributes.bInheritHandle = TRUE; SecurityAttributes.lpSecurityDescriptor = pSD; 处理 hPipe = CreateNamedPipe( L"\\\\.\\pipe\\testpipe", PIPE_ACCESS_DUPLEX, PIPE_TYPE_BYTE | PIPE_READMODE_BYTE, 1、 4096, 4096, 1000, &安全属性); }不幸的是,它不起作用。 GetLastError() 像往常一样返回这个 Access is denied。
【问题讨论】:
-
它不适用于任何标签吗?你能在非保护模式下检查标签吗?
-
是的,当 EPM 关闭时它可以正常工作。 (在保护模式下工作正常,在增强保护模式下不起作用)。
-
看来use pipes within appContainer是可以的。但是你能试试 S:(ML;;NW;;;RC)D:(A;;0x120083;;;WD)(A;;0x120083;;;AC)吗?
-
ConvertStringSecurityDescriptorToSecurityDescriptorWW 失败并显示以下消息:“参数不正确。” (通过 GetLastError)。
-
现在没有更多想法了,抱歉。如果您找到解决方法,请回答您的问题,这对 IE11 BHO 开发很有用
标签: internet-explorer bho internet-explorer-11 epm appcontainer