GPIO_CLIENT_READ_PINS funzione di callback (gpioclx.h)
La funzione di callback degli eventi CLIENT_ReadGpioPins legge un set di pin di I/O (GPIO) per utilizzo generico configurati come input di dati.
Sintassi
GPIO_CLIENT_READ_PINS GpioClientReadPins;
NTSTATUS GpioClientReadPins(
[in] PVOID Context,
[in, out] PGPIO_READ_PINS_PARAMETERS ReadParameters
)
{...}
Parametri
[in] Context
Puntatore al contesto di dispositivo del driver del controller GPIO .
[in, out] ReadParameters
Puntatore a una struttura GPIO_READ_PINS_PARAMETERS che, all'ingresso, descrive i pin GPIO da leggere e, all'uscita, contiene i dati letti dai pin GPIO.
Valore restituito
La funzione CLIENT_ReadGpioPins 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 GPIO. GpioClx chiama questa funzione.
Tutti i pin nella matrice PinNumberTable appartengono alla banca identificata dal parametro BankId.
Per registrare la funzione di callback CLIENT_ReadGpioPins 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_ReadGpioPins.
La funzione CLIENT_ReadGpioPins può essere chiamata dalla routine del servizio interrupt (ISR) in GpioClx. Questo ISR viene eseguito 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 ISR viene eseguito in DIRQL e chiama la funzione CLIENT_ReadGpioPins in DIRQL. In caso contrario, l'ISR viene eseguito in PASSIVE_LEVEL e chiama la funzione in PASSIVE_LEVEL. Per altre informazioni su questo bit di flag, vedere Funzioni di callback GPIO facoltative e obbligatorie.
Esempi
Per definire una funzione di callback CLIENT_ReadGpioPins, è 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
Ad esempio, per definire una funzione di callback CLIENT_ReadGpioPins denominata MyEvtGpioReadGpioPins
, usare il tipo di funzione GPIO_CLIENT_READ_PINS, come illustrato in questo esempio di codice:
GPIO_CLIENT_READ_PINS MyEvtGpioReadPins;
Implementare quindi la funzione di callback come segue:
_Use_decl_annotations_
NTSTATUS
MyEvtGpioReadPins(
PVOID Context,
PGPIO_READ_PINS_PARAMETERS ReadParameters
)
{ ... }
Il tipo di funzione GPIO_CLIENT_READ_PINS è 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_READ_PINS 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