Виндбг "! Chkimg" сообщает о ложных срабатываниях на W10?
Я разрабатываю очень сложный драйвер для последней версии Windows 10-x64 (встроенный /IoT-дистрибутив). Так как у меня есть некоторые сбои (моя ошибка), я попытался использовать команду! Chkimg, чтобы исследовать повреждения памяти. Я обнаружил, что команда всегда сообщает о множестве ошибок в модуле NT, главным образом в функциях диспетчера памяти. Это не связано ни с моим драйвером, ни с каким-то странным сторонним драйвером, как это происходит и при новой установке. Вот некоторая строка вывода:
0: kd> !chkimg -d -lo 50
fffff803bca1a594-fffff803bca1a595 2 bytes - nt!MiDuplicateCloneLeaf+38
[ 80 fa:00 c1 ]
fffff803bca1b24f-fffff803bca1b250 2 bytes - nt!MiExpandPagedPool+83 (+0xcbb)
[ 80 f6:00 af ]
(...enough, enough!)
Я проверил затронутый код (хорошо, некоторые моменты) и заметил, что большинство ошибок очень похожи. Пример:
nt!MiDuplicateCloneLeaf:
...
fffff803`bca1a58e 48b90000000000c1ffff mov rcx,0FFFFC10000000000h
"Оригинальный" код будет:
nt!MiDuplicateCloneLeaf:
...
fffff803`bca1a58e 48b90000000080faffff mov rcx,0FFFFFA8000000000h
Я предполагаю, что то, что я заметил, - это эффект некоторой рандомизации представления корня пейджинга в ядре (в частности, позиции самореференции PML4). Я прав? Это хорошо известная проблема или в моей машине есть что-то очень странное?
Короче, может кто-нибудь объяснить, что происходит?