Compartilhar via


estrutura GPIO_CLIENT_REGISTRATION_PACKET (gpioclx.h)

A estrutura GPIO_CLIENT_REGISTRATION_PACKET contém informações de registro que o driver de controlador gpio (E/S de uso geral) passa para a extensão de estrutura gpio (GpioClx).

Sintaxe

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;

Membros

Version

O número de versão da interface GPIO compatível com o driver do controlador GPIO. Defina esse membro como o valor GPIO_CLIENT_VERSION, que é definido no arquivo de cabeçalho Gpioclx.h.

Size

O tamanho, em bytes, dessa estrutura. Defina esse membro como sizeof(GPIO_CLIENT_REGISTRATION_PACKET).

Flags

Um conjunto de sinalizadores que indicam quais opções de registro estão selecionadas. Nenhum sinalizador está definido atualmente para opções de registro. Defina esse membro como zero.

ControllerContextSize

O tamanho de contexto do dispositivo necessário, em bytes. O método GPIO_CLX_RegisterClient aloca um contexto de dispositivo desse tamanho. Quando GpioClx chama qualquer função de retorno de chamada registrada na estrutura GPIO_CLIENT_REGISTRATION_PACKET , GpioClx passa esse contexto de dispositivo para a função de retorno de chamada como um parâmetro. As funções de retorno de chamada usam esse contexto para acessar e atualizar as informações do driver sobre o estado do dispositivo controlador GPIO. Para obter mais informações, consulte Contextos de dispositivo GPIO.

Reserved

Reservado para uso futuro. Defina esse membro como zero.

CLIENT_PrepareController

Um ponteiro para a função de retorno de chamada de evento CLIENT_PrepareController do driver gpio.

CLIENT_ReleaseController

Um ponteiro para a função de retorno de chamada de evento CLIENT_ReleaseController do driver gpio .

CLIENT_StartController

Um ponteiro para a função de retorno de chamada de evento CLIENT_StartController do driver gpio .

CLIENT_StopController

Um ponteiro para a função de retorno de chamada de evento CLIENT_StopController do driver gpio.

CLIENT_QueryControllerBasicInformation

Um ponteiro para a função de retorno de chamada de evento CLIENT_QueryControllerBasicInformation do driver gpio .

CLIENT_QuerySetControllerInformation

Um ponteiro para a função de retorno de chamada de evento CLIENT_QuerySetControllerInformation do driver gpio .

CLIENT_EnableInterrupt

Um ponteiro para a função de retorno de chamada de evento CLIENT_EnableInterrupt do driver gpio .

CLIENT_DisableInterrupt

Um ponteiro para a função de retorno de chamada de evento CLIENT_DisableInterrupt do driver gpio.

CLIENT_UnmaskInterrupt

Um ponteiro para a função de retorno de chamada de evento CLIENT_UnmaskInterrupt do driver gpio.

CLIENT_MaskInterrupts

Um ponteiro para a função de retorno de chamada de evento CLIENT_MaskInterrupts do driver gpio.

CLIENT_QueryActiveInterrupts

Um ponteiro para a função de retorno de chamada de evento CLIENT_QueryActiveInterrupts do driver gpio.

CLIENT_ClearActiveInterrupts

Um ponteiro para a função de retorno de chamada de evento CLIENT_ClearActiveInterrupts do driver gpio.

CLIENT_ConnectIoPins

Um ponteiro para a função de retorno de chamada de evento CLIENT_ConnectIoPins do driver gpio.

CLIENT_DisconnectIoPins

Um ponteiro para a função de retorno de chamada de evento CLIENT_DisconnectIoPins do driver gpio .

CLIENT_ReadGpioPins

Um ponteiro para a função de retorno de chamada de evento CLIENT_ReadGpioPins do driver gpio.

CLIENT_ReadGpioPinsUsingMask

Um ponteiro para a função de retorno de chamada de evento CLIENT_ReadGpioPinsUsingMask do driver gpio .

