GFlags在挂起的GUI上停止

时间:2014-05-20 09:09:17

标签: windbg windows-kernel gflags

今天我想知道GFlags用户界面的 Kernel Flags 标签中出现GFlags选项 Stop on hung GUI 的原因。内核是否有可以挂起的GUI?

所以我尝试从Microsoft获得一些信息,但是MSDN just says

  

在GFlags上出现Stop on hung GUI标志,但它对Windows没有影响。

所以我想知道更多:内核的内核标志有一个GUI,但它不是Windows内核?

虽然它似乎没有实际用途,但有人可以解释一下吗?

我还尝试从WinDbg .hh !gflag获取更多信息,但它甚至没有说明这在Windows上不起作用。

1 个答案:

答案 0 :(得分:2)

Kernel flag表示标志会立即生效without requiring a reboot

Registry flag requires a reboot使标志生效

内核没有任何可能挂起的gui。

术语windows并不意味着内核,而是正在运行的应用程序的gui窗口

检查你的操作系统中的NtSetSystemInformation以了解0x8为什么不生效

基本上这个api中有一些硬编码的魔术数字测试每个GlobalFlag变化的请求并允许它们或不允许它们 在xp-sp3中,这个神奇的值是0B2319BF0所以任何标志都是<不允许使用0x10 并挂在挂gui是0x8所以它是无效的,你不能从注册表选项卡

设置它

如此有效地无法设置此标志

nt!NtSetSystemInformation+0x193:
80606009 8b03            mov     eax,dword ptr [ebx]  ds:0023:001285f8=00000008  <---- +shg
8060600b 25f09b31b2      and     eax,0B2319BF0h  < magic value in nt 
80606010 8945a0          mov     dword ptr [ebp-60h],eax ss:0010:fb569cf0=00000000
80606013 8b0d6c125580    mov     ecx,dword ptr [nt!NtGlobalFlag (8055126c)] ds:0023:8055126c=00000000
80606019 81e10f64ce4d    and     ecx,4DCE640Fh  <--another magic value  both these magic values orred together 
will be 0xffffffff covers the whole range of flags 
8060601f 0bc1            or      eax,ecx
80606021 8945a0          mov     dword ptr [ebp-60h],eax ss:0010:fb569cf0=00000000
80606024 a36c125580      mov     dword ptr [nt!NtGlobalFlag (8055126c)],eax ds:0023:8055126c=00000000