Condividi tramite


PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK funzione di callback (wdm.h)

La routine di callback ComponentActiveConditionCallback notifica al driver che il componente specificato ha completato una transizione dalla condizione di inattività alla condizione attiva.

Sintassi

PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK PoFxComponentActiveConditionCallback;

void PoFxComponentActiveConditionCallback(
  [in] PVOID Context,
  [in] ULONG Component
)
{...}

Parametri

[in] Context

Puntatore al contesto di dispositivo. Il driver di dispositivo usa questo contesto per archiviare informazioni sullo stato di alimentazione corrente del dispositivo. Il driver di 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

Specifica l'indice che identifica il componente. Questo parametro è un indice nella matrice Components nella struttura PO_FX_DEVICE usata dal driver di dispositivo per registrare il dispositivo con PoFx. Se la matrice Components contiene N elementi, gli indici dei componenti sono compresi tra 0 e N-1.

Valore restituito

nessuno

Osservazioni

È possibile accedere ai registri hardware di un componente solo quando il componente si trova nella condizione attiva. Non fare affidamento 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 di inattività, il componente potrebbe passare a un altro stato Fx.

Per ottenere l'accesso a un componente che si trova nella condizione di inattività, il driver può chiamare la routine PoFxActivateComponent per passare il componente alla condizione attiva. Se il componente non è già presente nella condizione attiva quando viene chiamato PoFxActivateComponent, PoFx avvia la transizione alla condizione attiva e quindi chiama la routine ComponentActiveConditionCallback per notificare al driver al termine della transizione.

Il driver riceve un callback ComponentActiveConditionCallback ogni volta che il componente completa una transizione alla condizione attiva, indipendentemente dal fatto che il driver denominato PoFxActivateComponent avvii la transizione. Ad esempio, il kernel di Windows potrebbe attivare il componente per conto del driver prima di inviare un Plug and Play IRP o un IRP di alimentazione del sistema al driver.

Esempio

Per definire una routine di callback ComponentActiveConditionCallback , è innanzitutto necessario fornire 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 tramite i tipi di funzione di callback consente di analizzare il codice per i driver, l'SDV ( Static Driver Verifier ) e altri strumenti di verifica di trovare errori ed è un requisito per la scrittura di driver per il sistema operativo Windows.

Ad esempio, per definire una routine di callback ComponentActiveConditionCallback denominata MyComponentActiveConditionCallback, usare il tipo PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK come illustrato nell'esempio di codice seguente:

PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK MyComponentActiveConditionCallback;

Implementare quindi la routine di callback come indicato di seguito:

_Use_decl_annotations_
VOID
  MyComponentActiveConditionCallback(
    PVOID Context,
    ULONG Component
    )
  {
      // Function body
  }

Il tipo di funzione PO_FX_COMPONENT_ACTIVE_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 utilizzate le annotazioni applicate al tipo di funzione PO_FX_COMPONENT_ACTIVE_CONDITION_CALLBACK nel file di intestazione. Per altre informazioni sui requisiti per le dichiarazioni di funzione, vedere Dichiarazione di funzioni tramite tipi di ruolo di funzione 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.

Vedi anche

PO_FX_DEVICE

PoFxActivateComponent