提前启动反恶意软件测试的先决条件

本部分介绍在使用 Windows Hardware Lab Kit (Windows HLK) 测试预先启动反恶意软件 (ELAM) 驱动程序之前必须完成的任务:

ELAM 软件功能提供一种 Microsoft 支持的机制,可让反恶意软件在所有其他第三方组件之前启动。 系统首先初始化反恶意软件驱动程序,并允许这些驱动程序控制启动驱动程序的初始化,使系统不会初始化未知的启动驱动程序。 在启动过程初始化启动驱动程序并且可以有效地访问永久性存储之后,现有反恶意软件可能会继续阻止恶意软件执行。

有关详细信息,请参阅固件和启动环境

硬件要求

此测试需要以下硬件:

  • 两台测试计算机。 这些测试计算机必须满足 Windows HLK 先决条件,并且必须包含在同一计算机池中。 有关详细信息,请参阅 Windows HLK 先决条件

注意

要认证产品可在服务器上使用,测试计算机必须支持四个处理器且具有至少 1 GB RAM。 测试设备和驱动程序的再平衡、D3 状态和多处理器组功能需要这些系统功能。 不需要使用实际具有超过 64 个处理器的计算机来测试设备。 此外,在测试之前,用于设备或驱动器测试的服务器系统必须已安装服务器核心。 有关详细信息,请参阅 Windows Server 安装选项

如果使用测试计算机池来测试产品,池中至少有一台计算机必须包含四个处理器和至少 1 GB RAM。 此外,该计算机必须包含要测试的产品。 如果驱动程序在池中的所有计算机上都相同,则系统会创建一个计划,以针对所有测试计算机运行。

对于不包含要测试的驱动程序的测试(例如硬盘驱动器测试),Windows HLK 计划程序会将用于验证设备和驱动程序的再平衡、D3 状态和多处理器组功能的测试限制为在默认测试计算机上运行。 必须手动将这台计算机配置为具有多个处理器组。 默认计算机是列表中的第一台测试计算机。 测试人员必须确保列表中的第一台测试计算机满足最低硬件要求。

注意

测试物理设备及其关联的驱动程序以进行服务器认证或签名时,不得使用任意形式的虚拟化,但半虚拟化驱动程序(如 WHCP 策略和进程文档所定义)除外。 所有虚拟化产品都不支持需要通过与多处理器组、设备电源管理、设备 PCI 功能相关的测试及其他测试的基础功能。

注意

多处理器组设置。必须为用于认证的 Windows Server 2008 R2 及更高版本设备驱动程序的 Hardware Lab Kit 测试设置处理器组大小的值。 这可通过使用 /set 选项在提升的命令提示符窗口中运行 bcdedit 来完成。

用于添加组设置和重启的命令如下所示:

bcdedit.exe /set groupsize 2
bcdedit.exe /set groupaware on
shutdown.exe -r -t 0 -f

用于删除组设置和重启的命令如下所示:

bcdedit.exe /deletevalue groupsize
bcdedit.exe /deletevalue groupaware
shutdown.exe -r -t 0 -f

注意

代码完整性设置

必须先使用服务器管理器启用 Windows Server 2016 的基于虚拟化的安全性 (VBS) 功能。

启用该功能后,必须创建并设置以下注册表项:

HKLM\System\CurrentControlSet\Control\DeviceGuard
HypervisorEnforcedCodeIntegrity:REG_DWORD
0 or 1 (disabled, enabled)

软件要求

此测试需要以下软件:

  • 要测试的驱动程序。

    警告

    在安装 Windows HLK 客户端之前,确保已在测试计算机上安装该产品。

  • 最新的 Windows HLK 筛选器或更新。

测试计算机配置

如果要测试未签名的内核模式驱动程序,请选择以下选项之一:

  • 附加内核调试器。 在这种情况下,系统不会验证或实施驱动程序签名。 因此,即使驱动程序没有经过验证的证书或驱动程序未签名,也可以进行加载。

  • 使用 makecert.exe 文件创建自签名证书。 证书必须包含 1.3.6.1.5.5.7.3.3(代码签名)和 1.3.6.1.4.1.311.61.4.1(预先启动)EKU。 然后,禁用安全启动(如果已启用)或启用安全启动调试,并使用 bcdedit /set testsigning on 命令将计算机置于测试模式。 测试模式是指系统验证签名并验证 EKU,但不验证证书链。

在开始测试之前,请确保测试计算机已就绪。 如果测试要求在运行测试之前设置参数,则会为该测试显示一个对话框。 有关详细信息,请查看特定测试主题。

某些 Windows HLK 测试需要用户干预。 为提交运行测试时,最佳做法是在块中独立于手动测试运行自动测试。 这可以防止手动测试中断自动测试的完成。