다음 표에서는 Windows Vista와 Windows XP의 종료 간 차이점을 요약합니다.
| 특징 | Windows XP | Windows Vista |
|---|---|---|
| 차단 종료 | 애플리케이션은 5초 동안 WM_QUERYENDSESSION 응답을 지연할 수 있으며, 시스템에서는 사용자가 애플리케이션을 종료할 수 있도록 허용합니다. WM_QUERYENDSESSION 대한 응답으로 TRUE 반환하는 애플리케이션은 5초 동안 WM_ENDSESSION 응답을 지연시킬 수 있으며, 시스템에서는 사용자가 애플리케이션을 종료할 수 있도록 허용합니다. | 애플리케이션은 5초 동안 WM_QUERYENDSESSION 응답을 지연할 수 있으며, 시스템에서는 사용자가 종료를 계속하거나 취소할 수 있습니다. WM_QUERYENDSESSION 대한 응답으로 TRUE 반환하는 애플리케이션은 5초 동안 WM_ENDSESSION 응답을 지연할 수 있습니다. 그러면 시스템에서 사용자가 종료를 계속하거나 취소할 수 있습니다. |
| 종료 취소 | 애플리케이션이 WM_QUERYENDSESSION대한 응답으로 FALSE 반환하는 경우 대부분의 경우 종료가 취소됩니다. 그러나 UI가 표시되지 않으므로 사용자가 종료가 취소되었음을 인식하지 못할 수 있습니다. | 애플리케이션이 WM_QUERYENDSESSION대한 응답으로 FALSE 반환하는 경우에도 종료 UI에 표시됩니다. 시스템에서는 표시되는 창이 없는 콘솔 애플리케이션 또는 애플리케이션이 종료를 취소하는 것을 허용하지 않습니다. 이러한 애플리케이션은 5초 이내에 WM_QUERYENDSESSION 또는 WM_ENDSESSION 응답하지 않거나 WM_QUERYENDSESSION대한 응답으로 FALSE 반환하는 경우 자동으로 종료됩니다. |
| 사용자 인터페이스 종료 | 시스템에서 종료를 차단하는 각 애플리케이션에 대한 대화 상자를 표시합니다. 사용자가 지금 종료 단추를 클릭하면 애플리케이션이 종료됩니다. 사용자가 취소 단추를 클릭하면 종료가 취소되고 애플리케이션이 계속 실행됩니다. | 시스템에서 종료를 차단하는 모든 애플리케이션과 해당 이유를 식별하는 전체 화면 UI를 표시합니다(ShutdownBlockReasonCreate사용하여 이유를 등록한 경우). |
모범 사례
- 애플리케이션이 종료를 차단해서는 안 됩니다. 가능한 한 빨리 WM_QUERYENDSESSION 응답하고 WM_ENDSESSION 메시지를 처리할 때까지 정리 작업을 연기합니다.
- 종료를 차단해야 하는 애플리케이션은 새 ShutdownBlockReasonCreate 함수를 사용하여 사용자에게 이유를 설명하는 문자열을 등록해야 합니다. 사용자는 종료를 계속할지 취소할지 결정할 수 있습니다.
- 애플리케이션은 종료를 차단할 수 없습니다.