微软驱动签名新规:Windows 11开发者与用户应对指南
最近这半年微软针对驱动签名出了好几条新规做驱动开发的和装驱动机器上遇到问题的普通用户两边都被折腾得不轻。开发圈子最先感受到变化——以前“用 EV 证书签完名就能装”的老套路开始失灵系统在加载驱动时不再只看签名有没有效还会检查驱动是否走过微软硬件开发者中心的认证提交流程。与此同时Windows 11 用户的设备管理器里开始频繁出现“无法验证此驱动程序的发布者”“第三方 INF 不包含数字签名信息”之类的报错很多老打印机、老声卡、老网卡一夜之间变得“无法驱动”。我因为工作原因常年和这些驱动打交道测试机上已经踩了不少坑今天把新规背后的逻辑、实操层面的处理思路以及我自己的一些经验一次性整理出来。1. 微软驱动签名新规到底改了什么1.1 新规则最直观的三个变化先交代一下背景。Windows 的驱动签名不是新东西从 Vista 时代的 64 位系统开始微软就要求内核驱动必须带有数字签名。但说实话过去很长一段时间里这条规则并没有被严格执行。企业内部驱动、小众硬件驱动通常只要有一张 EV 代码签名证书签完名就能在目标机器上顺利加载。最近两年情况完全不同了微软把驱动签名的规则从“文件级签名”重新定义成了“产品级认证”我自己的多台测试机都因此遇到过驱动被拦下来的情况。新规体现得最明显的有三点。第一签名主体变了。以前驱动文件由开发者的 EV 证书签名即可生效现在系统在加载驱动前还会检查“这个签名是不是来自微软认证通道”。驱动要先提交到 Windows 硬件开发中心做产品申报等微软审核通过并返回签名结果后才能在正式版 Windows 上稳定运行。你手里有 EV 证书只是前提不等于签完就能直接给用户使用。第二检查时机前移了。以前很多驱动在安装时才做签名校验现在 Windows 11 上系统在驱动加载阶段就开始校验而且校验链更长。如果驱动在启动过程中被发现签名链不可信设备管理器会直接报错误代码别说运行装都可能装不进去。第三加入了 HVCI 兼容性要求。HVCI 就是大家常说的内存完整性是 Windows 安全中心里基于虚拟化的保护功能。微软这几轮更新里明确把“驱动是否兼容 HVCI”纳入签名审核范围。哪怕驱动签名本身是有效的只要被判定为不兼容 HVCI在默认开启内存完整性的设备上依然会被拒绝加载。1.2 受影响的人群与场景受影响的用户其实分两类。一类是开发者和硬件厂商需要考虑证书选择、提交流程和测试周期这部分人关心的更多是开发环境怎么搭、证书怎么买、WHQL 怎么做。另一类是普通用户最典型的表现是安装打印机驱动、网卡驱动、外设驱动时弹出签名校验失败然后安装过程被强制中断。这两类人各自要解决的问题完全不同我在后面的章节分开拆解。还有一类容易被忽略的角色是 IT 管理员。企业内部如果有大量旧设备系统升级到 Windows 11 之后驱动签名新规可能会导致一批设备无法正常工作。企业环境里还涉及设备驱动批量部署、镜像封装时预装驱动的签名校验问题这些都要在项目排期时提前考虑到不能等设备分发下去了再补救。2. 为什么微软把驱动签名卡得这么严2.1 驱动签名真正保护的是什么很多用户会问驱动签名的意义到底是什么数字签名本身的原理不复杂它用非对称加密对文件做一次“盖章”盖章对应的私钥由驱动发布者保管公钥包含在系统信任的证书里。系统加载驱动前会用证书公钥去校验文件内容有没有被篡改同时检查证书是否过期、是否被吊销。这套机制同时解决两个问题发布者身份可以追溯文件完整性可以被验证。但这里有一个关键点签名的有效并不等于驱动本身没有漏洞。微软这几年在安全公告里反复提到两类风险一类是 Rootkit攻击者通过加载恶意驱动获取内核权限另一类是 BYOVD也就是自带漏洞驱动攻击。BYOVD 攻击者根本不写恶意软件而是直接利用一个已经签名、但存在已知漏洞的老驱动进入内核。这些驱动大多是厂商早年发布、早已停止维护的产品签名有效、漏洞却没人修。如果微软继续维持宽松的签名策略等于让攻击者拿着合法门票进内核。2.2 新规背后的安全压力再叠加 VBS基于虚拟化的安全和 HVCI 的普及问题就更加现实。HVCI 利用虚拟化技术把内核隔离起来用硬件虚拟化的方式限制驱动和系统组件的执行权限。如果一个存在兼容问题的驱动强行加载轻则触发蓝屏重则绕过 HVCI 的防护机制。所以微软不只是在把签名规则变严而是在把整个驱动生态推进到一个能匹配现代安全模型的阶段。新规实际上是在为内存完整性功能“清路”。从时间线看微软的步子一直没停过。64 位系统从 Windows 10 1607 版本开始强制要求内核驱动签名之后每一次大版本更新都在逐步收紧认证口径。现在的逻辑已经变成系统不仅要驱动“签过名”还要驱动“经过微软审核流程认证”。这套体系的最终目的是让 Windows 内核里能运行的每一行第三方代码都有明确的来源和责任人。2.3 老驱动与新系统的矛盾但这给硬件生态带来了一个直接矛盾老设备的驱动停更多年不可能再回头去参与新认证。用户手里的旧打印机、旧声卡、旧显卡在新系统上逐渐失去官方驱动然后系统会提示“找不到数字签名”。微软这次没有留下太多折中路径它就是要逼整个生态迁移到受控的签名体系里去。对用户来说最直观的感受就是“老设备越来越难伺候”这个矛盾短期内无解只能靠替代方案缓解。3. 驱动开发者现在该怎么准备3.1 三条签名路径怎么选如果你正在做 Windows 内核驱动或设备驱动的开发新规之下最先要做的是把证书和提交流程理顺。现在驱动签名路径主要有三条WHQL 认证签名、Attestation 签名、开发测试模式下的测试签名。WHQL 认证是门槛最高的路径。驱动要先通过 Windows 硬件兼容性测试再把测试报告和驱动包提交到合作伙伴中心经微软审核后拿到正式签名。这条路径对硬件厂商来说是必选项因为只有 WHQL 认证的驱动才能通过 Windows Update 推送给用户。缺点是流程长、检测项多驱动每次更新都要重新提交一轮。Attestation 签名是给没条件做完整 WHQL 测试的开发团队准备的过渡方案。它不需要提交整台测试机的自动化报告只需要提交驱动包并通过微软远程审核返回的签名在大多数系统版本上都能加载。问题是新规落地后Attestation 的适用范围正在收窄一些开启 HVCI 的设备不再认这种签名。如果你的驱动用户群体涉及安全要求较高的环境建议至少做一次 WHQL 认证。测试签名则完全用于开发阶段。在开发者模式下可以用自签名证书给驱动签名配合系统开启测试签名功能来加载。这个模式只能用于本地调试驱动一旦要发布给外部用户必须走正式签名路径。我见过不少团队直接把测试签名的驱动发给客户客户机器安全启动一开驱动直接加载失败这种坑一定要提前避开。3.2 证书采购和保管的细节EV 代码签名证书的采购和保管有不少坑。买证书时尽量选带 USB Token 或硬件密钥的方案签名私钥不要存放在普通硬盘里。证书一旦泄露不仅你的驱动会被安全软件标记微软审核后台也可能对证书做吊销处理。证书通常一年一签建议在日历上提前三个月设置续费提醒否则临到发布前发现证书过期整个发布计划都会被打乱。证书选择上还要注意一个细节如果公司同时做内核驱动和普通应用程序建议分开申请两张证书。内核驱动签名证书和应用程序签名证书在部分场景下有不同的信任链要求混用容易导致签名验证结果不稳定。各大证书服务商的申请流程大同小异但审核周期通常在几个工作日到两周不等首次申请要预留足够时间。3.3 测试签名模式的正确玩法如果只是在开发机上做兼容性调试需要开启测试签名模式。具体操作路径是Win I 打开设置 → 系统 → 恢复 → 高级启动 → 立即重新启动然后依次选择“疑难解答 → 高级选项 → 启动设置 → 重启”在启动设置页面按数字键 7 进入“禁用驱动程序强制签名”模式。这个模式在 Windows 10 和 Windows 11 上都能用但只对当次启动有效。如果想长期开启测试签名模式方便反复调试可以用管理员权限打开命令行执行bcdedit /set testsigning on重启后系统右上角桌面右下角会出现“测试模式”水印此时自签名证书签名的驱动可以被加载。用完记得关闭bcdedit /set testsigning off需要特别注意测试签名模式和安全启动是互斥的。如果主板开启了 Secure Boot测试签名功能可能无法生效需要在 BIOS 里临时关闭安全启动才能做本地测试。测试完成后一定要把 BIOS 改回默认状态否则后续发行版验证结果无法反映真实用户环境。4. 普通用户遇上驱动签名报错的完整流程4.1 先分清三种典型报错普通人不会主动关注驱动签名但 Windows 报错不会管你懂不懂。最常见的有三种情况第一种是安装到一半弹出“无法验证此驱动程序的发布者”第二种是提示“第三方 INF 不包含数字签名信息”第三种是设备管理器里设备图标带黄色感叹号属性页显示错误代码 52 或 53。第一种情况多半是驱动安装包本身没有通过新规则审核或者签名证书已经被吊销。处理思路不是绕过系统而是回到驱动来源——去硬件品牌官网下载最新版驱动尽量选标注 WHQL 或“已通过微软认证”的版本。很多品牌官网其实已经适配新规则发布了新版驱动只是你下载渠道不对拿到手的还是旧版安装包。第二种 INF 文件报错常见于老设备驱动。Windows 会在安装驱动前检查 INF 里的数字签名信息如果驱动包自带的是很多年前的老签名校验就会失败。这类驱动想继续用要么找厂商更新的版本要么直接用系统自带通用驱动。很多人不知道Windows 对键盘、鼠标、存储设备、部分声卡等外设内置了通用驱动装不上专用驱动时右键设备选择“更新驱动程序 → 自动搜索”很大概率能先让设备恢复基本功能。第三种设备管理器报错代码 52说明系统明确拦截了未签名驱动。如果设备是高价值老硬件确实没有替代驱动可以尝试临时禁用签名强制来确认是否是签名导致的问题但不建议长期这样运行。4.2 临时禁用驱动签名强制的操作步骤临时禁用签名强制的操作路径是Win I 打开设置 → 系统 → 恢复 → 高级启动 → 立即重新启动然后依次选择“疑难解答 → 高级选项 → 启动设置 → 重启”重启后按数字键 7进入“禁用驱动程序强制签名”模式。这个模式只在本次启动生效重启后自动恢复强制校验不影响系统全局策略。网上流传的 Win7 的“永久禁用驱动签名”方法把 bcdedit 那类命令行写进启动配置在 Windows 11 上已经基本行不通。就算你改完能启动只要安全启动开启签名校验一样会挡住未签名驱动。所以我不建议普通用户在正式机器上永久关闭这个保护更不要为了装驱动去动注册表。驱动文件本身如果有问题轻则设备反复崩溃重则整个系统启动不了。4.3 老设备驱动装不上的替代思路老驱动装不进新系统时还有一个能快速确认问题的方法去设备管理器里找到驱动文件属性看“数字签名”标签查看签名者和签名日期。如果签名日期是 2015 年左右大概率不满足新系统的加载条件。此时更合理的做法是找替代方案比如外接声卡、外接网卡几十块钱解决硬件兼容问题这比折腾老系统的安全防线靠谱得多。另外用户可以定期检查 Windows 安全中心里“设备安全性”下的“内核隔离”状态。Windows 11 默认可能开启内存完整性导致部分旧驱动被拦。如果驱动确实非常重要、厂商又迟迟没有适配可以先临时关闭内存完整性来恢复设备使用但这个只能作为应急方案不建议长期关闭。等厂商发布经过 HVCI 兼容性验证的新驱动后再重新开启。5. 常见问题排查与避坑经验5.1 驱动签名错误速查表我把这段时间在测试机和服务环境里反复遇到的驱动签名问题整理成一个速查表方便直接对照。现象/错误提示大概率原因优先处理方式“第三方 INF 不包含数字签名信息”驱动安装包太老签名已不被信任换官网最新版或改用系统通用驱动“无法验证此驱动程序的发布者”驱动未通过新版认证或证书被吊销重新下载新版本核对签名链设备管理器错误代码 52未签名驱动被拦截临时禁用签名强制做测试确认后换正式签名驱动设备管理器错误代码 53驱动数字签名验证失败尝试兼容模式安装或联系厂商更新开启内存完整性后驱动失效驱动不兼容 HVCI优先找厂商更新临时关闭 HVCI 只能应急5.2 两条实用排查命令排查驱动签名问题时有两把工具很实用。第一个是 PowerShell 里的 Get-AuthenticodeSignature可以查看驱动文件的签名详情Get-AuthenticodeSignature C:\Windows\System32\drivers\你的驱动文件名.sys输出里会显示签名状态、证书颁发者等关键信息。如果状态是 Valid说明签名本身没问题如果显示 HashMismatch说明文件内容已经被改动或损坏。第二个是系统自带的 sigverif。在运行框输入 sigverif 回车就能扫描系统驱动签名状态。如果跑完发现大量无效签名问题往往不在单个驱动而是系统签名根证书已经出状况此时优先检查系统更新是否中断。另外事件查看器里也有专门记录驱动加载失败的通道路径是“Windows 日志 → 系统”筛选来源为“Kernel-PnP”或“CodeIntegrity”能看到详细的拦截原因。5.3 几个容易忽略的细节实际踩坑过程中有几个细节特别值得提。第一有些驱动安装包在下载时被浏览器标明“不受信任”但文件签名本身是好的。这种问题多半是服务器续期证书不完整或下载过程被安全软件拦截导致文件被修改。建议重新下载后用哈希校验工具核对文件再安装。第二Windows 高级启动里的“禁用驱动签名强制”选项很多人以为和 Win7 的永久禁用一样其实它只对当次启动有效。用它安装驱动没问题但下次重启后签名强制又会生效如果驱动后续要更新或者重装还需要再走一次这个流程。第三驱动签名规则更新后如果旧驱动包在设备管理器里显示“已签名”但安装后设备无法启动不要反复试装。正确做法是先卸载设备驱动再用“扫描检测硬件改动”重新识别通常能触发内置通用驱动至少保证设备可用。还有一件事容易被忽略企业环境批量部署驱动时如果使用 P2P 更新或镜像部署工具一定要确认部署过程不会篡改驱动文件。有些精简优化工具在压缩系统镜像时会剥离数字签名导致原本正常的驱动安装后报签名错误。这类问题排查起来效率极低却经常发生。6. 几个折腾下来的真实体会6.1 对开发者生态的观察这些规则对行业的影响会慢慢显现。我自己的体会是做驱动开发以后不能再把“签名”当成发布前最后一步来准备而要当成产品设计的一部分。证书、提交流程、兼容性测试周期都要提前排进项目计划否则极大概率会卡在发布前两周。整个驱动生态会集中到正规厂商手里小团队想靠“签名证书 一份安装包”打天下的时代已经过去了。6.2 给普通用户的两点建议对普通用户我的建议是别太依赖网上那些“关闭驱动签名保护”的教程。我遇到过不少用户为了装破解驱动的老版本而关闭系统签名检查结果系统被安全补丁更新搞得崩溃或者在运行第三方小工具时被改了配置。驱动是操作系统底层的东西防的就是有人在内核里做手脚。如果随意关掉这层校验等于把大门钥匙交给陌生的代码风险远大于解决一个驱动报错带来的价值。最后分享一个我自己一直在用的习惯每台常用电脑上准备一个单独的驱动备份目录每次安装驱动前先记录设备管理器里的硬件 ID 和当前驱动版本再把旧安装包保留一份。新规则下驱动更新不一定能顺利回滚这个习惯可以让你在驱动出问题时快速还原到能用的状态。目前我自己测试机上的几个老外设就是靠这套方法稳定跑着以后如果微软继续调整规则我还会再更新这些实战细节。

