You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP调用FilterConnectCommunicationPort连接minifilter驱动报错如何解决?

问题解决方案

首先明确:FilterConnectCommunicationPort 仅支持桌面桥(MSIX打包的Win32程序)形态的UWP应用调用,纯沙箱运行的UWP应用无法直接调用该内核API,需要通过桌面辅助进程中转。

现有配置的核心错误

  1. 安全描述符配置对象搞反
    你在客户端调用FilterConnectCommunicationPort时传入的SECURITY_ATTRIBUTES是用来设置返回的端口句柄的继承/访问权限,并不控制能否连接到minifilter的通信端口。真正控制连接权限的是驱动侧调用FltCreateCommunicationPort创建端口时传入的安全描述符,需要在驱动侧修改该配置。
  2. SDDL规则不匹配UWP运行上下文
    你当前用的SDDL(A;;GA;;;AC)(A;;GA;;;S-1-15-2-2)是给所有应用容器开放权限,Win10 1903及以后版本的系统安全策略默认禁止通用应用容器组SID访问内核通信端口,需要指定你的UWP应用的唯一包SID:
    • 首先调用GetPackageFamilyName获取你的应用的包家族名
    • 通过ConvertPackageFamilyNameToSid接口生成对应包SID,添加到驱动侧端口的SDDL规则中,示例规则格式:D:P(A;;GA;;;WD)(A;;GA;;;<你的应用包SID>)S:(ML;;;;;LW)

应用侧补充配置

如果你使用的是桌面桥形态的UWP应用,除了你已添加的权限外,还需要补充如下配置:

  • 如果minifilter端口需要管理员权限访问,在包清单中添加管理员权限声明:
<rescap:Capability Name="allowElevation" />
  • 确认项目属性中已开启「允许不安全代码」「允许调用Win32 API」相关配置,没有对fltlib.dll的调用做沙箱限制。

纯UWP兼容方案

如果你需要在纯沙箱UWP应用中对接minifilter,使用中转方案:

  • 开发一个桌面辅助进程,负责调用FilterConnectCommunicationPort和驱动通信
  • UWP应用通过AppService和桌面辅助进程进行数据交互,辅助进程默认随UWP应用启动

内容的提问来源于stack exchange,提问作者vincent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:54:02