Partager via


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_ClearActiveInterrupts

CLIENT_ConnectIoPins

CLIENT_ControllerSpecificFunction

CLIENT_DisableInterrupt

CLIENT_DisconnectIoPins

CLIENT_EnableInterrupt

CLIENT_MaskInterrupts

CLIENT_PreProcessControllerInterrupt

CLIENT_PrepareController

CLIENT_QueryActiveInterrupts

CLIENT_QueryControllerBasicInformation

CLIENT_QueryEnabledInterrupts

CLIENT_ReadGpioPins

CLIENT_ReadGpioPinsUsingMask

CLIENT_ReconfigureInterrupt

CLIENT_ReleaseController

CLIENT_RestoreBankHardwareContext

CLIENT_SaveBankHardwareContext

CLIENT_StartController

CLIENT_StopController

CLIENT_UnmaskInterrupt

CLIENT_WriteGpioPins

CLIENT_WriteGpioPinsUsingMask

DriverEntry

GPIO_CLX_RegisterClient