Partager via


structure GPIO_CLIENT_REGISTRATION_PACKET (gpioclx.h)

La structure GPIO_CLIENT_REGISTRATION_PACKET contient des informations d’inscription que le pilote de contrôleur GPIO (General-purpose I/O) passe à l’extension de framework 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 taille de(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 n’importe quelle 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 aux informations du pilote et les mettre à jour sur l’état du périphérique de contrôleur GPIO. Pour plus d’informations, consultez contextes d’appareil GPIO.

Reserved

Réservé pour une utilisation ultérieure. Définissez ce membre sur zéro.

CLIENT_PrepareController

Pointeur vers la fonction de rappel d’événement CLIENT_PrepareController du pilote de contrôleur GPIO.

CLIENT_ReleaseController

Pointeur vers la fonction de rappel d’événement CLIENT_ReleaseController du pilote de contrôleur GPIO.

CLIENT_StartController

Pointeur vers la fonction de rappel d’événement CLIENT_StartController du pilote de contrôleur GPIO.

CLIENT_StopController

Pointeur vers la fonction de rappel d’événement CLIENT_StopController du pilote de contrôleur GPIO.

CLIENT_QueryControllerBasicInformation

Pointeur vers la fonction de rappel d’événement CLIENT_QueryControllerBasicInformation du pilote de contrôleur GPIO.

CLIENT_QuerySetControllerInformation

Pointeur vers la fonction de rappel d’événement CLIENT_QuerySetControllerInformation du pilote de contrôleur GPIO.

CLIENT_EnableInterrupt

Pointeur vers la fonction de rappel d’événement CLIENT_EnableInterrupt du pilote de contrôleur GPIO.

CLIENT_DisableInterrupt

Pointeur vers la fonction de rappel d’événement CLIENT_DisableInterrupt du pilote de contrôleur GPIO.

CLIENT_UnmaskInterrupt

Pointeur vers la fonction de rappel d’événement CLIENT_UnmaskInterrupt du pilote de contrôleur GPIO.

CLIENT_MaskInterrupts

Pointeur vers la fonction de rappel d’événement CLIENT_MaskInterrupts du pilote de contrôleur GPIO.

CLIENT_QueryActiveInterrupts

Pointeur vers la fonction de rappel d’événement CLIENT_QueryActiveInterrupts du pilote de contrôleur GPIO.

CLIENT_ClearActiveInterrupts

Pointeur vers la fonction de rappel d’événement CLIENT_ClearActiveInterrupts du pilote de contrôleur GPIO.

CLIENT_ConnectIoPins

Pointeur vers la fonction de rappel d’événement CLIENT_ConnectIoPins du pilote de contrôleur GPIO.

CLIENT_DisconnectIoPins

Pointeur vers la fonction de rappel d’événement CLIENT_DisconnectIoPins du pilote de contrôleur GPIO.

CLIENT_ReadGpioPins

Pointeur vers la fonction de rappel d’événement CLIENT_ReadGpioPins du pilote de contrôleur GPIO.

CLIENT_ReadGpioPinsUsingMask

Pointeur vers la fonction de rappel d’événement CLIENT_ReadGpioPinsUsingMask du pilote de contrôleur GPIO.

CLIENT_WriteGpioPins

Pointeur vers la fonction de rappel d’événement CLIENT_WriteGpioPins du pilote de contrôleur GPIO.

CLIENT_WriteGpioPinsUsingMask

Pointeur vers la fonction de rappel d’événement CLIENT_WriteGpioPinsUsingMask du pilote de contrôleur GPIO.

CLIENT_SaveBankHardwareContext

Pointeur vers la fonction de rappel d’événement CLIENT_SaveBankHardwareContext du pilote de contrôleur GPIO.

CLIENT_RestoreBankHardwareContext

Pointeur vers la fonction de rappel d’événement CLIENT_RestoreBankHardwareContext du pilote de contrôleur GPIO.

CLIENT_PreProcessControllerInterrupt

Pointeur vers la fonction de rappel d’événement CLIENT_PreProcessControllerInterrupt du pilote de contrôleur GPIO.

CLIENT_ControllerSpecificFunction

Pointeur vers la fonction de rappel d’événement CLIENT_ControllerSpecificFunction du pilote de contrôleur GPIO.

CLIENT_ReconfigureInterrupt

Pointeur vers la fonction de rappel d’événement CLIENT_ReconfigureInterrupt du pilote de contrôleur GPIO.

CLIENT_QueryEnabledInterrupts

Pointeur vers la fonction de rappel d’événement CLIENT_QueryEnabledInterrupts du pilote de contrôleur GPIO. Ce membre est pris en charge à partir de Windows 8.1.

CLIENT_ConnectFunctionConfigPins

CLIENT_DisconnectFunctionConfigPins

Remarques

Le pilote du contrôleur GPIO transmet un pointeur à une structure GPIO_CLIENT_REGISTRATION_PACKET en tant que paramètre d’entrée à la méthode GPIO_CLX_RegisterClient. Cette méthode inscrit le pilote pour utiliser 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 non nommées. Chaque union peut contenir un pointeur vers l’un des deux autres types de fonctions de rappel d’événement. Dans chaque cas, votre pilote de contrôleur GPIO doit implémenter le type de fonction de rappel qui convient le mieux au matériel du contrôleur GPIO. La fonction de rappel CLIENT_QueryControllerBasicInformation du pilote de contrôleur GPIO informe GpioClx des fonctions de rappel implémentées.

Une fois que le pilote du contrôleur GPIO appelle 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 des attributs matériels de contrôleur GPIO et des données de configuration. GpioClx utilise ces informations pour déterminer les fonctions de rappel implémentées par le pilote de contrôleur GPIO.

Si le pilote de contrôleur GPIO implémente des fonctions de rappel CLIENT_ReadGpioPins et CLIENT_WriteGpioPins, la fonction de rappel CLIENT_QueryControllerBasicInformation doit définir le bit d’indicateur FormatIoRequestsAsMasks dans le membre de cette structure CLIENT_CONTROLLER_BASIC_INFORMATION.

Si la fonction de rappel CLIENT_QueryControllerBasicInformation affecte la valeur 1 au bit d’indicateur FormatIoRequestsAsMasks, cette valeur indique que le pilote implémente CLIENT_ReadGpioPinsUsingMask et CLIENT_WriteGpioPinsUsingMask fonctions de rappel.

GpioClx nécessite qu’un pilote de contrôleur GPIO implémente 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.

Exigences

Exigence Valeur
client minimum pris en charge Prise en charge à partir de Windows 8.
d’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