Dela via


Systemuppvakningshändelser

Följande information gäller för aktiveringar från viloläge (S3) och viloläge (S4). För aktiveringar från modernt vänteläge (S0 Låg inaktiv ström) kan du läsa övergång mellan inaktiva och aktiva tillstånd.

Programmet kan återställa en dator som är i viloläge till arbetstillståndet med hjälp av en schemalagd timer eller en enhetshändelse. Detta kallas för en aktiveringshändelse. Använd ett väntebart timerobjekt för att ange tidpunkten då systemet ska aktiveras. Om du vill skapa objektet använder du funktionen CreateWaitableTimer. Om du vill ange timern använder du funktionen SetWaitableTimer. Parametern pDueTime anger när timern ska signaleras. Om du vill ange att systemet ska aktiveras när timern signaleras anger du parametern fResume till TRUE.

När systemet aktiveras automatiskt på grund av en händelse (förutom strömbrytare eller användaraktivitet) anger systemet automatiskt en obevakad inaktiv timer till minst 2 minuter. Den här timern ger program tillräckligt med tid för att anropa funktionen SetThreadExecutionState för att indikera att de är upptagna. Den här gången kan systemet snabbt återgå till viloläge när datorn inte längre behövs. Följande villkor avgör om systemet återgår till viloläge:

  • Om systemet aktiveras automatiskt (dvs. ingen användaraktivitet finns) stängs det av så snart den obevakade inaktiva timern upphör att gälla, förutsatt att inga program har anropat SetThreadExecutionState för att indikera att systemet krävs.
  • Enhetsbaserade aktiveringar utlöser den obevakade inaktiva timern som standard om inte enhetsdrivrutinen anger användarens närvaro. Om drivrutinen anger användarens närvaro används systemets inaktiva timer.
  • Om systemet aktiveras automatiskt, men användaren tillhandahåller nya indata medan händelsen hanteras, återgår systemet inte automatiskt till viloläge baserat på den obevakade inaktiva timern. I stället återgår systemet till viloläge baserat på systemets inaktiva timer.
  • Om systemet aktiveras på grund av användaraktivitet återgår systemet inte automatiskt till viloläge baserat på den obevakade inaktiva timern. I stället återgår systemet till viloläge baserat på systemets inaktiva timer.

När systemet aktiveras automatiskt sänder det den PBT_APMRESUMEAUTOMATIC händelsen till alla program. Eftersom användaren inte finns bör de flesta program inte göra någonting. Händelsehanteringsprogram, till exempel faxservrar, bör hantera sina händelser. För att avgöra om systemet är i det här tillståndet anropar du funktionen IsSystemResumeAutomatic. När systemet aktiveras automatiskt aktiveras inte skärmen automatiskt.

Om systemet aktiveras på grund av användaraktiviteten sänder systemet först den PBT_APMRESUMEAUTOMATIC händelsen följt av en PBT_APMRESUMESUSPEND händelse. Dessutom aktiverar systemet bildskärmen. Programmet bör öppna filer som stängdes när systemet gick i viloläge och förbereda för användarindata.

Om Power Management

System Sleep Criteria