示例 6:清除全部标志

此示例演示了清除注册表和会话中设置的所有标志的两种不同方法:

  • 减去当前标志值。

  • 减去高值。

注意 此示例演示的方法仅清除标志。 它们不会将最大堆栈跟踪大小或内核特殊池标记重置为默认值。

减去当前标志值

以下命令通过减去条目的当前值,清除注册表中系统范围的标志项中设置的所有标志。 在此示例中,当前值为 0xE0。 该命令使用 /r 参数指示系统范围的注册表模式,并使用减号 (-) 的 E0 值从标志值中减去 E0。

gflags /r -E0 

作为响应,GFlags 显示系统范围标志注册表项的修订值。 值为零表示命令成功,并且注册表中不再设置任何系统范围的标志。

Current Boot Registry Settings are: 00000000 

请注意,以下命令与此示例中使用的命令具有相同的效果,可以互换使用:

gflags /r -20 -40 -80 
gflags /r -hfc -hpc -hvc 

减去高值

以下命令通过从系统范围的标志设置中减去 (0xFFFFFFFF) 高值来清除所有系统范围的标志。

gflags /r -ffffffff 

作为响应,GFlags 显示系统范围标志条目的修订值。 值为零表示命令成功,并且注册表中不再设置任何系统范围的标志。

Current Boot Registry Settings are: 00000000 

提示 在记事本中键入此命令,然后将该文件另存为clearflag.bat。 此后,若要清除所有标志,只需键入 ClearFlag

最后,以下示例演示清除所有标志的直观方法不起作用。

以下命令似乎将系统范围的标志条目的值设置为 0。 但是,它实际上将零添加到系统范围的标志值。 在此示例中,系统范围的标志条目的当前值0xE0。

gflags /r 0 

作为响应,GFlags 在命令完成后显示系统范围的标志值:

Current Boot Registry Settings are: 000000e0
    hfc - Enable heap free checking
    hpc - Enable heap parameter checking
    hvc - Enable heap validation on call

命令不起作用,因为它将值 0 添加到系统范围的标志条目。