cmroute.dll 全称 Connection Manager Route Library,是 Windows 连接管理器(Connection Manager)框架中的路由管理组件,一般位于 %SystemRoot%\System32\ 目录下,由 cmstp.exe、cmsetup 及各类 VPN/拨号客户端在运行期动态加载。它本身不参与链路协商,而是专注于远程接入连接建立后主机 IPv4 路由表的动态维护。
当 PPP、PPTP、L2TP、SSTP 等连接完成认证并拿到对端地址后,cmroute.dll 会读取连接配置文件(.cmp)中声明的目标网段、子网掩码与网关参数,调用 IP Helper API(CreateIpForwardEntry、GetIpForwardTable 等)向路由表写入指向该虚拟接口的明细路由;连接断开时按引用计数反向删除条目,避免残留无效路由。
组件依赖 rasapi32.dll、rasman.dll、iphlpapi.dll,通过 RAS 接口获取连接对应的 IfIndex 与点对点地址,把路由下一跳正确绑定到 WAN Miniport 虚拟网卡上,确保数据包从隧道出入口转发,而非误走物理网卡。
在分离隧道(Split Tunneling)场景中,cmroute.dll 维护的条目决定哪些目标网段被纳入隧道、哪些直接走本地网关,并作为按需拨号(Demand-Dial)触发条件的一部分,为上层连接管理器提供路由查询能力。
sfc /scannow、DISM 修复组件存储后回填,并检查依赖它的 RAS 相关服务是否正常启动。