CLIENT_WriteGpioPins

Um ponteiro para a função de retorno de chamada de evento CLIENT_WriteGpioPins do driver gpio .

CLIENT_WriteGpioPinsUsingMask

Um ponteiro para a função de retorno de chamada de evento CLIENT_WriteGpioPinsUsingMask do driver gpio.

CLIENT_SaveBankHardwareContext

Um ponteiro para a função de retorno de chamada de evento CLIENT_SaveBankHardwareContext do driver gpio.

CLIENT_RestoreBankHardwareContext

Um ponteiro para a função de retorno de chamada de evento CLIENT_RestoreBankHardwareContext do driver gpio.

CLIENT_PreProcessControllerInterrupt

Um ponteiro para a função de retorno de chamada de evento CLIENT_PreProcessControllerInterrupt do driver gpio.

CLIENT_ControllerSpecificFunction

Um ponteiro para a função de retorno de chamada de evento CLIENT_ControllerSpecificFunction do driver gpio.

CLIENT_ReconfigureInterrupt

Um ponteiro para a função de retorno de chamada de evento CLIENT_ReconfigureInterrupt do driver gpio.

CLIENT_QueryEnabledInterrupts

Um ponteiro para a função de retorno de chamada de evento CLIENT_QueryEnabledInterrupts do driver gpio. Esse membro tem suporte começando com Windows 8.1.

CLIENT_ConnectFunctionConfigPins

CLIENT_DisconnectFunctionConfigPins

Comentários

O driver do controlador GPIO passa um ponteiro para uma estrutura GPIO_CLIENT_REGISTRATION_PACKET como um parâmetro de entrada para o método GPIO_CLX_RegisterClient . Esse método registra o driver para usar os serviços fornecidos pelo GpioClx. Normalmente, o driver chama esse método de sua rotina DriverEntry .

A estrutura GPIO_CLIENT_REGISTRATION_PACKET contém duas uniões não nomeadas. Cada união pode conter um ponteiro para um dos dois tipos alternativos de funções de retorno de chamada de evento. Em cada caso, o driver do controlador GPIO deve implementar o tipo de função de retorno de chamada mais adequada ao hardware do controlador GPIO. A função de retorno de chamada CLIENT_QueryControllerBasicInformation do driver gpio informa a GpioClx quais funções de retorno de chamada são implementadas.

Depois que o driver do controlador GPIO chama GPIO_CLX_RegisterClient para registrar um conjunto de retornos de chamada, GpioClx chama a função de retorno de chamada CLIENT_QueryControllerBasicInformation do driver para obter uma estrutura de CLIENT_CONTROLLER_BASIC_INFORMATION que contém atributos de hardware e dados de configuração do controlador GPIO. O GpioClx usa essas informações para determinar quais funções de retorno de chamada o driver do controlador GPIO implementou.

Se o driver do controlador GPIO implementar funções de retorno de chamada CLIENT_ReadGpioPins e CLIENT_WriteGpioPins , a função de retorno de chamada CLIENT_QueryControllerBasicInformation deverá definir o bit de sinalizador FormatIoRequestsAsMasks no membro Flags dessa estrutura CLIENT_CONTROLLER_BASIC_INFORMATION como 0.

Se a função de retorno de chamada CLIENT_QueryControllerBasicInformation definir o bit de sinalizador FormatIoRequestsAsMasks como 1, esse valor indicará que o driver implementa funções de retorno de chamada CLIENT_ReadGpioPinsUsingMask e CLIENT_WriteGpioPinsUsingMask .

GpioClx requer um driver de controlador GPIO para implementar determinadas funções de retorno de chamada, mas o suporte para outras funções de retorno de chamada é opcional. Para obter mais informações, consulte Funções de retorno de chamada gpio opcionais e necessárias.

Requisitos

Requisito Valor
Cliente mínimo com suporte Com suporte começando com Windows 8.
Cabeçalho gpioclx.h

Confira também

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