Condividi tramite


PO_FX_POWER_CONTROL_CALLBACK funzione di callback (wdm.h)

La routine di callback di PowerControlCallback esegue un'operazione di controllo energia richiesta dal framework di gestione energia (PoFx).

Sintassi

PO_FX_POWER_CONTROL_CALLBACK PoFxPowerControlCallback;

NTSTATUS PoFxPowerControlCallback(
                  PVOID DeviceContext,
  [in]            LPCGUID PowerControlCode,
  [in, optional]  PVOID InBuffer,
  [in]            SIZE_T InBufferSize,
  [out, optional] PVOID OutBuffer,
  [in]            SIZE_T OutBufferSize,
  [out, optional] PSIZE_T BytesReturned
)
{...}

Parametri

DeviceContext

[in] PowerControlCode

Puntatore al codice di controllo dell'alimentazione. Questo codice è un valore GUID che specifica l'operazione richiesta.

[in, optional] InBuffer

Puntatore al buffer contenente i dati di input per l'operazione. Il formato per i dati in questo buffer dipende dal codice di controllo dell'alimentazione specificato dal parametro PowerControlCode . Il parametro InBuffer è facoltativo e può essere specificato come NULL se l'operazione specificata non richiede dati di input.

[in] InBufferSize

Dimensioni, in byte, del buffer di input a cui punta il parametro InBuffer . Se InBuffer è NULL, questo parametro è zero.

[out, optional] OutBuffer

Puntatore al buffer a cui la routine di callback scrive i dati di output dall'operazione. Il formato per i dati in questo buffer dipende dal codice di controllo dell'alimentazione specificato dal parametro PowerControlCode . Il parametro OutBuffer è facoltativo e può essere specificato come NULL se l'operazione specificata non produce dati di output.

[in] OutBufferSize

Dimensioni, in byte, del buffer di output a cui fa riferimento il parametro OutBuffer . Se OutBuffer è NULL, questo parametro è zero.

[out, optional] BytesReturned

Puntatore a una posizione in cui la routine scrive il numero di byte di dati scritti nel buffer a cui fa riferimento OutBuffer. Il numero di byte scritti deve essere minore o uguale a OutBufferSize. Questo parametro è facoltativo e può essere specificato come NULL se il chiamante non deve conoscere il numero di byte scritti nel buffer di output.

Valore restituito

La routine PowerControlCallback restituisce STATUS_SUCCESS se la chiamata ha esito positivo. In caso contrario, restituisce un codice di errore appropriato.

Commenti

PoFx chiama questa routine per inviare una richiesta di controllo energia direttamente al driver del dispositivo. Una richiesta di controllo alimentazione è simile a una richiesta di controllo I/O (IOCTL). A differenza di un IOCTL, tuttavia, una richiesta di controllo energia viene inviata direttamente al driver e non viene osservata da altri driver di dispositivo nello stack di dispositivi. Durante una chiamata di PowerControlCallback , il driver esegue in modo sincrono l'operazione richiesta.

Questa routine è facoltativa. Un driver di dispositivo che non supporta le operazioni di controllo energia non è necessario per implementare una routine di PowerControlCallback .

Il driver del dispositivo può chiamare la routine PoFxPowerControl per inviare una richiesta di controllo energia a PoFx.

Per altre informazioni sulle richieste di controllo energia, vedere PoFxPowerControl.

Esempio

Per definire una routine di callback di PowerControlCallback , è 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 powerControlCallback denominata MyPowerControlCallback, usare il tipo di PO_FX_POWER_CONTROL_CALLBACK, come illustrato in questo esempio di codice:

PO_FX_POWER_CONTROL_CALLBACK MyPowerControlCallback;

Implementare quindi la routine di callback come indicato di seguito:

_Use_decl_annotations_
NTSTATUS
  MyPowerControlCallback(
    PVOID Context,
    LPCGUID PowerControlCode,
    PVOID InBuffer,
    SIZE_T InBufferSize,
    PVOID OutBuffer,
    SIZE_T OutBufferSize,
    PSIZE_T BytesReturned
    )
  {
      // Function body
  }

Il tipo di funzione PO_FX_POWER_CONTROL_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_POWER_CONTROL_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.

Vedi anche

PO_FX_DEVICE

PoFxPowerControl