mirror of
https://github.com/winfsp/winfsp.git
synced 2025-04-23 00:43:00 -05:00
dll: FspService: console mode improvements
This commit is contained in:
parent
6da81be792
commit
57f9db6cc0
@ -482,17 +482,15 @@ static DWORD WINAPI FspServiceConsoleModeThread(PVOID Context)
|
|||||||
|
|
||||||
static BOOL WINAPI FspServiceConsoleCtrlHandler(DWORD CtrlType)
|
static BOOL WINAPI FspServiceConsoleCtrlHandler(DWORD CtrlType)
|
||||||
{
|
{
|
||||||
if (0 != FspServiceConsoleModeEvent)
|
|
||||||
SetEvent(FspServiceConsoleModeEvent);
|
|
||||||
|
|
||||||
switch (CtrlType)
|
switch (CtrlType)
|
||||||
{
|
{
|
||||||
default:
|
default:
|
||||||
case CTRL_C_EVENT:
|
case CTRL_C_EVENT:
|
||||||
case CTRL_BREAK_EVENT:
|
case CTRL_BREAK_EVENT:
|
||||||
|
if (0 != FspServiceConsoleModeEvent)
|
||||||
|
SetEvent(FspServiceConsoleModeEvent);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
case CTRL_CLOSE_EVENT:
|
case CTRL_CLOSE_EVENT:
|
||||||
case CTRL_LOGOFF_EVENT:
|
|
||||||
case CTRL_SHUTDOWN_EVENT:
|
case CTRL_SHUTDOWN_EVENT:
|
||||||
/*
|
/*
|
||||||
* Returning from these events will kill the process. OTOH if we do not return timely
|
* Returning from these events will kill the process. OTOH if we do not return timely
|
||||||
@ -500,11 +498,16 @@ static BOOL WINAPI FspServiceConsoleCtrlHandler(DWORD CtrlType)
|
|||||||
* to give the process some time to cleanup itself.
|
* to give the process some time to cleanup itself.
|
||||||
*
|
*
|
||||||
* We only do so if we have a Close event or we are interactive. If we are running as
|
* We only do so if we have a Close event or we are interactive. If we are running as
|
||||||
* a service the OS will not kill us after delivering a Logoff or Shutdown event.
|
* a service the OS will not kill us after delivering a Shutdown (or Logoff) event.
|
||||||
*/
|
*/
|
||||||
|
if (0 != FspServiceConsoleModeEvent)
|
||||||
|
SetEvent(FspServiceConsoleModeEvent);
|
||||||
if (CTRL_CLOSE_EVENT == CtrlType || FspServiceIsInteractive())
|
if (CTRL_CLOSE_EVENT == CtrlType || FspServiceIsInteractive())
|
||||||
Sleep(30000);
|
Sleep(30000);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
case CTRL_LOGOFF_EVENT:
|
||||||
|
/* services should ignore this! */
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user