我希望这不是一个愚蠢的问题,如果是,那么我至少想把它解决掉,这样我以后就不会觉得自己很愚蠢了。
我们在这里,使用 Windbg 加载 Windows 崩溃转储。以下是调试器输出的前几行:
0: kd> .dumpdebug
----- 64 bit Kernel Summary Dump Analysis
DUMP_HEADER64:
MajorVersion 0000000f
MinorVersion 00001db1
...
我主要了解的次要版本。它是十六进制的,转换为十进制的 7601。Windows 管理员已经能够从中判断出这必须是 Win7 x64 机器或带有 SP1 的 2k8 R2 机器。但是 7601 不是内部版本号吗?它应该是 Major.Minor.Build/Revision... 对吧?
我也不明白 MajorVersion。应该是6。这个版本的Windows是6。但是十六进制的0000000f不就是十进制的15吗?
例如,当您启动命令提示符时,此版本 Windows 的完整版本字符串为 6.1.7601。如果 7601 是 MinorVersion,那么 1 和 6 是什么?为什么故障转储显示 0F?
部分答案:
does 确实指的
MinorVersion
是内部版本号,如果您愿意滥用旧机器/操作系统,您可以通过将(例如)某些 XP 和 2003 机器的内部版本号MinorVersion
与dump_header
.您可能还会注意到(或者至少我注意到了)
MajorVersion
那些转储调试文件中的 也是0000000f
,尽管内核版本不同。所以,它显然不是指内核版本……或者,至少是不正确的。至于它指的是什么……好吧,这绝对不是一个愚蠢的问题,尽管我对此没有答案。然而。更新:
发现一件很气人的事。
在 Windows 2000 和 Windows NT 4 上,
MajorVersion
转储调试文件中的free system
. 这个字段的含义似乎没有记录,尽管free system
我在 Microsoft 看到的所有示例转储中都显示了该字段的含义,例如NT Workstation Resource Kit,甚至是适用于 2008 和 Windows的关于如何使用的知识库文章dumpchk.exe
7个系统。开始看起来它可能毫无意义,还是一个错误?至少这次
0xB16B00B5
不是0x0B00B135
。