相关新闻

用分布式思维编排AI编程任务:多会话并行提升产出效率

用分布式思维编排AI编程任务:多会话并行提升产出效率

你在终端里敲下一条指令,给Claude Code或者Codex描述了一个听起来不算复杂的需求,然后看着它吭哧吭哧干了十几分钟,最后发现它不仅绕了一大圈,还把不该碰的文件也改了,甚至中途停下来问你一个五分钟前已经回答过的问题…

2026/10/5 3:02:49 阅读更多 →
十字斜入十字识别与决策:从图像特征到状态机控制

十字斜入十字识别与决策:从图像特征到状态机控制

如果你正在做摄像头组的智能车,大概率会对“十字”这个元素印象深刻。它不像环岛或者坡道那样需要一套复杂的绕行动作,但恰恰因为它看起来简单,翻车的队伍一点都不少。尤其是“斜入十字”,也就是车身从侧向以一个夹角冲进十字区域…

2026/10/5 3:02:49 阅读更多 →
高性能序列化库选型与优化实战:从JSON到Protobuf、FlatBuffers

高性能序列化库选型与优化实战:从JSON到Protobuf、FlatBuffers

序列化库是每个后端工程师都躲不开的组件。最近因为一个支付系统的数据同步模块遇到性能瓶颈,我把手头的高性能序列化库整个折腾了一遍,从选型对比到落地优化踩了不少坑,今天把这些经验整理出来。这篇文章适合正在做微服务通信、消息队列、缓…

