widdows 服务启动顺序按分组顺序启动的,每个服务都可以有个group 和tag 值,也可以没有这两个值,group表示在那个分组,tag表示分组中的唯一标识。group表示该组所在的启动顺序,tag表示在该组的启动顺序。如果没有group值,该服务则在所有的组都启动完成之后再启动。
在HKM\\SYSTEM\\Controlset001(Controlset002,CurrentControlset)\\Control\\ServiceGroupOrder 键下, list 的值列出了所有分组的启动顺序。按程序需要可以在这里面选一个分组作为自己程序的所在的分组。
一个服务程序在注册表中的示列:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\adpu160m]
"ErrorControl"=dword:00000001
"Group"="SCSI miniport" // 分组
"Start"=dword:00000004
"Tag"=dword:0000003c // tag标识
"Type"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\adpu160m\Parameters]
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\adpu160m\Parameters\PnpInterface]
"5"=dword:00000001