Contesti del dispositivo GPIO

Un dispositivo controller di I/O (GPIO) per utilizzo generico è rappresentato da un oggetto dispositivo framework. Il driver del controller GPIO può associare un contesto di dispositivo a questo oggetto dispositivo. Il driver usa questo contesto del dispositivo per archiviare in modo permanente le informazioni sullo stato del dispositivo controller GPIO.

Quando l'estensione del framework GPIO (GpioClx) chiama una funzione di callback evento implementata dal driver, GpioClx passa il contesto del dispositivo a questa funzione come parametro. La funzione di callback esamina il contesto del dispositivo per determinare lo stato corrente del dispositivo. Se la funzione modifica questo stato, aggiorna di conseguenza il contesto del dispositivo.

GpioClx alloca l'archiviazione per un oggetto dispositivo. Se un driver controller GPIO ha più di un oggetto dispositivo, il contesto del dispositivo per ognuno di questi oggetti è la stessa dimensione. Durante la routine DriverEntry , il driver chiama il metodo GPIO_CLX_RegisterClient per registrare le funzioni di callback e per specificare le dimensioni del contesto del dispositivo necessarie. Successivamente, durante la routine EvtDriverDeviceAdd callback, il driver chiama il metodo GPIO_CLX_ProcessAddDevicePostDeviceCreate per passare il nuovo oggetto dispositivo a GpioClx e GpioClx alloca il contesto del dispositivo per questo oggetto. Successivamente, quando GpioClx chiama una funzione di callback implementata dal driver, questo contesto del dispositivo viene passato alla funzione come parametro.