Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I D0-enhetens energiläge är enheten helt på och i drift. I det här tillståndet kan en enhetsdrivrutin interagera med enheten för att utföra I/O-åtgärder och enheten kan generera avbrott. Om enheten har maskinvaruregister som mappas till minne eller I/O-adressutrymme kan drivrutinen komma åt dessa register.
Från och med Windows 8 kan en enhetsdrivrutin ansluta en ISR ( Passive-Level Interrupt Service Routine ) till avbrottet från en enhet. Enheten kan generera avbrott oavsett om den finns i D0. När enheten är i ett Dx-tillstånd med låg effekt kan den generera ett avbrott som fungerar som en utlösare för att återställa enheten till D0. ISR är schemalagd att köras på IRQL = PASSIVE_LEVEL när enheten har angett D0. I tidigare versioner av Windows, inklusive Windows 7, får en enhet inte generera avbrott när den är i ett annat enhetskrafttillstånd än D0.
En övergång från D0 till ett Dx-tillstånd med låg effekt kan bara ske när enhetsdrivrutinen, samtidigt som den fungerar som energiprincipägare för enheten, initierar övergången genom att anropa PoRequestPowerIrp-rutinen . När power manager svarar på det här anropet genom att skicka en power IRP (IRP_MN_SET_POWER), hanterar enhetsdrivrutinen, bussdrivrutinen och plattformens inbyggda programvara (via Windows ACPI-drivrutinen Acpi.sys) tillsammans denna IRP för att ändra enhetens energitillstånd.
Enhetens maskinvara övervakar vanligtvis en uppsättning interna händelser som kan generera antingen körningsavbrott eller aktiveringssignaler, beroende på hur enheten är konfigurerad. Drivrutinen implementerar en kodväg för att svara på avbrott och en annan för att svara på väckhändelser. Drivrutinskoden kan förenklas om sökvägen för avbrottskoden inte behöver hantera aktiveringshändelser och sökvägen för aktiveringskoden inte behöver hantera avbrott. Som bästa praxis bör drivrutinen konfigurera enheten så att den endast genererar avbrott när enheten är i D0 och generera aktiveringssignaler endast när enheten är i ett Dx-tillstånd med låg effekt. Vanligtvis konfigurerar drivrutinen enheten för att generera en aktiveringssignal precis innan enheten avslutar D0 och konfigurerar enheten för att generera avbrott strax efter att enheten har gått in i D0.
Vanligtvis går en enhet in i D0-tillståndet när dess maskinvaruåterställningssignal bekräftas. Faktum är att specifikationerna för bussar som PCI och PCI Express kräver det här beteendet.
Det här är egenskaperna för D0-tillståndet:
Energiförbrukning
Högsta kontinuerliga strömförbrukning för enheten.
Enhetskontext
All kontext behålls.
Beteende för enhetsdrivrutiner
Normal användning