GPIO_CLIENT_RESTORE_BANK_HARDWARE_CONTEXT funzione di callback (gpioclx.h)

La funzione di callback degli eventi CLIENT_RestoreBankHardwareContext ripristina il contesto hardware di una banca di pin di I/O (GPIO) per utilizzo generico.

Sintassi

GPIO_CLIENT_RESTORE_BANK_HARDWARE_CONTEXT GpioClientRestoreBankHardwareContext;

void GpioClientRestoreBankHardwareContext(
  [in] PVOID Context,
  [in] PGPIO_SAVE_RESTORE_BANK_HARDWARE_CONTEXT_PARAMETERS Parameters
)
{...}

Parametri

[in] Context

Puntatore al contesto del dispositivo del controller GPIO.

[in] Parameters

Puntatore a una struttura GPIO_SAVE_RESTORE_BANK_HARDWARE_CONTEXT_PARAMETERS che descrive la banca dei pin GPIO da ripristinare.

Valore restituito

nessuno

Osservazioni

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

Se una banca di pin GPIO supporta la gestione della potenza a livello di componente, GpioClx può passare la banca a uno stato fx a bassa potenza se la banca è inattiva. Se la banca del controller GPIO perde il proprio contesto hardware nello stato Fx, il driver del controller GPIO deve salvare questo contesto prima della transizione F0-to-Fx e, in seguito, ripristinare il contesto dopo la transizione fx-to-F0. Attualmente, F1 è l'unico stato a bassa potenza definito per i controller GPIO che usano GpioClx.

GpioClx chiama la funzione CLIENT_RestoreBankHardwareContext per ripristinare il contesto hardware salvato in precedenza dalla banca. Il contesto hardware è stato salvato in precedenza dalla funzione di callback degli eventi CLIENT_SaveBankHardwareContext .

Alcuni dispositivi controller GPIO consentono di attivare e disattivare le banche selezionate di pin in modo indipendente da altre banche nello stesso dispositivo. Pertanto, la potenza può essere salvata disattivando una banca inattiva.

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

GpioClx chiama la funzione di callbackCLIENT_RestoreBankHardwareContext in PASSIVE_LEVEL o DIRQL, a seconda delle informazioni sul dispositivo fornite dalla funzione di callback CLIENT_QueryControllerBasicInformation a GpioClx. La funzione CLIENT_QueryControllerBasicInformation fornisce informazioni sul dispositivo sotto forma di una struttura CLIENT_CONTROLLER_BASIC_INFORMATION . Se il bit del flag MemoryMappedController è impostato nel membro Flag di questa struttura, GpioClx chiama la funzione CLIENT_RestoreBankHardwareContext in DIRQL, ovvero irQL in corrispondenza del quale viene eseguito l'ISR in GpioClx. In caso contrario, questa funzione viene chiamata in PASSIVE_LEVEL. Per altre informazioni su questo bit di flag, vedere Funzioni di callback facoltativo e obbligatorio per GPIO.

Esempio

Per definire una funzione di callback CLIENT_RestoreBankHardwareContext , è 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_RestoreBankHardwareContext denominata MyEvtGpioRestoreBankHardwareContext, usare il tipo di funzione GPIO_CLIENT_RESTORE_BANK_HARDWARE_CONTEXT, come illustrato nell'esempio di codice seguente:

GPIO_CLIENT_RESTORE_BANK_HARDWARE_CONTEXT MyEvtGpioRestoreBankHardwareContext;</pre>

Implementare quindi la funzione di callback come indicato di seguito:

_Use_decl_annotations_
NTSTATUS
  MyEvtGpioRestoreBankHardwareContext(
    PVOID Context,
    PGPIO_SAVE_RESTORE_BANK_HARDWARE_CONTEXT_PARAMETERS Parameters
    )
{ ... }

Il tipo di funzione GPIO_CLIENT_RESTORE_BANK_HARDWARE_CONTEXT è 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_RESTORE_BANK_HARDWARE_CONTEXT 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 Vedere la sezione Osservazioni.

Vedi anche

CLIENT_CONTROLLER_BASIC_INFORMATION

CLIENT_QueryControllerBasicInformation

CLIENT_SaveBankHardwareContext

GPIO_CLIENT_REGISTRATION_PACKET

GPIO_CLX_RegisterClient

GPIO_SAVE_RESTORE_BANK_HARDWARE_CONTEXT_PARAMETERS