PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK funzione di callback (wdm.h)
La routine di callback ComponentIdleConditionCallback notifica al driver che il componente specificato ha completato una transizione dalla condizione attiva alla condizione inattiva.
Sintassi
PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK PoFxComponentIdleConditionCallback;
void PoFxComponentIdleConditionCallback(
[in] PVOID Context,
[in] ULONG Component
)
{...}
Parametri
[in] Context
Puntatore al contesto del dispositivo. Il driver del dispositivo usa questo contesto per archiviare informazioni sullo stato corrente del dispositivo. Il driver del dispositivo ha specificato questo puntatore nel membro DeviceContext della struttura PO_FX_DEVICE usata dal driver per registrare il dispositivo con il framework di risparmio energia (PoFx). Questo contesto è opaco a PoFx.
[in] Component
Indice che identifica il componente. Questo parametro è un indice nella matrice Components nella struttura PO_FX_DEVICE utilizzata dal driver del dispositivo per registrare il dispositivo con PoFx. Se la matrice Components contiene elementi N, gli indici dei componenti sono compresi tra 0 e N-1.
Valore restituito
nessuno
Osservazioni
Quando il driver non deve più accedere a un componente presente nella condizione attiva, il driver deve chiamare la routine PoFxIdleComponent per passare il componente alla condizione inattiva. In risposta alla chiamata PoFxIdleComponent, PoFx avvia la transizione alla condizione inattiva e quindi chiama la routine ComponentIdleConditionCallback per notificare al driver il completamento della transizione.
Il driver deve chiamare PoFxCompleteIdleCondition in risposta a ogni callback ComponentIdleConditionCallback . La chiamata PoFxCompleteIdleCondition può verificarsi durante il callback ComponentIdleConditionCallback o dopo il callback. Il driver deve completare qualsiasi lavoro che richiede l'accesso al componente hardware prima della chiamata a PoFxCompleteIdleCondition. Dopo questa chiamata, il componente potrebbe non rimanere nello stato di alimentazione F0.
Un componente può essere accessibile in modo sicuro solo quando il componente si trova nella condizione attiva. Non basarsi sullo stato di alimentazione Fx di un componente per determinare se è possibile accedere al componente. Se il componente si trova nello stato F0 e si trova nella condizione inattiva, il componente potrebbe passare a un altro stato Fx.
Esempio
Per definire una routine di callback ComponentIdleConditionCallback , è prima necessario specificare una dichiarazione di funzione che identifica il tipo di routine di callback che si sta definendo. Windows fornisce un set di tipi di funzione di callback per i driver. La dichiarazione di una funzione usando i tipi di funzione callback consente l'analisi del codice per i driver, il verifica driver statico (SDV) e altri strumenti di verifica trovano errori ed è un requisito per la scrittura di driver per il sistema operativo Windows.
Ad esempio, per definire una routine di callback ComponentIdleConditionCallback denominata MyComponentIdleConditionCallback
, usare il tipo di PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK come illustrato in questo esempio di codice:
PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK MyComponentIdleConditionCallback;
Implementare quindi la routine di callback come indicato di seguito:
_Use_decl_annotations_
VOID
MyComponentIdleConditionCallback(
PVOID Context,
ULONG Component
)
{
// Function body
}
Il tipo di funzione PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK è definito nel file di intestazione Wdm.h. Per identificare in modo più accurato gli errori quando si eseguono gli strumenti di analisi del codice, assicurarsi di aggiungere l'annotazione _Use_decl_annotations_
alla definizione della funzione. L'annotazione _Use_decl_annotations_
garantisce che vengano usate le annotazioni applicate al tipo di funzione PO_FX_COMPONENT_IDLE_CONDITION_CALLBACK nel file di intestazione. Per altre informazioni sui requisiti per le dichiarazioni di funzione, vedere Dichiarazione di funzioni tramite tipi di ruolo per i driver WDM. Per informazioni su _Use_decl_annotations_
, vedere Annotazione del comportamento della funzione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato a partire da Windows 8. |
Piattaforma di destinazione | Desktop |
Intestazione | wdm.h (include Wudfwdm.h) |
IRQL | Chiamato in IRQL <= DISPATCH_LEVEL. |