从 Windows Vista 开始,内核模式代码签名策略控制是否将加载内核模式驱动程序。 签名要求取决于 Windows 操作系统的版本,以及驱动程序是为公共发布签名,还是在开发团队进行驱动程序开发和测试期间签名。 还有与安装 PnP 设备和驱动程序相关的 签名要求 。
虚拟驱动程序的要求与实际硬件驱动程序相同。 换句话说,这些软件必须符合其目标操作系统版本的要求。
有关签名和提交仪表板的信息,请参阅 仪表板提交指南。
Kernel-Mode 驱动程序公开发布的代码签名要求
从 Windows Vista 开始的 64 位版本的 Windows
内核模式代码签名策略要求按如下所示对内核模式驱动程序进行签名:
内核模式启动驱动程序必须具有嵌入式 软件发布者证书(SPC) 签名。 这适用于任何类型的 PnP 或非 PnP 内核模式启动驱动程序。
不是启动启动驱动程序的非 PnP 内核模式驱动程序必须具有具有 SPC 签名的 目录文件 ,或者驱动程序文件必须包含嵌入的 SPC 签名。
不是启动启动驱动程序的 PnP 内核模式驱动程序必须具有嵌入式 SPC 签名、具有 WHQL 发布签名的目录文件或具有 SPC 签名的目录文件。 尽管内核模式代码签名策略不需要对 PnP 驱动程序的目录文件进行签名,但仅当驱动程序的目录文件也签名时,PnP 设备安装才会将驱动程序视为已签名。
32 位版本的 Windows
Windows Vista 和更高版本的 Windows 仅针对以下驱动程序强制实施内核模式驱动程序签名策略:
流式传输受保护媒体的驱动程序。 有关这些要求的详细信息,请参阅 受保护媒体组件的代码签名(Windows Vista 和更高版本)
内核模式 启动驱动程序。
开发和测试期间的 Kernel-Mode 代码签名要求
从 Windows Vista 开始的 64 位版本的 Windows
内核模式代码签名策略要求对内核模式驱动程序进行 测试签名 并 启用测试签名。 测试签名可以是 WHQL 测试签名 ,也可以由 测试证书内部生成。 驱动程序必须经过测试签名,如下所示:
内核模式 启动驱动程序 必须具有嵌入式测试签名。 这适用于任何类型的 PnP 或非 PnP 内核模式驱动程序。
不是 启动驱动程序 的内核模式驱动程序必须具有一个测试签名的 目录文件,或者驱动程序文件必须包含嵌入式测试签名。 这适用于任何类型的 PnP 或非 PnP 内核模式驱动程序。
32 位版本的 Windows
Windows Vista 和更高版本的 Windows 仅针对以下驱动程序强制实施内核模式驱动程序签名策略:
流式传输受保护媒体的驱动程序。 有关这些要求的详细信息,请参阅 受保护媒体组件的代码签名(Windows Vista 和更高版本)
内核模式 启动时加载的驱动程序。