驱动加载顺序

在系统初始化的时候,决定驱动程序在什么时候被载入的信息保存在注册表中。

最早的一批驱动是由ntldr载入内存的(仅仅是载入)

第二批是由IO管理器载入内存的

第三批是由 SCM(Service Control Manager) 载入的

一个驱动在第几批中被载入是由 HKLM/SYSTEM/CurrentControlSet/Services/驱动名/Start 的值来决定。该值为0,第一批被载入。该值为1,第二批被载入。该值为2,第三批被载入。对于同一批驱动中的驱动,按驱动所在组的先后载入。组的先后顺序由 HKLM/SYSTEM/CurrentControlSet/Control/ServiceGroupOrderList 决定。每个驱动的 HKLM/SYSTEM/CurrentControlSet/Services/驱动名/Group 决定了驱动所属的组,如果没有这个 Services驱动名Group ,那么就在所有组之后。对于同一个组中的驱动,按驱动的Tag的先后载入。Tag的先后顺序由 HKLM/SYSTEM/CurrentControlSet/Control/GroupOrderList组名 决定。每个驱动的 HKLM/SYSTEMCurrent/ControlSet/Services/驱动名/Tag 决定了驱动在组中的Tag。 这个Tag值的大小由驱动安装的先后顺序决定,先安装的Tag值小,后安装的Tag值大。

 

你可能感兴趣的:(IO)