windows驱动加载顺序
2013-07-08 18:59
561 查看
CreateService的dwStartType 形参 有几个选项值
SERVICE_BOOT_START SERVICE_AUTO_START SERVICE_SYSTEM_START
我们一般都只用SERVICE_DEMAND_START
那么其他几个值的含义呢? 参考MSDN
windows驱动加载顺序:
1. 判断StartType,依次按SERVICE_BOOT_START(0),SERVICE_SYSTEM_START(1), SERVICE_AUTO_START(2)顺序自动加载
如360的HookPort驱动 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\HookPort
其start键值为0 即SERVICE_BOOT_START
2.如果是同一个start的类型则按GroupOder加载
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder
HookPort的 grouporder是Boot Bus Extender
3. 如果grouporder也相同,那么按Tag值在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GroupOrderList列表里面的顺序加载
系统会根据tag值来排定加载顺序
可以看到Hookport加载的时机是非常早的,这个时候文件系统还没加载,系统只能访问少数几个路径
所以驱动要放在%root%\system32\drivers\下
PS:Tag对驱动加载的顺序只是微调
如果想做到驱动加载得比HookPort更早,那么可以同样设置驱动为boot bus extender类型,同时在GroupOrderList添加一个tag id,或者直接在ServiceGroupOrder添加一个新组cogito,然后把驱动
设置为cogito 类型,即更改CreateService的 lpLoadOrderGroup 参数。
SERVICE_BOOT_START SERVICE_AUTO_START SERVICE_SYSTEM_START
我们一般都只用SERVICE_DEMAND_START
那么其他几个值的含义呢? 参考MSDN
windows驱动加载顺序:
1. 判断StartType,依次按SERVICE_BOOT_START(0),SERVICE_SYSTEM_START(1), SERVICE_AUTO_START(2)顺序自动加载
如360的HookPort驱动 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\HookPort
其start键值为0 即SERVICE_BOOT_START
2.如果是同一个start的类型则按GroupOder加载
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder
HookPort的 grouporder是Boot Bus Extender
3. 如果grouporder也相同,那么按Tag值在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GroupOrderList列表里面的顺序加载
系统会根据tag值来排定加载顺序
可以看到Hookport加载的时机是非常早的,这个时候文件系统还没加载,系统只能访问少数几个路径
所以驱动要放在%root%\system32\drivers\下
PS:Tag对驱动加载的顺序只是微调
如果想做到驱动加载得比HookPort更早,那么可以同样设置驱动为boot bus extender类型,同时在GroupOrderList添加一个tag id,或者直接在ServiceGroupOrder添加一个新组cogito,然后把驱动
设置为cogito 类型,即更改CreateService的 lpLoadOrderGroup 参数。
相关文章推荐
- windows驱动加载顺序
- Windows Minifilter驱动 - 加载顺序 (2)
- linux设备和驱动加载的先后顺序
- 驱动加载顺序
- 修改linux kernel驱动加载的顺序
- linux设备和驱动加载的先后顺序
- linux设备和驱动加载的先后顺序
- linux设备和驱动加载的先后顺序
- linux设备和驱动加载的先后顺序
- Openstack中给windows虚拟机加载virtion驱动
- linux设备和驱动加载的先后顺序
- Windows启动阶段驱动程序加载顺序
- 在linux设备启动时,修改加载设备驱动的顺序
- Linux 设备和驱动加载的先后顺序 2
- 在Windows x64中加载驱动
- WINDOWS操作驱动学习 带服务加载驱动
- 修改linux kernel驱动加载的顺序
- 服务器用U盘虚拟光驱装系统,有做RAID5,加载RAID驱动成功后,安装到最后会报“windows无法确定此计算机是否包含有效系统卷”错误
- 在linux下使用ndiswrapper加载windows的无线网卡驱动
- Linux内核驱动加载顺序