GPIO_CLIENT_STOP_CONTROLLER funzione di callback (gpioclx.h)

La funzione di callback dell'evento CLIENT_StopController esegue operazioni necessarie per preparare il dispositivo controller di I/O (GPIO) per uscire dallo stato di alimentazione D0.

Sintassi

GPIO_CLIENT_STOP_CONTROLLER GpioClientStopController;

NTSTATUS GpioClientStopController(
  [in] PVOID Context,
  [in] BOOLEAN SaveContext,
  [in] WDF_POWER_DEVICE_STATE TargetState
)
{...}

Parametri

[in] Context

Puntatore al contesto del dispositivo del controller GPIO.

[in] SaveContext

Se il driver client deve salvare il contesto hardware corrente del dispositivo controller GPIO. Se TRUE, il contesto hardware deve essere salvato. Se FALSE, il contesto hardware non deve essere salvato. Per altre informazioni, vedere la sezione Osservazioni.

[in] TargetState

Stato di alimentazione del dispositivo di destinazione. Questo parametro è un valore di enumerazione WDF_POWER_DEVICE_STATE che specifica lo stato di bassa potenza che il dispositivo deve immettere quando esce dallo stato di alimentazione D0. Il driver del controller GPIO può usare queste informazioni per determinare come configurare il dispositivo controller prima che lasci D0.

Valore restituito

La funzione CLIENT_StopController 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 preparare il dispositivo controller GPIO da disattivare o per passare a uno stato a bassa potenza. Questa funzione di callback deve eseguire tutte le operazioni necessarie prima che il dispositivo entri in uno stato di bassa potenza, ad esempio il salvataggio di informazioni necessarie al driver in seguito al ripristino dello stato di alimentazione D0 del dispositivo.

In genere, la funzione di callback CLIENT_StopController configura i pin GPIO a uno stato iniziale specifico della piattaforma. Ad esempio, questa funzione potrebbe configurare tutti i pin GPIO come input per impedire che si verifichino temporanei di output quando il dispositivo controller GPIO è disattivato.

Per registrare la funzione di callback del driver CLIENT_StopController , 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 alla funzione CLIENT_StopController .

Anche se la funzione di callback CLIENT_StopController viene chiamata in IRQL = PASSIVE_LEVEL , non è consigliabile rendere questa funzione paginabile. Il callback CLIENT_StopController si trova nel percorso di tempo critico per il ripristino dell'alimentazione ai 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_StopController , è prima necessario specificare 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 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 funzione di callback CLIENT_StopController denominata MyEvtGpioStopController, usare il tipo di funzione GPIO_CLIENT_STOP_CONTROLLER, come illustrato nell'esempio di codice seguente:

GPIO_CLIENT_STOP_CONTROLLER  MyEvtGpioStopController;

Implementare quindi la funzione di callback come indicato di seguito:

_Use_decl_annotations_
VOID
  MyEvtGpioStopController(
    PVOID Context,
    BOOLEAN RestoreContext,
    WDF_POWER_DEVICE_STATE TargetState
    )
{ ... }

Il tipo di funzione GPIO_CLIENT_STOP_CONTROLLER è definito nel file di intestazione Gpioclx.h. Per identificare in modo più accurato gli errori durante l'esecuzione degli 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 GPIO_CLIENT_STOP_CONTROLLER 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 KMDF. Per altre 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 gpioclx.h
IRQL Chiamato in PASSIVE_LEVEL.

Vedi anche

GPIO_CLIENT_REGISTRATION_PACKET

GPIO_CLX_RegisterClient