GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS funzione di callback (gpioclx.h)

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

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 del dispositivo del controller GPIO.

[in, out] ClearParameters

Puntatore a una struttura GPIO_CLEAR_ACTIVE_INTERRUPTS_PARAMETERS che, nella voce, descrive i pin di interruzione GPIO da cancellare e, all'uscita, contiene lo stato dell'operazione cancellata.

Valore restituito

La funzione CLIENT_ClearActiveInterrupts 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 controller di I/O (GPIO) per utilizzo generico. L'estensione del framework GPIO (GpioClx) chiama questa funzione per cancellare gli interruzioni attivi nei pin GPIO configurati come input della richiesta di interruzione.

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

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

GpioClx chiama la funzione di callbackCLIENT_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 una struttura CLIENT_CONTROLLER_BASIC_INFORMATION . Se il bit del flag MemoryMappedController è impostato nel membro Flags di questa struttura, GpioClx chiama la funzione CLIENT_ClearActiveInterrupts 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 Callback correlati all'interruzione.

Esempio

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 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_ClearActiveInterrupts denominata MyEvtGpioClearActiveInterrupts, usare il tipo di funzione GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS, come illustrato in questo esempio di codice:

GPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS MyEvtGpioClearActiveInterrupts;

Implementare quindi la funzione di callback come indicato di seguito:

_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 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_CLEAR_ACTIVE_INTERRUPTS 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

GPIO_CLEAR_ACTIVE_INTERRUPTS_PARAMETERS

GPIO_CLIENT_REGISTRATION_PACKET

GPIO_CLX_RegisterClient