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