On the post Enumerate Database Volumes, we saw a lot of database volumes has been mounted and locked by some applications or services. I am trying to find a position in boot up sequence to get less database locked as I can.
 This is the volumes mounted when boot up finished:
    | \Documents and Settings\Default.vol \ReplStrorVol
 \mxip_notifi.vol
 \mxip_swmgmt.vol
 \cemail.vol
 \mxip_system.vol
 \mxip_lang.vol
 | 
 I modified my enumeration application to output the enumeration to a file. Cause this application should only use database and file system API, I hope it can be executed very early in boot sequence.
 And I find the first place to try: HKLM\Init. The applications registered in this registry will be run in the lastest step of filesys.exe. At that moment, the database and file system APIs should be ready. So I start my testing.
 I put my execution file in \Windows folder, and add a registry in HKLM\ini as “LunchXX” with my application file name as value.
 First, let me list my KHLM\Init:
    | Launch4 | sdpready.exe | 
  | Launch19 | initvmmap.exe | 
  | Launch20 | device.exe | 
  | Launch30 | gwes,exe | 
  | Launch50 | shell32.exe | 
  | Launch60 | services.exe | 
  | Launch70 | connmgr.exe | 
  | Launch82 | ShellNotification.exe | 
 This is not a full list, but enough for my description. 
 First try, I think device.exe loads drivers, the system state should be ready to execute my application. So I made “Lunch35” as my key name, and them, the application run fail, I don’t know why, but just cannot see the output file.
 Second try, I want to make sure my application can be run in HKLM\init. So I modify the key name to “Launch135”. And great, it can be run, and the output is:
    | \Documents and Settings\Default.vol \ReplStrorVol
 \mxip_notifi.vol
 \mxip_swmgmt.vol
 \cemail.vol
 | 
 Another great news, some volumes missed. Then I try to put my test application on “Launch65”, and the cmail.vol missed, too.
    | \Documents and Settings\Default.vol \ReplStrorVol
 \mxip_notifi.vol
 \mxip_swmgmt.vol
 | 
 And then when I try to run it earlier at “Launch55”, it fail to run again.
 According my HKLM\init list, the item between 55 and 65 is “Launch60: services.exe”. Seems my application need to wait for all service ready. I am depressed about that. Cause I think my application only use database and file system APIs, I hope it can be run earlier then that.
 So, until now, I have four database volumes need to study about how to release them for backup and restore operation.