structure GPIO_CLIENT_REGISTRATION_PACKET (gpioclx.h)
La structure GPIO_CLIENT_REGISTRATION_PACKET contient des informations d’inscription que le pilote du contrôleur d’E/S à usage général (GPIO) transmet à l’extension de l’infrastructure GPIO (GpioClx).
Syntaxe
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;
Membres
Version
Numéro de version de l’interface GPIO prise en charge par le pilote du contrôleur GPIO. Définissez ce membre sur la valeur GPIO_CLIENT_VERSION, qui est définie dans le fichier d’en-tête Gpioclx.h.
Size
Taille, en octets, de cette structure. Définissez ce membre sur sizeof(GPIO_CLIENT_REGISTRATION_PACKET).
Flags
Ensemble d’indicateurs qui indiquent les options d’inscription sélectionnées. Aucun indicateur n’est actuellement défini pour les options d’inscription. Définissez ce membre sur zéro.
ControllerContextSize
Taille de contexte de l’appareil requise, en octets. La méthode GPIO_CLX_RegisterClient alloue un contexte d’appareil de cette taille. Lorsque GpioClx appelle une fonction de rappel inscrite dans la structure GPIO_CLIENT_REGISTRATION_PACKET , GpioClx transmet ce contexte d’appareil à la fonction de rappel en tant que paramètre. Les fonctions de rappel utilisent ce contexte pour accéder et mettre à jour les informations du pilote sur l’état du périphérique du contrôleur GPIO. Pour plus d’informations, consultez Contextes d’appareil GPIO.
Reserved
Réservé pour un usage futur. Définissez ce membre sur zéro.
CLIENT_PrepareController
Pointeur vers la fonction de rappel d’événement CLIENT_PrepareController du pilote gpIO.
CLIENT_ReleaseController
Pointeur vers la fonction de rappel d’événement CLIENT_ReleaseController du pilote gpIO.
CLIENT_StartController
Pointeur vers la fonction de rappel d’événement CLIENT_StartController du pilote du contrôleur GPIO.
CLIENT_StopController
Pointeur vers la fonction de rappel d’événement CLIENT_StopController du pilote gpIO.
CLIENT_QueryControllerBasicInformation
Pointeur vers la fonction de rappel d’événement CLIENT_QueryControllerBasicInformation du pilote gpIO.
CLIENT_QuerySetControllerInformation
Pointeur vers la fonction de rappel d’événement CLIENT_QuerySetControllerInformation du pilote du contrôleur GPIO.
CLIENT_EnableInterrupt
Pointeur vers la fonction de rappel d’événement CLIENT_EnableInterrupt du pilote du contrôleur GPIO.
CLIENT_DisableInterrupt
Pointeur vers la fonction de rappel d’événement CLIENT_DisableInterrupt du pilote du contrôleur GPIO.
CLIENT_UnmaskInterrupt
Pointeur vers la fonction de rappel d’événement CLIENT_UnmaskInterrupt du pilote du contrôleur GPIO.
CLIENT_MaskInterrupts
Pointeur vers la fonction de rappel d’événement CLIENT_MaskInterrupts du pilote du contrôleur GPIO.
CLIENT_QueryActiveInterrupts
Pointeur vers la fonction de rappel d’événement CLIENT_QueryActiveInterrupts du pilote du contrôleur GPIO.
CLIENT_ClearActiveInterrupts
Pointeur vers la fonction de rappel d’événement CLIENT_ClearActiveInterrupts du pilote du contrôleur GPIO.
CLIENT_ConnectIoPins
Pointeur vers la fonction de rappel d’événement CLIENT_ConnectIoPins du pilote du contrôleur GPIO.
CLIENT_DisconnectIoPins
Pointeur vers la fonction de rappel d’événement CLIENT_DisconnectIoPins du pilote du contrôleur GPIO.
CLIENT_ReadGpioPins
Pointeur vers la fonction de rappel d’événement CLIENT_ReadGpioPins du pilote du contrôleur GPIO.
CLIENT_ReadGpioPinsUsingMask
Pointeur vers la fonction de rappel d’événement CLIENT_ReadGpioPinsUsingMask du pilote gpIO.
CLIENT_WriteGpioPins
Pointeur vers la fonction de rappel d’événement CLIENT_WriteGpioPins du pilote du contrôleur GPIO.
CLIENT_WriteGpioPinsUsingMask
Pointeur vers la fonction de rappel d’événement CLIENT_WriteGpioPinsUsingMask du pilote gpIO.
CLIENT_SaveBankHardwareContext
Pointeur vers la fonction de rappel d’événement CLIENT_SaveBankHardwareContext du pilote gpIO.
CLIENT_RestoreBankHardwareContext
Pointeur vers la fonction de rappel d’événement CLIENT_RestoreBankHardwareContext du pilote du contrôleur GPIO.
CLIENT_PreProcessControllerInterrupt
Pointeur vers la fonction de rappel d’événement CLIENT_PreProcessControllerInterrupt du pilote du contrôleur GPIO.
CLIENT_ControllerSpecificFunction
Pointeur vers la fonction de rappel d’événement CLIENT_ControllerSpecificFunction du pilote gpIO.
CLIENT_ReconfigureInterrupt
Pointeur vers la fonction de rappel d’événement CLIENT_ReconfigureInterrupt du pilote du contrôleur GPIO.
CLIENT_QueryEnabledInterrupts
Pointeur vers la fonction de rappel d’événement CLIENT_QueryEnabledInterrupts du pilote du contrôleur GPIO. Ce membre est pris en charge à partir de Windows 8.1.
CLIENT_ConnectFunctionConfigPins
CLIENT_DisconnectFunctionConfigPins
Remarques
Le pilote de contrôleur GPIO transmet un pointeur vers une structure GPIO_CLIENT_REGISTRATION_PACKET en tant que paramètre d’entrée vers la méthode GPIO_CLX_RegisterClient . Cette méthode inscrit le pilote pour qu’il utilise les services fournis par GpioClx. En règle générale, le pilote appelle cette méthode à partir de sa routine DriverEntry .
La structure GPIO_CLIENT_REGISTRATION_PACKET contient deux unions sans nom. Chaque union peut contenir un pointeur vers l’un des deux autres types de fonctions de rappel d’événements. Dans chaque cas, votre pilote de contrôleur GPIO doit implémenter le type de fonction de rappel le mieux adapté au matériel du contrôleur GPIO. La fonction de rappel CLIENT_QueryControllerBasicInformation du pilote du contrôleur GPIO indique à GpioClx quelles fonctions de rappel sont implémentées.
Une fois que le pilote du contrôleur GPIO a appelé GPIO_CLX_RegisterClient pour inscrire un ensemble de rappels, GpioClx appelle la fonction de rappel CLIENT_QueryControllerBasicInformation du pilote pour obtenir une structure CLIENT_CONTROLLER_BASIC_INFORMATION qui contient les attributs matériels du contrôleur GPIO et les données de configuration. GpioClx utilise ces informations pour déterminer les fonctions de rappel que le pilote de contrôleur GPIO a implémentées.
Si le pilote de contrôleur GPIO implémente CLIENT_ReadGpioPins et CLIENT_WriteGpioPins fonctions de rappel, la fonction de rappel CLIENT_QueryControllerBasicInformation doit définir le bit d’indicateur FormatIoRequestsAsMasks dans le membre Flags de cette structure CLIENT_CONTROLLER_BASIC_INFORMATION sur 0.
Si la fonction de rappel CLIENT_QueryControllerBasicInformation définit le bit d’indicateur FormatIoRequestsAsMasks sur 1, cette valeur indique que le pilote implémente CLIENT_ReadGpioPinsUsingMask et CLIENT_WriteGpioPinsUsingMask fonctions de rappel.
GpioClx nécessite un pilote de contrôleur GPIO pour implémenter certaines fonctions de rappel, mais la prise en charge d’autres fonctions de rappel est facultative. Pour plus d’informations, consultez Fonctions de rappel GPIO facultatives et requises.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Pris en charge à partir de Windows 8. |
En-tête | gpioclx.h |
Voir aussi
CLIENT_CONTROLLER_BASIC_INFORMATION
CLIENT_ControllerSpecificFunction
CLIENT_PreProcessControllerInterrupt
CLIENT_QueryControllerBasicInformation
CLIENT_RestoreBankHardwareContext