OEMInit
一般在OEMInit中初始化所有外围的硬件、初始化系统时钟(system tick)和RTC(real time clock)、初始化KITL(Kernel Independent Transport Layer)。例如I486平台的OEMinit函数,它先关联所有的IRQ和中断ID,然后初始化PCI总线、网络适配器、电源管理、PIC(可编程中断控制器)、系统时钟,最后检测是否有扩展内存。另外如果OEM要通过OAL暴露的函数指针或者全局变量来增强功能的话,就要在此函数中实现(在下面详细讲解)。
此时注册表已经存在于内存当中,内核开始读取如下位置数据:
HKEY_LOCAL_MACHINE/Loader/SystemPath HKEY_LOCAL_MACHINE/SYSTEM/OOM/cbLow and cpLow HKEY_LOCAL_MACHINE/SYSTEM/KERNEL/InjectDLL HKEY_LOCAL_MACHINE/MUI/Enable and SysLang HKEY_CURRENT_USER/MUI/CurLang
内核设置低内存处理(out of memory)。低内存处理是指当前可用的内存非常少时,内核所做的解决方案(CE帮助文档中有详细说明)。