Compartir a través de


estructura GPIO_CLIENT_REGISTRATION_PACKET (gpioclx.h)

La estructura de GPIO_CLIENT_REGISTRATION_PACKET contiene información de registro que el controlador de E/S de uso general (GPIO) pasa a la extensión del marco GPIO (GpioClx).

Sintaxis

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;

Miembros

Version

Número de versión de la interfaz GPIO que admite el controlador del controlador GPIO. Establezca este miembro en el valor GPIO_CLIENT_VERSION, que se define en el archivo de encabezado Gpioclx.h.

Size

Tamaño, en bytes, de esta estructura. Establezca este miembro en sizeof(GPIO_CLIENT_REGISTRATION_PACKET).

Flags

Conjunto de marcas que indican qué opciones de registro se seleccionan. Actualmente no hay marcas definidas para las opciones de registro. Establezca este miembro en cero.

ControllerContextSize

Tamaño de contexto de dispositivo necesario, en bytes. El método GPIO_CLX_RegisterClient asigna un contexto de dispositivo de este tamaño. Cuando GpioClx llama a cualquier función de devolución de llamada registrada en la estructura de GPIO_CLIENT_REGISTRATION_PACKET , GpioClx pasa este contexto de dispositivo a la función de devolución de llamada como parámetro. Las funciones de devolución de llamada usan este contexto para acceder y actualizar la información del controlador sobre el estado del dispositivo del controlador GPIO. Para obtener más información, consulte Contextos de dispositivo GPIO.

Reserved

Reservado para uso futuro. Establezca este miembro en cero.

CLIENT_PrepareController

Puntero a la función de devolución de llamada de eventos CLIENT_PrepareController del controlador GPIO.

CLIENT_ReleaseController

Puntero a la función de devolución de llamada de eventos CLIENT_ReleaseController del controlador GPIO.

CLIENT_StartController

Puntero a la función de devolución de llamada de eventos CLIENT_StartController del controlador gpIO.

CLIENT_StopController

Puntero a la función de devolución de llamada de eventos CLIENT_StopController del controlador GPIO.

CLIENT_QueryControllerBasicInformation

Puntero a la función de devolución de llamada de eventos CLIENT_QueryControllerBasicInformation del controlador GPIO.

CLIENT_QuerySetControllerInformation

Puntero a la función de devolución de llamada de eventos CLIENT_QuerySetControllerInformation del controlador GPIO.

CLIENT_EnableInterrupt

Puntero a la función de devolución de llamada de eventos CLIENT_EnableInterrupt del controlador GPIO.

CLIENT_DisableInterrupt

Puntero a la función de devolución de llamada de eventos CLIENT_DisableInterrupt del controlador GPIO.

CLIENT_UnmaskInterrupt

Puntero a la función de devolución de llamada de eventos CLIENT_UnmaskInterrupt del controlador GPIO.

CLIENT_MaskInterrupts

Puntero a la función de devolución de llamada de eventos CLIENT_MaskInterrupts del controlador GPIO.

CLIENT_QueryActiveInterrupts

Puntero a la función de devolución de llamada de eventos CLIENT_QueryActiveInterrupts del controlador GPIO.

CLIENT_ClearActiveInterrupts

Puntero a la función de devolución de llamada de eventos CLIENT_ClearActiveInterrupts del controlador GPIO.

CLIENT_ConnectIoPins

Puntero a la función de devolución de llamada de eventos CLIENT_ConnectIoPins del controlador GPIO.

CLIENT_DisconnectIoPins

Puntero a la función de devolución de llamada de eventos CLIENT_DisconnectIoPins del controlador GPIO.

CLIENT_ReadGpioPins

Puntero a la función de devolución de llamada de eventos CLIENT_ReadGpioPins del controlador GPIO.

CLIENT_ReadGpioPinsUsingMask

Puntero a la función de devolución de llamada de eventos CLIENT_ReadGpioPinsUsingMask del controlador GPIO.

