GPIO_CLIENT_REGISTRATION_PACKET 구조체(gpioclx.h)
GPIO_CLIENT_REGISTRATION_PACKET 구조에는 GPIO(범용 I/O) 컨트롤러 드라이버가 GPIO 프레임워크 확장(GpioClx)에 전달하는 등록 정보가 포함되어 있습니다.
구문
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;
멤버
Version
GPIO 컨트롤러 드라이버가 지원하는 GPIO 인터페이스의 버전 번호입니다. 이 멤버를 gpioclx.h 헤더 파일에 정의된 GPIO_CLIENT_VERSION 값으로 설정합니다.
Size
이 구조체의 크기(바이트)입니다. 이 멤버를 sizeof(GPIO_CLIENT_REGISTRATION_PACKET)로 설정합니다.
Flags
선택한 등록 옵션을 나타내는 플래그 집합입니다. 현재 등록 옵션에 대한 플래그가 정의되어 있지 않습니다. 이 멤버를 0으로 설정합니다.
ControllerContextSize
필요한 디바이스 컨텍스트 크기(바이트)입니다. GPIO_CLX_RegisterClient 메서드는 이 크기의 디바이스 컨텍스트를 할당합니다. GpioClx가 GPIO_CLIENT_REGISTRATION_PACKET 구조에서 등록된 콜백 함수를 호출하면 GpioClx는 이 디바이스 컨텍스트를 콜백 함수에 매개 변수로 전달합니다. 콜백 함수는 이 컨텍스트를 사용하여 GPIO 컨트롤러 디바이스의 상태에 대한 드라이버의 정보에 액세스하고 업데이트합니다. 자세한 내용은 GPIO 디바이스 컨텍스트를 참조하세요.
Reserved
다음에 사용하도록 예약됩니다. 이 멤버를 0으로 설정합니다.
CLIENT_PrepareController
GPIO 컨트롤러 드라이버의 CLIENT_PrepareController 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_ReleaseController
GPIO 컨트롤러 드라이버의 CLIENT_ReleaseController 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_StartController
GPIO 컨트롤러 드라이버의 CLIENT_StartController 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_StopController
GPIO 컨트롤러 드라이버의 CLIENT_StopController 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_QueryControllerBasicInformation
GPIO 컨트롤러 드라이버의 CLIENT_QueryControllerBasicInformation 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_QuerySetControllerInformation
GPIO 컨트롤러 드라이버의 CLIENT_QuerySetControllerInformation 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_EnableInterrupt
GPIO 컨트롤러 드라이버의 CLIENT_EnableInterrupt 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_DisableInterrupt
GPIO 컨트롤러 드라이버의 CLIENT_DisableInterrupt 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_UnmaskInterrupt
GPIO 컨트롤러 드라이버의 CLIENT_UnmaskInterrupt 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_MaskInterrupts
GPIO 컨트롤러 드라이버의 CLIENT_MaskInterrupts 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_QueryActiveInterrupts
GPIO 컨트롤러 드라이버의 CLIENT_QueryActiveInterrupts 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_ClearActiveInterrupts
GPIO 컨트롤러 드라이버의 CLIENT_ClearActiveInterrupts 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_ConnectIoPins
GPIO 컨트롤러 드라이버의 CLIENT_ConnectIoPins 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_DisconnectIoPins
GPIO 컨트롤러 드라이버의 CLIENT_DisconnectIoPins 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_ReadGpioPins
GPIO 컨트롤러 드라이버의 CLIENT_ReadGpioPins 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_ReadGpioPinsUsingMask
GPIO 컨트롤러 드라이버의 CLIENT_ReadGpioPinsUsingMask 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_WriteGpioPins
GPIO 컨트롤러 드라이버의 CLIENT_WriteGpioPins 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_WriteGpioPinsUsingMask
GPIO 컨트롤러 드라이버의 CLIENT_WriteGpioPinsUsingMask 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_SaveBankHardwareContext
GPIO 컨트롤러 드라이버의 CLIENT_SaveBankHardwareContext 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_RestoreBankHardwareContext
GPIO 컨트롤러 드라이버의 CLIENT_RestoreBankHardwareContext 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_PreProcessControllerInterrupt
GPIO 컨트롤러 드라이버의 CLIENT_PreProcessControllerInterrupt 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_ControllerSpecificFunction
GPIO 컨트롤러 드라이버의 CLIENT_ControllerSpecificFunction 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_ReconfigureInterrupt
GPIO 컨트롤러 드라이버의 CLIENT_ReconfigureInterrupt 이벤트 콜백 함수에 대한 포인터입니다.
CLIENT_QueryEnabledInterrupts
GPIO 컨트롤러 드라이버의 CLIENT_QueryEnabledInterrupts 이벤트 콜백 함수에 대한 포인터입니다. 이 멤버는 Windows 8.1 부터 지원됩니다.
CLIENT_ConnectFunctionConfigPins
CLIENT_DisconnectFunctionConfigPins
설명
GPIO 컨트롤러 드라이버는 GPIO_CLX_RegisterClient 메서드에 대한 입력 매개 변수로 GPIO_CLIENT_REGISTRATION_PACKET 구조체에 대한 포인터를 전달합니다. 이 메서드는 GpioClx에서 제공하는 서비스를 사용하도록 드라이버를 등록합니다. 일반적으로 드라이버는 DriverEntry 루틴에서 이 메서드를 호출합니다.
GPIO_CLIENT_REGISTRATION_PACKET 구조체에는 명명되지 않은 두 개의 공용 구조체가 포함되어 있습니다. 각 공용 구조체는 이벤트 콜백 함수의 두 가지 대체 형식 중 하나에 대한 포인터를 포함할 수 있습니다. 각 경우에 GPIO 컨트롤러 드라이버는 GPIO 컨트롤러 하드웨어에 가장 적합한 콜백 함수 유형을 구현해야 합니다. GPIO 컨트롤러 드라이버의 CLIENT_QueryControllerBasicInformation 콜백 함수는 구현되는 콜백 함수를 GpioClx에 알릴 수 있습니다.
GPIO 컨트롤러 드라이버가 GPIO_CLX_RegisterClient 호출하여 콜백 집합을 등록한 후 GpioClx는 드라이버의 CLIENT_QueryControllerBasicInformation 콜백 함수를 호출하여 GPIO 컨트롤러 하드웨어 특성 및 구성 데이터를 포함하는 CLIENT_CONTROLLER_BASIC_INFORMATION 구조를 가져옵니다. GpioClx는 이 정보를 사용하여 GPIO 컨트롤러 드라이버가 구현한 콜백 함수를 결정합니다.
GPIO 컨트롤러 드라이버가 CLIENT_ReadGpioPins 구현하고 콜백 함수를 CLIENT_WriteGpioPins 경우 CLIENT_QueryControllerBasicInformation 콜백 함수는 이 CLIENT_CONTROLLER_BASIC_INFORMATION 구조체의 Flags 멤버에서 FormatIoRequestsAsMasks 플래그 비트를 0으로 설정해야 합니다.
CLIENT_QueryControllerBasicInformation 콜백 함수가 FormatIoRequestsAsMasks 플래그 비트를 1로 설정하는 경우 이 값은 드라이버가 CLIENT_ReadGpioPinsUsingMask 구현하고 콜백 함수를 CLIENT_WriteGpioPinsUsingMask 것을 나타냅니다.
GpioClx는 특정 콜백 함수를 구현하기 위해 GPIO 컨트롤러 드라이버가 필요하지만 다른 콜백 함수에 대한 지원은 선택 사항입니다. 자세한 내용은 선택적 및 필수 GPIO 콜백 함수를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 8 부터 지원합니다. |
머리글 | gpioclx.h |
추가 정보
CLIENT_CONTROLLER_BASIC_INFORMATION
CLIENT_ControllerSpecificFunction
CLIENT_PreProcessControllerInterrupt
CLIENT_QueryControllerBasicInformation
CLIENT_RestoreBankHardwareContext