Test-Signing 驱动程序包

在本节中,对 Windows Vista 和更高版本的 Windows 上发布的驱动程序进行测试签名的计算机称为签名计算机。 签名计算机必须运行 Windows XP SP2 或更高版本的 Windows。 例如,适用于在 Windows 7 上发布的驱动程序可以在运行 Windows Vista 的计算机上进行签名。

若要使用 驱动程序签名工具,签名计算机必须安装 Windows Vista 和更高版本的 WDK。

注意 必须使用 Windows Vista 和更高版本的 Windows 驱动程序工具包(WDK)中提供的 SignTool 工具的版本。 早期版本的 SignTool 不支持 Windows Vista 和更高版本的 Windows 内核模式代码签名策略。

若要符合 内核模式代码签名策略 以及 Windows Vista 及更高版本的 Windows 即插即用(PnP)设备安装签名要求,必须在该驱动程序的开发和测试过程中对驱动程序进行签名。 你可以根据驱动程序类型在签名计算机上对驱动程序进行签名,如下所示。

注意事项 Windows 代码签名策略要求在系统组件和驱动程序数据库中安装一个 驱动程序包的已签名 目录文件。 PnP 设备安装会自动在驱动程序数据库中安装 PnP 驱动程序的目录文件。 但是,如果使用已签名的目录文件对非 PnP 驱动程序进行签名,则安装驱动程序的安装应用程序还必须在驱动程序数据库中安装目录文件。

PnP 内核模式启动驱动程序

若要符合 64 位版本的 Windows Vista 和更高版本的 Windows 的内核模式代码签名策略,请 启动驱动程序 文件中嵌入签名,如下所示:

  1. 对驱动程序文件进行测试签名。

  2. 验证已进行测试签名的驱动程序文件的签名

从 Windows Vista 开始,在 启动驱动程序 文件中嵌入签名对于 32 位版本的 Windows 是可选的。 尽管 Windows 将检查内核模式驱动程序文件是否具有嵌入式签名,但不需要嵌入签名。

若要符合 Windows Vista 及更高版本的 Windows PnP 设备安装签名要求,还必须对驱动程序包目录文件进行测试签名。 如果驱动程序文件还将包含嵌入的签名,请在对驱动程序包的目录文件进行签名之前将签名嵌入驱动程序文件中。

可以提交请求,让 Windows 硬件质量实验室 (WHQL) 测试对目录文件进行签名。 或者,可以使用测试证书自行对目录文件进行测试签名,如下所示:

  1. 创建目录文件

  2. 对目录文件进行测试签名

  3. 验证已进行测试签名的目录文件的签名

    可以验证目录文件本身的签名或目录文件中具有相应条目的单个文件的签名。

非 PnP 内核模式启动驱动程序

若要符合 64 位版本的 Windows Vista 和更高版本的 Windows 的内核模式代码签名策略,请 启动驱动程序 文件中嵌入签名,如下所示:

  1. 对驱动程序文件进行测试签名。

  2. 验证已进行测试签名的驱动程序文件的签名

从 Windows Vista 开始,在 启动驱动程序 文件中嵌入签名对于 32 位版本的 Windows 是可选的。 尽管 Windows 将检查内核模式驱动程序文件是否具有嵌入式签名,但不需要嵌入签名。

PnP 设备安装签名要求 不适用于非 PnP 驱动程序。

PnP 内核模式驱动程序不是启动驱动程序

64 位版本的 Windows Vista 和更高版本的 Windows 上的内核模式代码签名策略不需要非启动 PnP 驱动程序具有嵌入式签名。 但是,如果驱动程序文件将包含嵌入的签名,请在对 驱动程序包的目录文件进行签名之前,将签名嵌入驱动程序文件中。

对于不是 启动驱动程序的 PnP 内核模式驱动程序,对驱动程序包的目录文件进行签名符合 64 位版本的 Windows Vista 和更高版本的 Windows 上的内核模式代码签名策略,以及所有 Windows Vista 及更高版本的 PnP 设备安装签名要求。

可以提交请求,请 Windows 硬件质量实验室 (WHQL) 对目录文件进行测试签名。 或者,您可以使用测试证书自行测试签名目录文件,方法与本节中用于测试签名 PnP 内核模式启动驱动程序 的目录文件的过程相同。

非 PnP 内核模式驱动程序不是启动驱动程序

若要符合 64 位版本的 Windows Vista 和更高版本的 Windows 的内核模式代码签名策略,请嵌入驱动程序文件中的签名或 驱动程序包的目录文件签名。

从 Windows Vista 开始,在驱动程序文件中嵌入签名对于 32 位版本的 Windows 是可选的。 尽管 Windows 将检查内核模式驱动程序文件是否具有嵌入式签名,但不需要嵌入签名。

PnP 设备安装签名要求不适用于非 PnP 驱动程序。

注释 使用嵌入签名通常比使用签名目录文件更简单、更高效。 有关使用嵌入式签名与签名目录文件的优点和缺点的详细信息,请参阅 测试签名简介。

在非 PnP 内核模式驱动程序(不是启动驱动程序)的文件中嵌入测试签名

  1. 对驱动程序文件进行测试签名

  2. 验证已进行测试签名的驱动程序文件的签名

为非 PnP 内核模式驱动程序(不是启动驱动程序)对目录文件进行测试签名

  1. 为非 PnP 驱动程序创建目录文件。

  2. 对目录文件进行测试签名

  3. 验证已进行测试签名的目录文件的签名