struttura WDF_POWER_FRAMEWORK_SETTINGS (wdfdevice.h)
[Si applica a KMDF e UMDF]
La struttura WDF_POWER_FRAMEWORK_SETTINGS descrive le impostazioni del framework di risparmio energia (PoFx) per i dispositivi a singolo componente.
Sintassi
typedef struct _WDF_POWER_FRAMEWORK_SETTINGS {
ULONG Size;
PFN_WDFDEVICE_WDM_POST_PO_FX_REGISTER_DEVICE EvtDeviceWdmPostPoFxRegisterDevice;
PFN_WDFDEVICE_WDM_PRE_PO_FX_UNREGISTER_DEVICE EvtDeviceWdmPrePoFxUnregisterDevice;
PPO_FX_COMPONENT Component;
PPO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK ComponentActiveConditionCallback;
PPO_FX_COMPONENT_IDLE_CONDITION_CALLBACK ComponentIdleConditionCallback;
PPO_FX_COMPONENT_IDLE_STATE_CALLBACK ComponentIdleStateCallback;
PPO_FX_POWER_CONTROL_CALLBACK PowerControlCallback;
PVOID PoFxDeviceContext;
ULONGLONG PoFxDeviceFlags;
WDF_TRI_STATE DirectedPoFxEnabled;
} WDF_POWER_FRAMEWORK_SETTINGS, *PWDF_POWER_FRAMEWORK_SETTINGS;
Members
Size
Dimensione, in byte, della struttura.
EvtDeviceWdmPostPoFxRegisterDevice
Puntatore alla funzione di callback dell'evento EvtDeviceWdmPostPoFxRegisterDevice del driver o NULL.
EvtDeviceWdmPrePoFxUnregisterDevice
Puntatore alla funzione di callback dell'evento EvtDeviceWdmPrePoFxUnregisterDevice del driver o NULL.
Component
Puntatore a una struttura PO_FX_COMPONENT che descrive l'unico componente nel dispositivo a singolo componente o NULL. Se NULL, il valore predefinito di KMDF è F0 supportato solo per questo componente. Questa struttura specifica il numero e gli attributi degli stati F supportati dal componente, nonché lo stato fx più profondo da cui il componente può risvegliarsi.
ComponentActiveConditionCallback
Puntatore alla routine di callback ComponentActiveConditionCallback del driver o NULL. Il framework di risparmio energia (PoFx) chiama questa funzione di callback quando un componente diventa attivo. Mentre nella condizione Attiva, il componente è garantito che sia in F0.
ComponentIdleConditionCallback
Puntatore alla funzione di callback ComponentIdleConditionCallback del driver o NULL. PoFx chiama questa funzione di callback quando un componente diventa inattivo. Nella condizione di inattività, il componente può trovarsi in qualsiasi stato F, incluso F0.
ComponentIdleStateCallback
Puntatore alla funzione di callback ComponentIdleStateCallback del driver o NULL. PoFx chiama questa funzione di callback quando cambia lo stato F del componente.
PowerControlCallback
Puntatore alla funzione di callback PowerControlCallback del driver client o NULL. PoFx chiama questa routine per passare una richiesta per un'operazione di controllo alimentazione direttamente al driver. Se il driver non supporta codici di controllo alimentazione, impostare questo parametro su NULL.
PoFxDeviceContext
Puntatore di contesto fornito dal framework a ComponentActiveConditionCallback, ComponentIdleConditionCallback, ComponentIdleStateCallback e PowerControlCallback.
PoFxDeviceFlags
Valore di tipo ULONGLONG contenente l'OR bit per bit dei valori seguenti correlati a Directed Power Management Framework. Questo campo è disponibile a partire da KMDF versione 1.33 e UMDF 2.33.
PO_FX_DEVICE_FLAG_DFX_CHILDREN_OPTIONAL
Quando Power Framework diretto ("DFx") è abilitato in un dispositivo, in genere i dispositivi figlio abilitano anche DFx. In alcuni casi, ad esempio un dispositivo software puro, un dispositivo figlio non implementa il risparmio energia. Impostare questo flag per consentire a un dispositivo figlio di ignorare DFx.
Per impostare questo flag per conto dei dispositivi figlio, il driver WDF padre deve:
- Acconsentire esplicitamente a DFx
- Non essere un autista di autobus
- Avere almeno un dispositivo figlio virtuale creato tramite un canale di banda laterale ,ad esempio un filtro superiore o un dispositivo creato chiamando SwDeviceCreate
Per i driver destinati a WDF pre-v33, specificare invece la direttiva INF: WdfDirectedPowerTransitionChildrenOptional, disponibile a partire da Windows 10, versione 1903. Se il driver specifica la direttiva INF e imposta questo flag, la direttiva INF ha la precedenza.
PO_FX_DEVICE_FLAG_DISABLE_FAST_RESUME
Questa operazione è necessaria per implementare IRP_MN_QUERY_DEVICE_RELATIONS/PowerRelations tra due dispositivi.
Per impostazione predefinita, WDF implementa una ripresa rapida, il che significa che durante la riattivazione del sistema, il proprietario dei criteri di alimentazione in uno stack di dispositivi completa un provider di risorse S0 senza attendere la richiesta e completare una richiesta D0-IRP. Questo non funziona correttamente con PowerRelations.
Per fare in modo che PowerRelations funzioni correttamente, se un dispositivo dipende da un altro dispositivo per immettere prima D0, il secondo dispositivo deve impostare questo flag per rifiutare esplicitamente la ripresa rapida.
In alcuni casi, i criteri globali possono disabilitare la ripresa rapida a livello globale anche se questo flag non è impostato.
DirectedPoFxEnabled
Enumeratore tipizzato WDF_TRI_STATE che indica se il dispositivo abilita Directed Power Management Framework (DFx). Disponibile a partire dalla versione 1.33 e UMDF 2.33 di KMDF.
WdfTrue : DFx è abilitato. WdfFalse : DFx è disabilitato. WdfUseDefault : valore predefinito se il driver non ne imposta uno. Questo valore ha lo stesso significato di WdfTrue.
Directed PoFx (DFx) è disponibile a partire da Windows 10 versione 1903 come opzione per i driver che usano SystemManagedIdleTimeout o SystemManagedIdleTimeoutWithHint.
- Per un driver destinato alla versione precedente alla versione 31 WDF, impostare la direttiva INF WdfDirectedPowerTransitionEnable su 1 per acconsentire esplicitamente a DFx.
- Per un driver destinato a V31+ WDF, DFx è abilitato per impostazione predefinita. Il driver può impostare WdfDirectedPowerTransitionEnable su zero per rifiutare esplicitamente DFx.
- Per un driver destinato a V33+ WDF, DFx è abilitato anche per impostazione predefinita. Il driver può impostare WdfDirectedPowerTransitionEnable su zero o impostare questo campo su WdfFalse (scelta consigliata) per rifiutare esplicitamente DFx. Se entrambi sono impostati, la direttiva INF ha la precedenza.
Commenti
La struttura WDF_POWER_FRAMEWORK_SETTINGS viene usata un input per WdfDeviceWdmAssignPowerFrameworkSettings.
Per inizializzare la struttura WDF_POWER_FRAMEWORK_SETTINGS , il driver deve chiamare WDF_POWER_FRAMEWORK_SETTINGS_INIT.
Per UMDF vengono usati solo Size, PoFxDeviceFlags e DirectedPoFxEnabled . Gli altri campi vengono ignorati e devono essere impostati su zero. Il framework esegue questa operazione automaticamente quando un driver UMDF chiama WDF_POWER_FRAMEWORK_SETTINGS_INIT.
Per altre informazioni, vedere Supporto degli stati di risparmio energia funzionale e Panoramica di Power Management Framework.
Questa struttura non è applicabile ai driver client KMDF per dispositivi a più componenti.
Requisiti
Requisito | Valore |
---|---|
Versione KMDF minima | 1.11 |
Versione UMDF minima | 2.33 |
Intestazione | wdfdevice.h (include Wdf.h) |
Vedi anche
EvtDeviceWdmPostPoFxRegisterDevice
EvtDeviceWdmPrePoFxUnregisterDevice