Peristiwa Bangun Sistem
Informasi berikut berlaku untuk bangun dari tidur (S3) dan hibernasi (S4). Untuk bangun dari Modern Standby (S0 Low Power Idle), silakan lihat transisi antara status diam dan aktif.
Aplikasi Anda dapat memulihkan komputer yang dalam keadaan tidur ke status kerja dengan menggunakan timer terjadwal atau peristiwa perangkat. Ini dikenal sebagai peristiwa bangun tidur. Gunakan objek timer yang dapat dinanti untuk menentukan waktu saat sistem harus bangun. Untuk membuat objek, gunakan fungsi CreateWaitableTimer . Untuk mengatur timer, gunakan fungsi SetWaitableTimer . Parameter pDueTime menentukan kapan timer akan disinyalkan. Untuk menentukan bahwa sistem harus bangun ketika timer disinyalkan, atur parameter fResume ke TRUE.
Ketika sistem bangun secara otomatis karena suatu peristiwa (selain sakelar daya atau aktivitas pengguna), sistem secara otomatis mengatur timer menganggur tanpa pengawas menjadi setidaknya 2 menit. Timer ini memberi aplikasi waktu yang cukup untuk memanggil fungsi SetThreadExecutionState untuk menunjukkan bahwa mereka sibuk. Kali ini memungkinkan sistem untuk kembali ke status tidur dengan cepat setelah komputer tidak lagi diperlukan. Kriteria berikut menentukan apakah sistem kembali ke status tidur:
- Jika sistem bangun secara otomatis (yaitu, tidak ada aktivitas pengguna yang ada), sistem akan dimatikan segera setelah timer diam yang tidak diawasi kedaluwarsa, dengan asumsi bahwa tidak ada aplikasi yang disebut SetThreadExecutionState untuk menunjukkan bahwa sistem diperlukan.
- Bangun berbasis perangkat memicu timer diam yang tidak diawasi secara default kecuali driver perangkat menunjukkan kehadiran pengguna. Jika driver menunjukkan kehadiran pengguna, maka timer diam sistem digunakan.
- Jika sistem bangun secara otomatis, tetapi pengguna memberikan input baru saat peristiwa ditangani, sistem tidak secara otomatis kembali tidur berdasarkan timer menganggur yang tidak diawasi. Sebaliknya, sistem kembali tidur berdasarkan timer diam sistem.
- Jika sistem bangun karena aktivitas pengguna, sistem tidak secara otomatis kembali tidur berdasarkan timer diam yang tidak diawasi. Sebaliknya, sistem kembali tidur berdasarkan timer diam sistem.
Ketika sistem bangun secara otomatis, sistem menyiarkan peristiwa PBT_APMRESUMEAUTOMATIC ke semua aplikasi. Karena pengguna tidak ada, sebagian besar aplikasi tidak boleh melakukan apa-apa. Aplikasi penanganan peristiwa, seperti server faks, harus menangani peristiwa mereka. Untuk menentukan apakah sistem dalam status ini, panggil fungsi IsSystemResumeAutomatic . Ketika sistem bangun secara otomatis, tampilan tidak dinyalakan secara otomatis.
Jika sistem bangun karena aktivitas pengguna, sistem akan terlebih dahulu menyiarkan peristiwa PBT_APMRESUMEAUTOMATIC diikuti oleh peristiwa PBT_APMRESUMESUSPEND . Selain itu, sistem akan menyalakan layar. Aplikasi Anda harus membuka kembali file yang ditutup ketika sistem memasuki tidur dan mempersiapkan input pengguna.
Topik terkait