Mencegah Keluar atau Menangguhkan Selama Pembakaran

Jika tindakan pencegahan yang tepat tidak dilakukan dalam aplikasi, pengguna dapat keluar selama operasi pembakaran. Ini menyebabkan gangguan proses pembakaran, yang dapat mengakibatkan data hilang dan mungkin merender disk tidak dapat digunakan.

Untuk menghindari masalah ini, aplikasi harus memproses pesan WM_QUERYENDSESSION yang dikirimkan sebelum log keluar. Jika aplikasi menerima pesan ini saat melakukan operasi pembakaran, kembalikan FALSE untuk membatalkan prosedur logoff. Jika aplikasi memungkinkan pengguna untuk memutuskan apakah akan terus keluar, peringatan harus diberikan yang menunjukkan bahwa pengguna akan kehilangan data.

Transisi daya selama proses pembakaran juga dapat menciptakan masalah potensial dalam keberhasilan aktivitas luka bakar. Mencegah komplikasi ini selama proses pembakaran mengharuskan aplikasi untuk mengetahui kapan transisi daya akan terjadi. Ini dicapai dengan mengaktifkan aplikasi untuk memproses pesan WM_POWERBROADCAST. Aplikasi yang dikembangkan untuk Windows XP atau Windows Server 2003 dapat mengembalikan BROADCAST_QUERY_DENY sebagai respons terhadap PBT_APMQUERYSUSPEND, mencegah Penangguhan selama proses pembakaran.

Karena perubahan dalam Model Manajemen Daya untuk Windows Vista dan Windows Server 2008, peristiwa PBT_APMQUERYSUSPEND tidak lagi dikirimkan ke aplikasi. Sebagai gantinya , peristiwa PBT_APMSUSPEND dikirimkan, menyediakan dua detik bagi aplikasi untuk mempersiapkan transisi.

Sebagai akibat dari perubahan ini, disarankan agar aplikasi memanggil fungsi SetThreadExecutionState untuk mencegah waktu diam sistem yang biasanya mengakibatkan transisi ke Ditangguhkan. Penting untuk diingat bahwa memanggil fungsi ini dengan set bendera yang sesuai hanya akan mencegah sistem menganggur, bukan Penangguhan yang sedang berlangsung.

Menggunakan IMAPI

SetThreadExecutionState