2026/10/5 3:02:49 阅读更多 →

最新新闻

吃豆人AI实战:Minimax、Alpha-Beta剪枝与Expectimax完整解析

吃豆人AI实战:Minimax、Alpha-Beta剪枝与Expectimax完整解析

如果你刷过伯克利CS61B,或者看过AI入门视频,大概率见过那只黄色吃豆人在迷宫里被鬼追得满地图跑的画面。那个场景十有八九就来自CS188的Project 2: Multi-Agents。这个项目是所有CS188课程作业里最有“游戏感”的一个,任务很直接——亲手写出…

2026/10/5 3:52:15 阅读更多 →
构建真正开放的跨平台Shell工作流

构建真正开放的跨平台Shell工作流

1. OpenShell:一个被严重误读的开源项目名称,以及它真实的技术定位OpenShell 这个名字一出来,很多人第一反应是“Windows 的替代开始菜单”——没错,确实存在一个叫 Open-Shell 的经典开源项目,它基于已停更的 Classic…

2026/10/5 3:52:15 阅读更多 →
C/C++源字符集与执行字符集:乱码根源与配置指南

C/C++源字符集与执行字符集:乱码根源与配置指南

如果你写过C/C程序,大概率遇到过这种事:代码在编辑器里显示得清清楚楚,注释里的中文也一切正常,可一旦编译运行,printf打印出来的中文字符串就变成了一堆“鏂囧瓧”之类的天书。还有更诡异的,同一份源码在L…

