Sistem Uyandırma Olayları
Aşağıdaki bilgiler uykudan (S3) ve hazırda bekletme (S4)uyandırmalar için geçerlidir. Modern Bekleme Modundan (S0 Düşük Güç Boşta) gelen uyandırmalar için lütfen boşta ve etkin durumlar arasında geçişbölümüne bakın.
Uygulamanız, zamanlanmış zamanlayıcı veya cihaz olayı kullanarak uyku durumundaki bir bilgisayarı çalışma durumuna geri yükleyebilir. Bu, uyandırma olayı olarak bilinir. Sistemin hangi saatte uyanacağını belirtmek için bir beklenebilir zamanlayıcı nesnesi kullanın. Nesnesini oluşturmak için CreateWaitableTimerişlevinikullanın. Zamanlayıcıyı ayarlamak için SetWaitableTimerişlevinikullanın. pDueTime parametresi zamanlayıcının ne zaman sinyal gönderileceğini belirtir. Zamanlayıcı sinyallendiğinde sistemin uyanacağını belirtmek için fResume parametresini TRUE olarak ayarlayın.
Sistem bir olay (güç anahtarı veya kullanıcı etkinliği dışında) nedeniyle otomatik olarak uyandığında, sistem otomatik olarak bir katılımsız boşta zamanlayıcıyı en az 2 dakikaya ayarlar. Bu zamanlayıcı, uygulamalara meşgul olduklarını göstermek için SetThreadExecutionState işlevini çağırmak için yeterli süre verir. Bu kez, bilgisayar artık gerekli olmadığında sistemin uyku durumuna hızlı bir şekilde dönmesine olanak tanır. Aşağıdaki ölçütler, sistemin uyku durumuna geri dönüp dönmediğini belirler:
- Sistem otomatik olarak uyanırsa (yani, hiçbir kullanıcı etkinliği yoksa), katılımsız boşta kalma süreölçeri sona erer dolmaz sistemin gerekli olduğunu belirtmek için setThreadExecutionStateçağırılmadığını varsayarak kapanır.
- Cihaz sürücüsü kullanıcı durumunu belirtmedikçe, cihaz tabanlı uyandırmalar varsayılan olarak katılımsız boşta kalma zamanlayıcısını tetikler. Sürücü kullanıcı durumunu gösteriyorsa sistem boşta zamanlayıcı kullanılır.
- Sistem otomatik olarak uyanır, ancak olay işlenirken kullanıcı yeni giriş sağlarsa, sistem katılımsız boşta süreölçerine göre otomatik olarak uyku moduna dönmez. Bunun yerine sistem, sistem boşta süreölçerine göre uyku moduna döner.
- Sistem kullanıcı etkinliği nedeniyle uyanırsa, sistem katılımsız boşta süreölçerine bağlı olarak otomatik olarak uyku moduna dönmez. Bunun yerine sistem, sistem boşta süreölçerine göre uyku moduna döner.
Sistem otomatik olarak uyandığında, PBT_APMRESUMEAUTOMATIC olayını tüm uygulamalara yayınlar. Kullanıcı mevcut olmadığından çoğu uygulama hiçbir şey yapmamalıdır. Faks sunucuları gibi olay işleme uygulamaları, olaylarını işlemelidir. Sistemin bu durumda olup olmadığını belirlemek için IsSystemResumeAutomatic işlevini çağırın. Sistem otomatik olarak uyandığında, ekran otomatik olarak açılmaz.
Sistem kullanıcı etkinliği nedeniyle uyanırsa, sistem önce PBT_APMRESUMEAUTOMATIC olayını ve ardından bir PBT_APMRESUMESUSPEND olayı yayınlar. Buna ek olarak, sistem ekranı açar. Sistem uyku moduna geçtiğinde kapattığı dosyaları yeniden açmalı ve kullanıcı girişi için hazırlamalısınız.
İlgili konular
-
Power Management Hakkında