struttura WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS (wdfdevice.h)
[Si applica a KMDF e UMDF]
La struttura WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS contiene informazioni fornite dal driver sulla capacità di un dispositivo di riattivarsi e sul sistema, quando entrambi si trovano in uno stato a basso consumo.
Sintassi
typedef struct _WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS {
ULONG Size;
DEVICE_POWER_STATE DxState;
WDF_POWER_POLICY_SX_WAKE_USER_CONTROL UserControlOfWakeSettings;
WDF_TRI_STATE Enabled;
BOOLEAN ArmForWakeIfChildrenAreArmedForWake;
BOOLEAN IndicateChildWakeOnParentWake;
} WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS, *PWDF_DEVICE_POWER_POLICY_WAKE_SETTINGS;
Membri
Size
Dimensione, in byte, di questa struttura.
DxState
Enumeratore DEVICE_POWER_STATEtipizzato che identifica lo stato di alimentazione basso dispositivo che il dispositivo entrerà quando lo stato di alimentazione del sistema scende a uno stato di basso consumo di energia riattivabile. Il valore di DxState non può essere PowerDeviceD0. DEVICE_POWER_STATE valori sono definiti in wdm.h.
UserControlOfWakeSettings
Enumeratore WDF_POWER_POLICY_SX_WAKE_USER_CONTROLtipizzato che indica se gli utenti hanno la possibilità di modificare le impostazioni di riattivazione del dispositivo.
Enabled
Enumeratore WDF_TRI_STATEtipizzato che indica se il dispositivo può riattivare il sistema (ovvero ripristinare il sistema su S0) quando il sistema si trova in uno stato a basso consumo. Questo membro può avere uno dei valori seguenti:
WdfTrue - Svegliare il sistema è abilitato.
WdfFalse - Svegliare il sistema è disabilitato.
WdfUseDefault - La riattivazione del sistema è inizialmente abilitata per impostazione predefinita; ma se il membro UserControlOfWakeSettings è impostato su WakeAllowUserControl, l'impostazione dell'utente o il file INF del driver esegue l'override del valore iniziale.
Se il sistema viene attivato e il sistema sta per entrare in uno stato a basso consumo, il framework chiama la funzione di callback del driver EvtDeviceArmWakeFromSx o EvtDeviceArmWakeFromSxWithReason funzione di callback prima che il dispositivo entri in uno stato a basso consumo.
ArmForWakeIfChildrenAreArmedForWake
Valore booleano che, se impostato su TRUE, indica che la capacità di un dispositivo padre di riattivarsi e il sistema deve essere abilitato quando questa capacità è abilitata per i dispositivi figlio del dispositivo. Per altre informazioni, vedere la sezione Osservazioni seguente. Questo membro è disponibile nella versione 1.7 e successive di KMDF.
IndicateChildWakeOnParentWake
Valore booleano che, se impostato su TRUE, indica che il framework fornirà lo stato di riattivazione ai dispositivi figlio se un dispositivo padre rileva un segnale di riattivazione. Per altre informazioni, vedere la sezione Osservazioni seguente. Questo membro è disponibile nella versione 1.7 e successive di KMDF.
Osservazioni:
La struttura WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS viene usata come input per WdfDeviceAssignSxWakeSettings.
Per inizializzare la struttura WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS, il driver deve chiamare WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS_INIT.
La prima volta che un driver chiama WdfDeviceAssignSxWakeSettings, si verificano le azioni seguenti:
- Il framework archivia i valori di tutti i membri della struttura WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS.
- Se il membro UserControlOfWakeSettings è impostato su WakeAllowUserControl e se il membro Abilitato è impostato su WdfUseDefault, il framework legge il Registro di sistema per scoprire se l'utente ha abilitato la riattivazione del sistema.
- Archivia il valore del membro UserControlOfWakeSettings.
- Cerca un'impostazione utente nel Registro di sistema, se il valore del membro abilitato è WdfUseDefault.
- Il valore non può essere PowerDeviceD0.
- Se si specifica PowerDeviceMaximum, il framework usa il valore fornito dal driver per il bus del dispositivo nel DeviceWake membro della relativa struttura di WDF_DEVICE_POWER_CAPABILITIES.
- Non è possibile specificare uno stato di alimentazione del dispositivo inferiore allo stato di alimentazione del dispositivo nel DeviceWake membro della struttura di WDF_DEVICE_POWER_CAPABILITIES del driver del bus. In altre parole, se il valore deviceWake del driver del bus è PowerDeviceD2, il valore DxState del driver di funzione non può essere PowerDeviceD3.
Se il dispositivo descritto dalla struttura WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS è un dispositivo padre, il driver per il dispositivo padre può usare i membri ArmForWakeIfChildrenAreArmedForWak e e IndicateChildWakeOnParentWake come segue:
-
Se il driver imposta il membro ArmForWakeIfChildrenAreArmedForWake su TRUE, il framework chiama la funzione di callback del driver EvtDeviceArmWakeFromSx o EvtDeviceArmWakeFromSxWithReason funzione di callback quando è abilitata la capacità di riattivazione di un dispositivo figlio, anche se la capacità di riattivazione del dispositivo padre non è abilitata.
Per ridurre il consumo di energia, potrebbe non essere necessario abilitare la capacità di riattivazione del dispositivo a meno che un dispositivo figlio che supporti anche una riattivazione sia collegato. Se il driver imposta il membro ArmForWakeIfChildrenAreArmedForWake su TRUE, i valori del membro enabled hanno i significati seguenti:
- Se abilitato è WdfFalse, il framework abilita la capacità di riattivazione del driver solo se è abilitata la capacità di riattivazione di un dispositivo figlio.
- Se Abilitato è WdfTrue, il framework abilita sempre la capacità di riattivazione del driver, indipendentemente dal fatto che il dispositivo disponga o meno di dispositivi figlio abilitati per la riattivazione.
- Se abilitato è WdfUseDefault e UserControlOfWakeSettings è WakeAllowUserControl, gli utenti possono controllare se il dispositivo è sempre abilitato per la riattivazione o se è abilitato solo quando il dispositivo dispone di dispositivi figlio abilitati per la riattivazione.
- Se il driver imposta il membro IndicateChildWakeOnParentWake su TRUE, il framework chiama il EvtDeviceWakeFromSxTriggered funzione di callback nel driver del dispositivo padre e nel driver per ogni dispositivo figlio abilitato alla riattivazione. Se il driver imposta questo membro su FALSE, il framework chiama il EvtDeviceWakeFromSxTriggered funzione di callback solo nel driver del dispositivo padre. Il driver deve impostare IndicateChildWakeOnParentWake su TRUE se i driver per i figli del dispositivo devono esaminare l'hardware per determinare il motivo per cui il sistema è stato risvegliato.
Requisiti
Requisito | Valore |
---|---|
versione minima di KMDF | 1.0 |
versione minima di UMDF | 2.0 |
intestazione | wdfdevice.h (include Wdf.h) |
Vedere anche
EvtDeviceArmWakeFromSxWithReason
WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS_INIT