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_ControllerSpecificFunction
CLIENT_PreProcessControllerInterrupt
CLIENT_QueryControllerBasicInformation
CLIENT_RestoreBankHardwareContext