我正在开发一个非常复杂的驱动程序,最新的Windows 10-x64(嵌入式/物联网分发)。由于我有一些崩溃(我的错),我试图使用!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自引用条目位置)。我对吗?这是一个众所周知的问题,还是我的机器中有一些非常奇怪的东西?
简而言之,有人可以解释发生的事情吗?