Надеюсь, это не глупый вопрос, а если это так, то я хочу по крайней мере покончить с этим, чтобы в будущем я не чувствовал себя таким глупым.
Вот и мы загружаем аварийный дамп Windows с помощью Windbg. Вот несколько первых строк вывода отладчика:
0: kd> .dumpdebug
----- 64 bit Kernel Summary Dump Analysis
DUMP_HEADER64:
MajorVersion 0000000f
MinorVersion 00001db1
...
MinorVersion я в основном понимаю. Он шестнадцатеричный, а в десятичном переводится как 7601. Администраторы Windows уже могли бы сказать из этого, что это должна быть машина Win7 x64 или машина 2k8 R2 с SP1. Но разве 7601 не номер сборки? Это должен быть Major.Minor.Build/Revision ... верно?
Также я не понимаю MajorVersion. Это должно быть 6. Эта версия Windows - 6. Но разве 0000000f в шестнадцатеричном формате не 15 в десятичном?
Строка полной версии этой версии Windows, например, при запуске командной строки - 6.1.7601. Если 7601 - MinorVersion, то что 1, а что 6? И почему в аварийном дампе написано 0F?
В MinorVersion
действительно относится к номеру сборки, и если вы готовы злоупотреблять старыми машинами / ОС, вы можете проверить это на разных платформах, сопоставив номер сборки (например) некоторых блоков XP и 2003 с MinorVersion
в dump_header
.
Вы, вероятно, также заметили (или, по крайней мере, я), что MajorVersion
в этих файлах отладки дампа также 0000000f
, несмотря на другую версию ядра. Итак, это явно не относится к версии ядра ... или, по крайней мере, не правильно. Что касается того, к чему это относится ... ну, определенно не глупый вопрос, хотя у меня нет на него ответа. Все же.
Нашел что-то очень раздражающее.
В Windows 2000 и Windows NT 4 MajorVersion
в файле отладки дампа есть free system
. И значение этого поля кажется недокументированным, хотя free system
это то, что показано во всех примерах дампов, которые я видел от Microsoft, например, в Комплект ресурсов NT Workstation, и даже КБ о том, как использовать dumpchk.exe
это относится к системам 2008 и Windows 7.
Начинает казаться, что это бессмысленно или ошибка? По крайней мере, это не так 0xB16B00B5
или 0x0B00B135
в это время.