GPIO_CLIENT_START_CONTROLLER funzione di callback (gpioclx.h)

La funzione di callback degli eventi CLIENT_StartController esegue operazioni necessarie quando il dispositivo controller GPIO (General-Purpose I/O) entra nello stato di alimentazione D0.

Sintassi

GPIO_CLIENT_START_CONTROLLER GpioClientStartController;

NTSTATUS GpioClientStartController(
  [in] PVOID Context,
  [in] BOOLEAN RestoreContext,
  [in] WDF_POWER_DEVICE_STATE PreviousPowerState
)
{...}

Parametri

[in] Context

Puntatore al contesto di dispositivo del driver del controller GPIO.

[in] RestoreContext

Indica se il driver client deve ripristinare il controller GPIO in un contesto hardware salvato in precedenza. Se TRUE, il contesto hardware deve essere ripristinato. Se FALSE, il contesto hardware non deve essere ripristinato. Per altre informazioni, vedere la sezione Osservazioni.

[in] PreviousPowerState

Stato di alimentazione del dispositivo precedente. Questo parametro è un valore di enumerazione WDF_POWER_DEVICE_STATE che specifica lo stato di bassa potenza da cui il dispositivo ha immesso lo stato di alimentazione D0. Il driver del controller GPIO può usare queste informazioni per determinare come configurare il dispositivo controller in modo che sia pronto per l'uso.

Valore restituito

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

Commenti

Questa funzione di callback viene implementata dal driver del controller GPIO. L'estensione del framework GPIO (GpioClx) chiama questa funzione per posizionare il dispositivo controller GPIO in uno stato iniziale noto all'avvio del sistema o quando il dispositivo passa da uno stato a basso consumo a uno stato di lavoro. Questa funzione di callback deve eseguire tutte le operazioni necessarie dopo la riattivazione del dispositivo da uno stato a basso consumo, ad esempio il ripristino di tutte le informazioni necessarie al driver dopo che il dispositivo entra nello stato di alimentazione D0.

In genere, una funzione di callback CLIENT_StartController imposta tutti i pin GPIO sullo stato predefinito.

Per registrare la funzione di callback del driver CLIENT_StartController , chiamare il metodo GPIO_CLX_RegisterClient . Questo metodo accetta, come parametro di input, un puntatore a una struttura GPIO_CLIENT_REGISTRATION_PACKET che contiene un puntatore a funzione CLIENT_StartController .

Anche se la funzione di callback CLIENT_StartController viene chiamata in IRQL = PASSIVE_LEVEL, non è consigliabile rendere questa funzione paginabile. Il callback CLIENT_StartController è nel percorso di temporizzazione critico per il ripristino dell'alimentazione nei dispositivi nella piattaforma hardware e, per motivi di prestazioni, non deve essere ritardato da errori di pagina.

Esempio

Per definire una funzione di callback CLIENT_StartController, è innanzitutto necessario fornire una dichiarazione di funzione che identifica il tipo di funzione 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 funzione di callback CLIENT_StartController denominata MyEvtGpioStartController, usare il tipo di funzione GPIO_CLIENT_START_CONTROLLER, come illustrato nell'esempio di codice seguente:

GPIO_CLIENT_START_CONTROLLER MyEvtGpioStartController;

Implementare quindi la funzione di callback come indicato di seguito:

_Use_decl_annotations_
VOID
  MyEvtGpioStartController(
    PVOID Context,
    BOOLEAN RestoreContext,
    WDF_POWER_DEVICE_STATE PreviousPowerState
    )
{ ... }

Il tipo di funzione GPIO_CLIENT_START_CONTROLLER è definito nel file di intestazione Gpioclx.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 assicura che vengano utilizzate le annotazioni applicate al tipo di funzione GPIO_CLIENT_START_CONTROLLER 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 KMDF. Per altre informazioni sulle 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 gpioclx.h
IRQL Chiamato a PASSIVE_LEVEL (vedere la sezione Osservazioni).

Vedi anche

GPIO_CLIENT_REGISTRATION_PACKET

GPIO_CLX_RegisterClient