防止在燒毀期間登出或暫停

如果在應用程式內未採取適當的預防措施,使用者就有可能在燒毀作業期間登出。 這會導致燒毀程式中斷,這可能會導致資料遺失,而且可能會使光碟無法使用。

為了避免這個問題,應用程式應該處理 在登出之前所傳遞的 WM_QUERYENDSESSION訊息。 如果應用程式在執行燒毀作業時收到此訊息,請傳回 FALSE 以取消登出程式。 如果應用程式允許使用者決定是否要繼續登出,則應該提供警告,指出使用者將會遺失資料。

燃燒過程中的電源轉換也可能在燃燒活動成功時產生潛在問題。 在燃燒過程中避免這些併發症,需要應用程式知道何時即將進行電源轉換。 這可藉由讓應用程式處理 WM_POWERBROADCAST 訊息來完成。 針對 Windows XP 或 Windows Server 2003 開發的應用程式可以傳回 BROADCAST_QUERY_DENY ,以回應 PBT_APMQUERYSUSPEND ,防止在燒毀過程中暫停。

由於 Windows Vista 和 Windows Server 2008 的電源管理模型變更, PBT_APMQUERYSUSPEND 事件不再傳遞至應用程式。 相反地,會 傳遞PBT_APMSUSPEND 事件,為應用程式提供兩秒的時間來準備轉換。

由於這些變更,建議應用程式呼叫 SetThreadExecutionState 函式,以防止系統閒置逾時,這通常會導致轉換至 Suspend。 請務必記住,使用適當的旗標設定呼叫此函式只會防止系統閒置,而不是進行中的 Suspend。

使用 IMAPI

SetThreadExecutionState