2026/10/5 3:52:15 阅读更多 →
插件原理与排障指南:从加载失败到开发实践

插件原理与排障指南:从加载失败到开发实践

做软件这些年,我发现自己经常要在一个单词上跟别人反复解释:plugins。它不是某个产品的功能,而是一整套架构思想加工程实践。最近看到一堆相关热搜,比如“iar plugins 是干什么的”、“failed to load plugins web boot: 2 entrie…

2026/10/5 3:52:15 阅读更多 →
Petalinux工程骨架详解:从XSA到BOOT.BIN的嵌入式Linux构建

Petalinux工程骨架详解:从XSA到BOOT.BIN的嵌入式Linux构建

1. 先把 petalinux 工程骨架这块拼图摆正如果你刚接触 Zynq 这类带 FPGA 的嵌入式平台,想用 petalinux 给板卡做一套 Linux 系统,第一反应大概率是找一份教程,敲几条命令,生成 BOOT.BIN,烧进 SD 卡,完事。我…

2026/10/5 3:52:14 阅读更多 →
Java仓库管理系统课设拆解:JDBC+MySQL+Swing实战开发

Java仓库管理系统课设拆解:JDBC+MySQL+Swing实战开发

简介:基于Java的仓库管理系统项目,是一份面向计算机相关专业学生和Java Web开发者的毕业设计完整参考。项目运用Spring框架、MyBatis持久层、Servlet与JSP等主流技术,实现了用户注册登录、商品信息维护、库存出入管理、价格设置等核心业务&am…

2026/10/5 3:51:14 阅读更多 →

日新闻

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

马斯克杀回智能体战场,Grok 4.5万亿参数撑腰,Cursor接手数字白领项目:用TaoToken统一Key跑通多模型Agent工作流

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:22 阅读更多 →
AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

AI编程工具插件机制详解:plugin.json配置与加载失败排查指南

1. 从“plugins”这个词说起:它到底在解决什么问题如果你最近在折腾 AI 编程工具,尤其是 Cursor、Codex CLI、Claude Code 这类带 CLI 的编辑器或命令行助手,那你大概率绕不开一个词——plugins。这个词本身不新鲜,从浏览器到 IDE…

2026/10/5 0:00:23 阅读更多 →
第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

第26课:OpenClaw|日志审计与问题诊断:把日志链路改到 TaoToken 的排查清单

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 0:00:23 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 1:10:22 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/5 3:06:17 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 20:14:29 阅读更多 →