CLIENT_WriteGpioPins

Puntero a la función de devolución de llamada de eventos CLIENT_WriteGpioPins del controlador GPIO.

CLIENT_WriteGpioPinsUsingMask

Puntero a la función de devolución de llamada de eventos CLIENT_WriteGpioPinsUsingMask del controlador GPIO.

CLIENT_SaveBankHardwareContext

Puntero a la función de devolución de llamada de eventos CLIENT_SaveBankHardwareContext del controlador GPIO.

CLIENT_RestoreBankHardwareContext

Puntero a la función de devolución de llamada de eventos CLIENT_RestoreBankHardwareContext del controlador GPIO.

CLIENT_PreProcessControllerInterrupt

Puntero a la función de devolución de llamada de eventos CLIENT_PreProcessControllerInterrupt del controlador GPIO.

CLIENT_ControllerSpecificFunction

Puntero a la función de devolución de llamada de eventos CLIENT_ControllerSpecificFunction del controlador GPIO.

CLIENT_ReconfigureInterrupt

Puntero a la función de devolución de llamada de eventos CLIENT_ReconfigureInterrupt del controlador GPIO.

CLIENT_QueryEnabledInterrupts

Puntero a la función de devolución de llamada de eventos CLIENT_QueryEnabledInterrupts del controlador GPIO. Este miembro se admite a partir de Windows 8.1.

CLIENT_ConnectFunctionConfigPins

CLIENT_DisconnectFunctionConfigPins

Comentarios

El controlador del controlador GPIO pasa un puntero a una estructura de GPIO_CLIENT_REGISTRATION_PACKET como parámetro de entrada al método GPIO_CLX_RegisterClient . Este método registra el controlador para usar los servicios proporcionados por GpioClx. Normalmente, el controlador llama a este método desde su rutina DriverEntry .

La estructura GPIO_CLIENT_REGISTRATION_PACKET contiene dos uniones sin nombre. Cada unión puede contener un puntero a uno de los dos tipos alternativos de funciones de devolución de llamada de eventos. En cada caso, el controlador del controlador GPIO debe implementar el tipo de función de devolución de llamada más adecuada para el hardware del controlador GPIO. La función de devolución de llamada del controlador gpIO CLIENT_QueryControllerBasicInformation informa a GpioClx de qué funciones de devolución de llamada se implementan.

Después de que el controlador del controlador GPIO llame a GPIO_CLX_RegisterClient para registrar un conjunto de devoluciones de llamada, GpioClx llama a la función de devolución de llamada CLIENT_QueryControllerBasicInformation del controlador para obtener una estructura de CLIENT_CONTROLLER_BASIC_INFORMATION que contiene los atributos de hardware del controlador GPIO y los datos de configuración. GpioClx usa esta información para determinar qué funciones de devolución de llamada ha implementado el controlador del controlador GPIO.

Si el controlador del controlador GPIO implementa CLIENT_ReadGpioPins y CLIENT_WriteGpioPins funciones de devolución de llamada, la función de devolución de llamada CLIENT_QueryControllerBasicInformation debe establecer el bit de marca FormatIoRequestsAsMasks en el miembro Flags de esta estructura de CLIENT_CONTROLLER_BASIC_INFORMATION en 0.

Si la función de devolución de llamada CLIENT_QueryControllerBasicInformation establece el bit de marca FormatIoRequestsAsMasks en 1, este valor indica que el controlador implementa CLIENT_ReadGpioPinsUsingMask y CLIENT_WriteGpioPinsUsingMask funciones de devolución de llamada.

GpioClx requiere un controlador de controlador GPIO para implementar determinadas funciones de devolución de llamada, pero la compatibilidad con otras funciones de devolución de llamada es opcional. Para obtener más información, vea Funciones de devolución de llamada GPIO opcionales y obligatorias.

Requisitos

Requisito Value
Cliente mínimo compatible Se admite a partir de Windows 8.
Encabezado gpioclx.h

Consulte también

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