我不知道Windows XP引导加载程序( ntldr
)是否实际上使用Windows内核( ntoskrnl.exe
)导入声明?
ntoskrnl.exe
具有以下导入的模块: BOOTVID.dll
, HAL.dll
和KDCOM.dll
。 所以这三个模块是第一个被加载的模块。 假设内核有另一个声明为导入的模块。 这会导致ntldr
也加载它吗? 或者ntldr
只知道它应该加载这四个模块,而且没有办法改变这个模块?
我建议在ntdev邮件列表中提出这个问题。 为了回答你更好的解释你为什么需要这些信息,你想做什么。 我可以保证,在这个名单上,你会发现有能力回答这个问题的人,但不能保证你会得到回答。 他们对“嗅觉”有点敏感。
发生,我自己找到答案。 并在ntdev邮件列表中确认。
ntldr
确实只加载了问题中提到的四个文件,并且不使用任何导入声明。
您可以通过创建一个存根内核(从实际的内核导入某些内容)并使用以下boot.ini
选项(您将在%SystemRoot%\ntbtlog.txt
文件中获得已加载模块的列表)来检查这一点:
/bootlog /kernel=stubkrnl.exe