mirror of
				https://github.com/winfsp/winfsp.git
				synced 2025-10-30 19:48:38 -05:00 
			
		
		
		
	dll: FspService: console mode improvements
This commit is contained in:
		| @@ -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; | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user