Delen via


Gebruikersbeheer van apparaat inactief en ontwaakgedrag in UMDF

Waarschuwing

UMDF 2 is de nieuwste versie van UMDF en vervangt UMDF 1. Alle nieuwe UMDF-stuurprogramma's moeten worden geschreven met UMDF 2. Er worden geen nieuwe functies toegevoegd aan UMDF 1 en er is beperkte ondersteuning voor UMDF 1 op nieuwere versies van Windows 10. Universele Windows-stuurprogramma's moeten UMDF 2 gebruiken.

De gearchiveerde UMDF 1-voorbeelden vindt u in de Windows 11 versie 22H2 - update van stuurprogrammavoorbeelden van mei 2022.

Zie Aan de slag met UMDF-voor meer informatie.

Als een apparaat mogelijkheden heeft voor stroomuitschakeling in ruststand of ontwaken, kunt u bepalen of gebruikers deze mogelijkheden mogen activeren of deactiveren.

Het UMDF-gebaseerde stuurprogramma kan de methode IWDFDevice2::AssignS0IdleSettings gebruiken om op te geven of gebruikers met registertoegang de mogelijkheid om een apparaat in de inactiviteitstand uit te schakelen, kunnen in- of uitschakelen.

Uw stuurprogramma kan de methode IWDFDevice2::AssignSxWakeSettings gebruiken om op te geven of gebruikers met registertoegang de ontwaakmogelijkheid van een apparaat kunnen in- of uitschakelen.

Met beide methoden kan het stuurprogramma de mogelijkheid inschakelen, de mogelijkheid uitschakelen of gebruikers controle geven over de mogelijkheid:

  • Wanneer een stuurprogramma de methode AssignS0IdleSettings aanroept, kan het gebruikers de controle geven over de inactieve mogelijkheden van een apparaat door de parameter UserControlOfIdleSettings in te stellen op IdleAllowUserControl en de parameter Enabled in te stellen op WdfTrue of WdfUseDefault.

  • Wanneer een stuurprogramma de methode AssignSxWakeSettings aanroept , kunnen gebruikers de wake-mogelijkheden van een apparaat beheren door de parameter UserControlOfWakeSettings in te stellen op WakeAllowUserControl en de parameter Enabled in te stellen op WdfTrue of WdfUseDefault.

Als uw stuurprogramma gebruikers toestaat om inactieve en wake-instellingen te wijzigen, biedt het framework een gebruikersinterface, in de vorm van een eigenschappenvensterpagina die door Apparaatbeheer wordt weergegeven, zodat gebruikers de inactiviteit en ontwaakmogelijkheden kunnen in- of uitschakelen. (Het framework wijzigt de registerwaarden IdleInWorkingState en WakeFromSleepState . Stuurprogramma's en hun installatiebestanden mogen deze waarden niet lezen of wijzigen.)

Als een gebruiker de instellingen van een apparaat wijzigt, werkt het framework de energiestatus van het apparaat bij zodat deze overeenkomt met de nieuwe instellingen, indien nodig. Als de gebruiker bijvoorbeeld de inactieve stroomuitschakelfunctie van een apparaat uitschakelt terwijl het apparaat al in een lage-vermogentoestand is omdat het inactief was, brengt het framework het apparaat terug naar de operationele toestand.

Als uw stuurprogramma gebruikers toestaat om inactieve en wake-instellingen te wijzigen, schakelt het framework deze instellingen standaard in. Sommige schrijvers van stuurprogramma's willen mogelijk eerst de instellingen uitschakelen voordat gebruikers deze kunnen wijzigen.

Daarom bieden versies 1.9 en hoger van het framework twee door de bestuurder definieerbare registerwaarden, genaamd WdfDefaultIdleInWorkingState en WdfDefaultWakeFromSleepState, die zijn opgeslagen in de sub-sleutel Apparaatparameters\WDF, onder de hardwaresleutel van het apparaat. De waarden worden REG_DWORD getypt, waarbij '0' aangeeft dat de mogelijkheid is uitgeschakeld en '1' die aangeeft dat de mogelijkheid is ingeschakeld.

Het INF-bestand van uw stuurprogramma kan een INF AddReg-instructie gebruiken om de registerwaarden WdfDefaultIdleInWorkingState en WdfDefaultWakeFromSleepState te maken en in te stellen. Als het stuurprogramma bijvoorbeeld de stand-by mogelijkheid van een apparaat inschakelt, maar deze mogelijkheid moet worden uitgeschakeld wanneer het apparaat is geïnstalleerd, kan het INF-bestand van het stuurprogramma WdfDefaultIdleInWorkingState instellen op '0'.

Het framework onderzoekt alleen de registerwaarde WdfDefaultIdleInWorkingState als het stuurprogramma de parameter UserControlOfIdleSettings instelt op IdleAllowUserControl en de parameter Enabled op WdfTrue of WdfUseDefault wanneer het stuurprogramma de methode IWDFDevice2::AssignS0IdleSettings aanroept.

Het framework onderzoekt alleen de registerwaarden WdfDefaultWakeFromSleepState als het stuurprogramma de parameter UserControlOfWakeSettings instelt op IWakeAllowUserControl en de parameter Enabled naar WdfTrue of WdfUseDefault wanneer het stuurprogramma de methode IWDFDevice2::AssignSxWakeSettings aanroept .