Windows Vista에 대한 종료 변경 내용

다음 표에서는 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 함수를 사용하여 사용자에게 이유를 설명하는 문자열을 등록해야 합니다. 사용자는 종료를 계속할지 취소할지 결정할 수 있습니다.
  • 애플리케이션은 종료를 차단할 수 없습니다.