Condividi tramite


GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS funzione di callback (gpioclx.h)

La funzione di callback dell'evento CLIENT_ClearActiveInterrupts cancella gli interrupt attivi su un set di pin di I/O per utilizzo generico (GPIO) configurati come input di interrupt.

Sintassi

GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS GpioClientClearActiveInterrupts;

NTSTATUS GpioClientClearActiveInterrupts(
  [in]      PVOID Context,
  [in, out] PGPIO_CLEAR_ACTIVE_INTERRUPTS_PARAMETERS ClearParameters
)
{...}

Parametri

[in] Context

Puntatore al contesto di dispositivo del driver del controller GPIO .

[in, out] ClearParameters

Puntatore a una struttura GPIO_CLEAR_ACTIVE_INTERRUPTS_PARAMETERS che, all'ingresso, descrive i pin di interrupt GPIO da cancellare e, all'uscita, contiene lo stato dell'operazione di cancellazione.

Valore restituito

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

Osservazioni:

Questa funzione di callback viene implementata dal driver del controller di I/O per utilizzo generico (GPIO). L'estensione del framework GPIO (GpioClx) chiama questa funzione per cancellare gli interrupt attivi nei pin GPIO configurati come input di richiesta di interrupt.

Questa funzione di callback è facoltativa. Se l'hardware del controller GPIO cancella automaticamente i bit di stato di interrupt attivi quando vengono letti, il driver non deve registrare una funzione di callback CLIENT_ClearActiveInterrupts. Per altre informazioni, vedere Funzioni di callback facoltative e necessarie per GPIO.

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

GpioClx chiama la funzione di callback CLIENT_ClearActiveInterrupts 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 struttura CLIENT_CONTROLLER_BASIC_INFORMATION. Se il bit del flag memoryMappedController è impostato nel membro Flag di questa struttura, GpioClx chiama la funzione CLIENT_ClearActiveInterrupts in DIRQL, ovvero il runtime di integrazione in cui 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 Interrupt-Related Callback.

Esempi

Per definire una funzione di callback CLIENT_ClearActiveInterrupts, è prima 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 usando i tipi di funzione di callback consente di l'analisi del codice per i driver, del driver statico (SDV) e altri strumenti di verifica rilevano errori ed è un requisito per la scrittura di driver per il sistema operativo Windows.

Ad esempio, per definire una funzione di callback CLIENT_ClearActiveInterrupts denominata MyEvtGpioClearActiveInterrupts, usare il tipo di funzione GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS, come illustrato nell'esempio di codice seguente:

GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS MyEvtGpioClearActiveInterrupts;

Implementare quindi la funzione di callback come segue:

_Use_decl_annotations_
NTSTATUS
  MyEvtGpioClearActiveInterrupts(
    PVOID Context,
    PGPIO_CLEAR_ACTIVE_INTERRUPTS_PARAMETERS ClearParameters
    )
{ ... }

Il tipo di funzione GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS è 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_CLEAR_ACTIVE_INTERRUPTS nel file di intestazione. Per altre informazioni sui requisiti per le dichiarazioni di funzione, vedere Dichiarazione di funzioni tramite i tipi di ruolo della funzione per i driver KMDF. Per altre informazioni su Use_decl_annotations, vedere l'annotazione del comportamento della funzione.

Requisiti

Requisito Valore
Client minimo supportato Supportato a partire da Windows 8.
Piattaforma di destinazione Schermo
intestazione gpioclx.h
IRQL Vedere la sezione Osservazioni.

Vedere anche

CLIENT_CONTROLLER_BASIC_INFORMATION

CLIENT_QueryControllerBasicInformation

GPIO_CLEAR_ACTIVE_INTERRUPTS_PARAMETERS

GPIO_CLIENT_REGISTRATION_PACKET

GPIO_CLX_RegisterClient