struttura GPIO_CLIENT_REGISTRATION_PACKET (gpioclx.h)
La struttura GPIO_CLIENT_REGISTRATION_PACKET contiene informazioni di registrazione che il driver del controller GPIO (General Purpose I/O) passa all'estensione del framework GPIO (GpioClx).
Sintassi
typedef struct _GPIO_CLIENT_REGISTRATION_PACKET {
USHORT Version;
USHORT Size;
ULONG Flags;
ULONG ControllerContextSize;
ULONG64 Reserved;
PGPIO_CLIENT_PREPARE_CONTROLLER CLIENT_PrepareController;
PGPIO_CLIENT_RELEASE_CONTROLLER CLIENT_ReleaseController;
PGPIO_CLIENT_START_CONTROLLER CLIENT_StartController;
PGPIO_CLIENT_STOP_CONTROLLER CLIENT_StopController;
PGPIO_CLIENT_QUERY_CONTROLLER_BASIC_INFORMATION CLIENT_QueryControllerBasicInformation;
PGPIO_CLIENT_QUERY_SET_CONTROLLER_INFORMATION CLIENT_QuerySetControllerInformation;
PGPIO_CLIENT_ENABLE_INTERRUPT CLIENT_EnableInterrupt;
PGPIO_CLIENT_DISABLE_INTERRUPT CLIENT_DisableInterrupt;
PGPIO_CLIENT_UNMASK_INTERRUPT CLIENT_UnmaskInterrupt;
PGPIO_CLIENT_MASK_INTERRUPTS CLIENT_MaskInterrupts;
PGPIO_CLIENT_QUERY_ACTIVE_INTERRUPTS CLIENT_QueryActiveInterrupts;
PGPIO_CLIENT_CLEAR_ACTIVE_INTERRUPTS CLIENT_ClearActiveInterrupts;
PGPIO_CLIENT_CONNECT_IO_PINS CLIENT_ConnectIoPins;
PGPIO_CLIENT_DISCONNECT_IO_PINS CLIENT_DisconnectIoPins;
union {
PGPIO_CLIENT_READ_PINS CLIENT_ReadGpioPins;
PGPIO_CLIENT_READ_PINS_MASK CLIENT_ReadGpioPinsUsingMask;
};
union {
PGPIO_CLIENT_WRITE_PINS CLIENT_WriteGpioPins;
PGPIO_CLIENT_WRITE_PINS_MASK CLIENT_WriteGpioPinsUsingMask;
};
PGPIO_CLIENT_SAVE_BANK_HARDWARE_CONTEXT CLIENT_SaveBankHardwareContext;
PGPIO_CLIENT_RESTORE_BANK_HARDWARE_CONTEXT CLIENT_RestoreBankHardwareContext;
PGPIO_CLIENT_PRE_PROCESS_CONTROLLER_INTERRUPT CLIENT_PreProcessControllerInterrupt;
PGPIO_CLIENT_CONTROLLER_SPECIFIC_FUNCTION CLIENT_ControllerSpecificFunction;
PGPIO_CLIENT_RECONFIGURE_INTERRUPT CLIENT_ReconfigureInterrupt;
PGPIO_CLIENT_QUERY_ENABLED_INTERRUPTS CLIENT_QueryEnabledInterrupts;
PGPIO_CLIENT_CONNECT_FUNCTION_CONFIG_PINS CLIENT_ConnectFunctionConfigPins;
PGPIO_CLIENT_DISCONNECT_FUNCTION_CONFIG_PINS CLIENT_DisconnectFunctionConfigPins;
} GPIO_CLIENT_REGISTRATION_PACKET, *PGPIO_CLIENT_REGISTRATION_PACKET;
Members
Version
Numero di versione per l'interfaccia GPIO supportata dal driver del controller GPIO. Impostare questo membro sul valore GPIO_CLIENT_VERSION, definito nel file di intestazione Gpioclx.h.
Size
Dimensione, in byte, della struttura. Impostare questo membro su sizeof(GPIO_CLIENT_REGISTRATION_PACKET).
Flags
Set di flag che indicano le opzioni di registrazione selezionate. Non sono attualmente definiti flag per le opzioni di registrazione. Impostare questo membro su zero.
ControllerContextSize
Dimensioni del contesto di dispositivo necessarie, in byte. Il metodo GPIO_CLX_RegisterClient alloca un contesto di dispositivo di queste dimensioni. Quando GpioClx chiama qualsiasi funzione di callback registrata nella struttura GPIO_CLIENT_REGISTRATION_PACKET , GpioClx passa questo contesto di dispositivo alla funzione di callback come parametro. Le funzioni di callback usano questo contesto per accedere e aggiornare le informazioni del driver sullo stato del dispositivo controller GPIO. Per altre informazioni, vedere Contesti di dispositivo GPIO.
Reserved
Riservato per utilizzi futuri. Impostare questo membro su zero.
CLIENT_PrepareController
Puntatore alla funzione di callback dell'evento di CLIENT_PrepareController del driver del controller GPIO.
CLIENT_ReleaseController
Puntatore alla funzione di callback dell'evento di CLIENT_ReleaseController del driver del controller GPIO.
CLIENT_StartController
Puntatore alla funzione di callback dell'evento di CLIENT_StartController del driver del controller GPIO.
CLIENT_StopController
Puntatore alla funzione di callback dell'evento di CLIENT_StopController del driver del controller GPIO.
CLIENT_QueryControllerBasicInformation
Puntatore alla funzione di callback dell'evento di CLIENT_QueryControllerBasicInformation del driver del controller GPIO.
CLIENT_QuerySetControllerInformation
Puntatore alla funzione di callback dell'evento di CLIENT_QuerySetControllerInformation del driver del controller GPIO.
CLIENT_EnableInterrupt
Puntatore alla funzione di callback dell'evento di CLIENT_EnableInterrupt del driver del controller GPIO.
CLIENT_DisableInterrupt
Puntatore alla funzione di callback degli eventi del driver del controller GPIO CLIENT_DisableInterrupt .
CLIENT_UnmaskInterrupt
Puntatore alla funzione di callback dell'evento di CLIENT_UnmaskInterrupt del driver del controller GPIO.
CLIENT_MaskInterrupts
Puntatore alla funzione di callback dell'evento di CLIENT_MaskInterrupts del driver del controller GPIO.
CLIENT_QueryActiveInterrupts
Puntatore alla funzione di callback dell'evento di CLIENT_QueryActiveInterrupts del driver del controller GPIO.
CLIENT_ClearActiveInterrupts
Puntatore alla funzione di callback dell'evento di CLIENT_ClearActiveInterrupts del driver del controller GPIO.
CLIENT_ConnectIoPins
Puntatore alla funzione di callback dell'evento di CLIENT_ConnectIoPins del driver del controller GPIO.
CLIENT_DisconnectIoPins
Puntatore alla funzione di callback dell'evento di CLIENT_DisconnectIoPins del driver del controller GPIO.
CLIENT_ReadGpioPins
Puntatore alla funzione di callback dell'evento di CLIENT_ReadGpioPins del driver del controller GPIO.
CLIENT_ReadGpioPinsUsingMask
Puntatore alla funzione di callback dell'evento di CLIENT_ReadGpioPinsUsingMask del driver del controller GPIO.
CLIENT_WriteGpioPins
Puntatore alla funzione di callback dell'evento di CLIENT_WriteGpioPins del driver del controller GPIO.
CLIENT_WriteGpioPinsUsingMask
Puntatore alla funzione di callback dell'evento di CLIENT_WriteGpioPinsUsingMask del driver del controller GPIO.
CLIENT_SaveBankHardwareContext
Puntatore alla funzione di callback dell'evento di CLIENT_SaveBankHardwareContext del driver del controller GPIO.
CLIENT_RestoreBankHardwareContext
Puntatore alla funzione di callback degli eventi del driver del controller GPIO CLIENT_RestoreBankHardwareContext .
CLIENT_PreProcessControllerInterrupt
Puntatore alla funzione di callback dell'evento di CLIENT_PreProcessControllerInterrupt del driver del controller GPIO.
CLIENT_ControllerSpecificFunction
Puntatore alla funzione di callback dell'evento di CLIENT_ControllerSpecificFunction del driver del controller GPIO.
CLIENT_ReconfigureInterrupt
Puntatore alla funzione di callback dell'evento CLIENT_ReconfigureInterrupt del driver del controller GPIO.
CLIENT_QueryEnabledInterrupts
Puntatore alla funzione di callback dell'evento di CLIENT_QueryEnabledInterrupts del driver del controller GPIO. Questo membro è supportato a partire da Windows 8.1.
CLIENT_ConnectFunctionConfigPins
CLIENT_DisconnectFunctionConfigPins
Commenti
Il driver del controller GPIO passa un puntatore a una struttura GPIO_CLIENT_REGISTRATION_PACKET come parametro di input al metodo GPIO_CLX_RegisterClient . Questo metodo registra il driver per usare i servizi forniti da GpioClx. In genere, il driver chiama questo metodo dalla routine DriverEntry .
La struttura GPIO_CLIENT_REGISTRATION_PACKET contiene due unioni senza nome. Ogni unione può contenere un puntatore a uno dei due tipi alternativi di funzioni di callback degli eventi. In ogni caso, il driver del controller GPIO deve implementare il tipo di funzione di callback più adatto all'hardware del controller GPIO. La funzione di callback del driver del controller GPIO CLIENT_QueryControllerBasicInformation informa GpioClx quali funzioni di callback sono implementate.
Dopo che il driver del controller GPIO chiama GPIO_CLX_RegisterClient per registrare un set di callback, GpioClx chiama la funzione di callback del driver CLIENT_QueryControllerBasicInformation per ottenere una struttura di CLIENT_CONTROLLER_BASIC_INFORMATION che contiene attributi hardware e dati di configurazione del controller GPIO. GpioClx usa queste informazioni per determinare le funzioni di callback implementate dal driver del controller GPIO.
Se il driver del controller GPIO implementa CLIENT_ReadGpioPins e CLIENT_WriteGpioPins funzioni di callback, la funzione di callback CLIENT_QueryControllerBasicInformation deve impostare il flag FormatIoRequestsAsMasks nel membro Flags di questa struttura CLIENT_CONTROLLER_BASIC_INFORMATION su 0.
Se la funzione di callback CLIENT_QueryControllerBasicInformation imposta il flag FormatIoRequestsAsMasks su 1, questo valore indica che il driver implementa CLIENT_ReadGpioPinsUsingMask e CLIENT_WriteGpioPinsUsingMask funzioni di callback.
GpioClx richiede un driver del controller GPIO per implementare determinate funzioni di callback, ma il supporto per altre funzioni di callback è facoltativo. Per altre informazioni, vedere Funzioni di callback GPIO facoltative e necessarie.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato a partire da Windows 8. |
Intestazione | gpioclx.h |
Vedi anche
CLIENT_CONTROLLER_BASIC_INFORMATION
CLIENT_ControllerSpecificFunction
CLIENT_PreProcessControllerInterrupt
CLIENT_QueryControllerBasicInformation
CLIENT_RestoreBankHardwareContext