驱动程序验证程序命令语法
在命令提示符窗口中运行验证程序实用工具时,使用以下语法。
可以在同一行中键入多个选项。 例如:
verifier /flags 7 /driver beep.sys disksdd.sys
Windows 11 语法
可以将 /volatile 参数与某些驱动程序验证程序 /flags 选项一起使用。 有关详细信息,请参阅 “使用易失性设置”。
注意
将来版本的 Windows 中将弃用 /volatile 参数。 在 Windows 11 中,替换选项是 /dif DifEnabledRule /now 选项。 有关可以使用此选项启用的规则类,请参阅下面的 Windows 11 规则类部分。
verifier /standard /all
verifier /standard /driver NAME [NAME ...]
verifier {/ruleclasses | /rc | dif} <options> [<ruleclass_1> <ruleclass_2> ...] /all
verifier {/ruleclasses | /rc | dif} <options> [<ruleclass_1> <ruleclass_2> ...] /driver NAME [NAME ...]
verifier /flags <options> /all
verifier /flags <options> /driver NAME [NAME ...]
verifier /rules [OPTION ...]
verifier /dif [<ruleclass_1> <ruleclass_2> ...] /now /driver NAME [NAME ...]
verifier /query
verifier /querysettings
verifier /bootmode [persistent | resetonbootfail | resetonunusualshutdown | oneboot]
verifier /bc <number_of_reboots>
verifier /reset
verifier /faults [Probability] [PoolTags] [Applications] [DelayMins]
verifier /faultssystematic [OPTION ...]
verifier /log LOG_FILE_NAME [/interval SECONDS]
verifier /volatile /flags <options>
verifier /volatile /adddriver NAME [NAME ...]
verifier /volatile /removedriver NAME [NAME ...]
verifier /volatile /faults [Probability] [PoolTags] [Applications] [DelayMins]
verifier /domain <types> <options> /driver ... [/logging | /livedump]
verifier /logging
verifier /livedump
verifier /?
verifier /help
Windows 10 语法
可以将 /volatile 参数与某些驱动程序验证程序 /flags 选项和 /standard 配合使用。 不能将 /volatile 与用于 DDI 符合性检查、Power Framework 延迟模糊或 Storport 验证的 /flags 选项一起使用。 有关详细信息,请参阅 “使用易失性设置”。
verifier /standard /all
verifier /standard /driver NAME [NAME ...]
verifier {/ruleclasses | /rc} <options> [<ruleclass_1> <ruleclass_2> ...] /all
verifier /flags <options> /all
verifier /flags <options> /driver NAME [NAME ...]
verifier /rules [OPTION ...]
verifier /query
verifier /querysettings
verifier /bootmode [persistent | resetonbootfail | resetonunusualshutdown | oneboot]
verifier /reset
verifier /faults [Probability] [PoolTags] [Applications] [DelayMins]
verifier /faultssystematic [OPTION ...]
verifier /log LOG_FILE_NAME [/interval SECONDS]
verifier /volatile /flags <options>
verifier /volatile /adddriver NAME [NAME ...]
verifier /volatile /removedriver NAME [NAME ...]
verifier /volatile /faults [Probability] [PoolTags] [Applications] [DelayMins]
verifier /domain <types> <options> /driver ... [/logging | /livedump]
verifier /logging
verifier /livedump
verifier /?
verifier /help
Windows 8.1 语法
可以将 /volatile 参数与某些驱动程序验证程序 /flags 选项和 /standard 配合使用。 不能将 /volatile 与用于 DDI 符合性检查、Power Framework 延迟模糊、Storport 验证的 /flags 选项一起使用。 有关详细信息,请参阅 “使用易失性设置”。
verifier /standard /all
verifier /standard /driver NAME [NAME ...]
verifier /flags <options> /all
verifier /flags <options> /driver NAME [NAME ...]
verifier /rules [OPTION ...]
verifier /faults [Probability] [PoolTags] [Applications] [DelayMins]
verifier /faultssystematic [OPTION ...]
verifier /log LOG_FILE_NAME [/interval SECONDS]
verifier /query
verifier /querysettings
verifier /bootmode [persistent | disableafterfail | oneboot]
verifier /reset
verifier /volatile /flags <options>
verifier /volatile /adddriver NAME [NAME ...]
verifier /volatile /removedriver NAME [NAME ...]
verifier /volatile /faults [Probability] [PoolTags] [Applications] [DelayMins]
verifier /?
Windows 8、Windows 7 语法
可以将 /volatile 参数与某些驱动程序验证程序 /flags 选项和 /standard 配合使用。 不能将 /volatile 与 /flags 选项一起使用,以便进行 DDI 符合性检查、 Power Framework 延迟模糊处理、Storport 验证、 SCSI 验证或 /disk。 有关详细信息,请参阅 “使用易失性设置”。
verifier [/volatile] [/standard | /flags Options ] [ /all | /driver DriverList ]
verifier /volatile /faults [Probability PoolTags Applications DelayMins] /driver DriverList
verifier /volatile {/adddriver | /removedriver} DriverList
verifier /reset
verifier /querysettings
verifier /query
verifier /log LogFileName [/interval Seconds]
verifier /?
参数
验证程序命令行语法
/all 指示驱动程序验证程序在下一次启动后验证所有已安装的驱动程序。
/bc <number_of_reboots> 设置验证应处于活动状态的重新启动次数。
此选项自动设置 ResetOnUnusualShutdown 启动模式。
/bootmode 模式 控制是否在重新启动后启用驱动程序验证程序的设置。 若要设置或更改此选项,必须重启计算机。
Bootmode | 说明 |
---|---|
持续 |
确保驱动程序验证程序设置在多次重新启动期间保持(有效)。 这是默认设置。 |
resetonbootfail |
如果系统无法启动,则禁用驱动程序验证程序进行后续重启。 |
oneboot |
仅在计算机下次启动时启用驱动程序验证程序设置。 驱动程序验证程序在后续重新启动时处于禁用状态。 |
resetonunusualshutdown |
(Windows 10 内部版本 1709 中引入)驱动程序验证程序将一直持续到发生异常关闭。 可以使用其缩写“rous”。 |
/dif DifEnabledRule 使用已启用 DIF 的规则启用检查。 下次重新启动系统时,检查将生效。 在 Windows 11 中添加。
/dif DifEnabledRule /now 立即使用已启用 DIF 的规则启用检查。 立即启用规则类,而无需重新启动。 仅当尚未运行任何规则类时,此选项才有效。 有关能够立即激活的规则类,请参阅 Windows 11 规则类说明。
/driver DriverList 指定要验证的一个或多个驱动程序。 DriverList 是按二进制名称列出的驱动程序列表,例如Driver.sys。 使用空格分隔每个驱动程序名称。 不支持通配符值,例如 n*.sys。
/driver.exclude DriverList 指定要从验证中排除的一个或多个驱动程序。 仅当选择验证所有驱动程序时,此参数才适用。 DriverList 是按二进制名称列出的驱动程序列表,例如Driver.sys。 使用空格分隔每个驱动程序名称。 不支持通配符值,例如 n*.sys。
/faults 启用驱动程序验证程序中的低资源模拟功能。 可以使用 /faults 代替 /flags 0x4。 但是,不能对 /faults 子参数使用 /flags 0x4。
可以使用 /faults 参数的以下子参数来配置低资源模拟。
子参数 | 说明 |
---|---|
概率 |
指定驱动程序验证程序将失败给定分配的概率。 键入数字(以十进制或十六进制为单位),以表示驱动程序验证程序将失败分配的 10,000 次机会数。 默认值 600 表示 600/10000,即 6%。 |
池标记 |
限制驱动程序验证程序无法使用指定池标记进行分配的分配。 可以使用通配符 (*) 来表示多个池标记。 若要列出多个池标记,请用空格分隔标记。 默认情况下,所有分配都可能失败。 |
应用程序 |
限制驱动程序验证程序无法为指定程序分配的分配。 键入可执行文件的名称。 若要列出程序,请用空格分隔程序名称。 默认情况下,所有分配都可能失败。 |
DelayMins |
指定启动后的分钟数,在此期间驱动程序验证程序不会有意失败任何分配。 在测试开始之前,可以在这段此延迟时间内加载驱动程序并稳定系统。 输入一个数字(十进制或十六进制)。 默认值为 7(分钟)。 |
/faultssystematic 指定系统低资源模拟的选项。 使用0x40000标志选择系统较低的资源模拟选项。
OPTION | 说明 |
---|---|
enableboottime |
在计算机重新启动时启用故障注入。 |
disableboottime |
在计算机重新启动时禁用错误注入(这是默认设置)。 |
recordboottime |
在计算机重启模式时启用故障注入。 |
resetboottime |
在计算机重新启动时禁用错误注入,并清除堆栈排除列表。 |
enableruntime |
动态启用故障注入。 |
disableruntime |
动态禁用故障注入。 |
recordruntime |
在模式下动态启用故障注入。 |
resetruntime |
动态禁用故障注入并清除以前出错的堆栈列表。 |
querystatistics |
显示当前的故障注入统计信息。 |
incrementcounter |
递增用于确定何时注入错误的测试传递计数器。 |
getstackid COUNTER |
检索指示的注入堆栈标识符。 |
excludestack STACKID |
从故障注入中排除堆栈。 |
/flags 选项 在下一次重新启动后激活指定的选项。 此数字可以采用十进制或十六进制(带 0x 前缀)格式输入。 允许以下值的任意组合。
Decimal | 十六进制 | 标准设置 | 选项 |
---|---|---|---|
1 |
0x1 (位 0) |
X |
|
2 |
0x2 (位 1) |
X |
|
4 |
0x4 (位 2) |
||
8 |
0x8 (位 3) |
X |
|
16 |
0x10 (位 4) |
X |
|
32 |
0x20 (位 5) |
X |
|
64 |
0x40 (位 6) |
在选择“I/O 验证 ”时,此选项会自动激活 |
|
128 |
0x80 (位 7) |
X |
|
256 |
0x100 (位 8) |
X |
|
512 |
0x200 (位 9) |
||
1024 |
0x400 (位 10) |
||
2048 |
0x800 (位 11) |
X |
|
8192 |
0x2000 (位 13) |
堆栈的 固定 MDL 检查(从 Windows 8 开始) |
|
16384 |
0x4000 (位 14) |
驱动程序 的固定 MDL 检查(从 Windows 8 开始) |
|
32768 |
0x8000 (位 15) |
Power Framework 延迟模糊( 从 Windows 8 开始) (在 Windows 10 内部版本 19042 及更高版本中弃用) |
|
65536 |
0x10000 (位 16) |
端口/微型端口接口检查(从 Windows 10 开始) |
|
131072 |
0x20000 (位 17) |
X |
DDI 符合性检查 (从 Windows 8 开始) |
262144 |
0x40000 (位 18) |
系统较低的资源模拟 (从 Windows 8.1 开始) (在 Windows 10 内部版本 19042 及更高版本中弃用) |
|
524288 |
0x80000 (位 19) |
DDI 符合性检查(其他) (从 Windows 8.1 开始) (在 Windows 10 内部版本 19042 及更高版本中弃用) |
|
2097152 |
0x200000 (位 21) |
NDIS/WIFI 验证 (从 Windows 8.1 开始) |
|
8388608 |
0x800000 (位 23) |
内核同步延迟模糊( 从 Windows 8.1 开始) (在 Windows 10 内部版本 19042 及更高版本中弃用) |
|
16777216 |
0x1000000 (位 24) |
VM 切换验证 (从 Windows 8.1 开始) |
|
33554432 |
0x2000000 (位 25) |
代码完整性检查 (从 Windows 10 开始) |
不能使用此方法激活 Storport 验证选项。 有关信息,请参阅 Storport 验证。
/flags VolatileOptions 指定在不重新启动的情况下立即更改的驱动程序验证程序选项。
可以将 /volatile 参数与所有 /flags 值一起使用。
以十进制或十六进制格式输入数字(带 0x 前缀)。
允许以下值的任意组合。
十六进制 | 选项 |
---|---|
0x00000004 (位 2) |
随机化低资源模拟 |
0x00000020 (位 5) |
死锁检测 |
0x00000080 (位 7) |
DMA 检查 |
0x00000200 (位 9) |
强制挂起 I/O 请求 |
0x00000400 (位 10) |
IRP 日志记录 |
/ruleclasses 或 /rc< ruleclass_1><ruleclass_2 ... <>ruleclass_k>
规则类参数从 Windows 版本 1803 开始可用。
ruleclasses 参数包含一组比 上述 /flags 参数更大的验证类集。 虽然 /flags 限制为 32 位位位图表达式,但此选项可以包含 32 个以上的验证类。 每个正十进制整数表示验证类。 可以通过用空格字符分隔每个类 ID 来表示多个类。 以下规则类 ID 可用。
标准规则类
值 | 规则 |
---|---|
1 | 特殊池 |
2 | 强制 IRQL 检查 |
4 | 池跟踪 |
5 | I/O 验证 |
6 | 死锁检测 |
8 | DMA 检查 |
9 | 安全检查 |
12 | 其他检查 |
18 | DDI 合规性检查 |
34 | WDF 验证 |
37 | 文件系统筛选器验证 (5) |
其他规则类
这些规则类适用于特定方案测试。 标记为 (*)
需要 I/O 验证(5)的规则类,并自动启用它。 标记为 (**)
支持禁用单个规则的规则类。 标记 (***)
的规则类默认处于日志记录模式,需要 /onecheck 才能在冲突时崩溃。
标记的 (!)
标志需要 DIF 模式(规则类 36)才能启用。
值 | 规则 |
---|---|
3 | 随机化低资源模拟 |
10 | 强制挂起的 I/O 请求 \ |
11 | IRP 日志记录 \ |
14 | 堆栈的固定 MDL 检查 |
15 | 驱动程序的固定 MDL 检查 |
16 | Power Framework 延迟模糊处理 |
17 | 端口/微型端口接口检查 |
19 | 系统性资源不足模拟 |
20 | DDI 符合性检查(其他) |
22 | NDIS/WIFI 验证(**) |
24 | 内核同步延迟模糊处理 |
25 | VM 交换机验证 |
26 | 代码完整性检查 |
33 | 驱动程序隔离检查 (***, !) |
36 | DIF 模式 |
Windows 11 规则类
从 Windows 11 开始,可以使用以下标准规则类。 使用 /standard 选项时,将启用这些规则类。
/now 列指示可以使用 /dif DifEnabledRule /now 选项在不重新启动的情况下启用哪些规则类。
标准规则类
值 | 规则 | /现在 |
---|---|---|
1 | 特殊池 | 是 |
2 | 强制 IRQL 检查 | 是 |
4 | 池跟踪 | 是 |
5 | I/O 验证 | 是 |
6 | 死锁检测 | 否 |
8 | DMA 检查 | 否 |
9 | 安全检查 | 是 |
12 | 其他检查 | 是 |
18 | DDI 合规性检查 | 是 |
34 | WDF 验证 | 否 |
37 | 文件系统筛选器验证 | 否 |
请注意,规则类 37(文件系统筛选器验证)要求也启用规则类 5(I/O 验证)。 有关此规则类的详细信息,请参阅 文件系统筛选器验证 。
其他规则类
以下其他规则类可用。
- /now 列指示可以使用 /dif DifEnabledRule /now 选项在不重新启动的情况下启用哪些规则类。
- “ 规则类必需 ”列指示还必须启用哪些规则类才能使用给定的规则类。 请注意,/dif 命令自动包括规则类 36 (DIF 模式),但 /ruleclass 和 /rc 不。
- 标记为
(**)
支持禁用单个规则的规则类。 - 标记的规则类
(***)
默认处于日志记录模式,并要求 /onecheck 选项在冲突时崩溃。
值 | 规则 | /现在 | 所需的规则类 |
---|---|---|---|
3 | 随机化低资源模拟 | 否 | 无 |
10 | 强制挂起 I/O 请求 | 否 | 5 |
11 | IRP 日志记录 | 否 | 5 |
14 | 堆栈的固定 MDL 检查 | 否 | 5 |
15 | 驱动程序的固定 MDL 检查 | 否 | 5 |
16 | Power Framework 延迟模糊处理 | 否 | 无 |
17 | 端口/微型端口接口检查 | 否 | 无 |
19 | 系统性资源不足模拟 | 是 | 36 |
20 | DDI 符合性检查 - 其他 | 是 | 无 |
22 | NDIS/WIFI 验证 (**) |
否 | 无 |
24 | 内核同步延迟模糊处理 | 否 | 无 |
25 | VM 交换机验证 | 否 | 无 |
26 | 代码完整性检查 | 否 | 无 |
33 | 驱动程序隔离检查 (***) |
否 | 36 |
36 | DIF 模式 | 是 | 无 |
/log LogFileName [/interval|Seconds] 创建名为 LogFileName 的日志文件。 驱动程序验证程序定期将统计信息写入此文件。 有关详细信息,请参阅 创建日志文件。
如果在命令行中键入了验证程序 /log 命令,则命令提示符不会返回。 若要关闭日志文件并返回提示,请使用 CTRL+C 键。 重启后,若要创建日志,必须再次提交 verifier /log 命令。
选项 | 说明 |
---|---|
/interval Seconds | 指定日志文件更新之间的间隔。 默认值为 30 秒。 |
可禁用的规则的 /rules 选项选项 (高级)。
选项 | 说明 |
---|---|
查询 |
显示可控制规则的当前状态。 |
reset |
将所有规则重置为其默认状态。 |
默认 ID |
将规则 ID 设置为其默认状态。 对于支持的规则,规则 ID 是 Bug 检查0xC4 (DRIVER_VERIFIER_DETECTED_VIOLATION) 参数 1 值。 |
禁用 ID |
禁用指定的规则 ID。 对于支持的规则,规则 ID 是 Bug 检查0xC4 (DRIVER_VERIFIER_DETECTED_VIOLATION) 参数 1 值。 |
/standard 在下一次启动后激活“标准”或默认驱动程序验证程序选项。 标准选项包括 特殊池、 强制 IRQL 检查、 池跟踪、 I/O 验证、 死锁检测、 DMA 验证。 和 WDF 验证 标准选项还包括 安全检查、 杂项检查 和 DDI 符合性检查。
注意
从 1803 之后的 Windows 10 版本开始,使用 /flags 0x209BB 将不再自动启用 WDF 验证。 使用 /standard 语法启用标准选项,包括 WDF 验证。
/stop 禁用通过“/dif /now”启用的规则类以停止验证。
/volatile /flags 更改设置而不重新启动计算机。 易失性设置会立即生效。 可以将 /volatile 参数与 /flags 参数结合使用,这样,无需重启即可启用和禁用某些选项。 还可以将 /volatile 与 /adddriver 和 /removedriver 参数一起使用,以在不重新启动的情况下启动或停止驱动程序验证,即使驱动程序验证程序尚未运行。
指定在不重新启动的情况下立即更改的驱动程序验证程序选项。 只有以下标志可用于易失性:
0x00000004 (位 2) - 随机化低资源模拟0x00000020 (位 5) - 死锁检测0x00000080 (位 7) - DMA 检查0x00000200 (位 9) - 强制挂起的 I/O 请求0x00000400 (位 10) - IRP 日志记录
有关详细信息,请参阅 “使用易失性设置”。
选项 | 说明 |
---|---|
/adddriver VolatileDriverList |
将指定的驱动程序添加到易失性设置。 若要指定多个驱动程序,请列出其名称并用空格分隔。 不支持通配符值,例如 n.sys。 有关详细信息,请参阅 “使用易失性设置 ”。 |
/removedriver VolatileDriverList |
从易失性设置中删除指定的驱动程序。 若要指定多个驱动程序,请列出其名称并用空格分隔。 不支持通配符值,例如 n.sys。 有关详细信息,请参阅 “使用易失性设置 ”。 |
/reset 清除所有驱动程序验证程序设置。 下一次启动后,不会验证任何驱动程序。
/querysettings 显示将激活的选项摘要,以及将在下一次启动后验证的驱动程序。 显示不包括使用 /volatile 参数添加的驱动程序和选项。 有关查看这些设置的其他方法,请参阅查看驱动程序验证程序设置。
/query 显示驱动程序验证程序当前活动的摘要。 显示内容中的 Level 字段是使用 /volatile 参数设置的选项的十六进制值。 有关每个统计信息的说明,请参阅 监视全局计数器 和 监视单个计数器 。
/domain Types **** 选项 控制验证程序扩展设置。 支持以下验证程序扩展类型。
类型 | 说明 |
---|---|
wdm |
为 WDM 驱动程序启用验证程序扩展。 |
ndis |
为网络驱动程序启用验证程序扩展。 |
ks |
为内核模式流式处理驱动程序启用验证程序扩展。 |
audio |
为音频驱动程序启用验证程序扩展。 |
支持以下扩展选项。
选项 | 说明 |
---|---|
rules.default |
为所选验证程序扩展启用默认验证规则。 |
rules.all |
为所选验证程序扩展启用所有验证规则。 |
/伐木为所选验证程序扩展检测到的违反规则启用日志记录。
/livedump为所选验证程序扩展检测到的违反规则启用实时内存转储收集。
/?显示命令行帮助。
有关使用这些命令的详细信息,请参阅控制驱动程序验证器和监视驱动程序验证程序。
/帮助显示命令行帮助。
有关使用这些命令的详细信息,请参阅控制驱动程序验证器和监视驱动程序验证程序。
返回代码
驱动程序验证程序运行后,将返回以下值。
0:EXIT_CODE_SUCCESS
1:EXIT_CODE_ERROR
2:EXIT_CODE_REBOOT_NEEDED