SetProcessShutdownParameters
The SetProcessShutdownParameters function sets shutdown parameters for the currently calling process. This function sets a shutdown order for a process relative to the other processes in the system.
BOOL SetProcessShutdownParameters( DWORD dwLevel, DWORD dwFlags );
Parameters
-
dwLevel
-
[in] Shutdown priority for a process relative to other processes in the system. The system shuts down processes from high
dwLevel values to low. The highest and lowest shutdown priorities are reserved for system components. This parameter must be in the following range of values.
Value Meaning 000-0FF System reserved last shutdown range. 100-1FF Application reserved last shutdown range. 200-2FF Application reserved "in between" shutdown range. 300-3FF Application reserved first shutdown range. 400-4FF System reserved first shutdown range. All processes start at shutdown level 0x280.
During service shutdown, the SCM does not take dependencies into consideration. The SCM enumerates the list of running services and sends the SERVICE_CONTROL_SHUTDOWN command. Therefore, a service may fail because another service it depends on has already stopped. To set the shutdown order of dependent services, use the SetProcessShutdownParameters function. The SCM uses this function to give its handler 0x1E0 priority. The SCM sends SERVICE_CONTROL_SHUTDOWN notifications when its control handler is called and waits for the services to exit before returning from its control handler.