사용 가능한 인터페이스 및 관련 API
각 디바이스에 대해 하나씩 세 가지 GPIO 인터페이스가 있습니다. 각 인터페이스는 GUID에서 참조됩니다.
/* 30ebfbf8-df5f-4d4d-9fc5-a26c7fd1df4a */ DEFINE_GUID(GUID_GPIOBUTTONS_NOTIFY_INTERFACE, 0x30ebfbf8, 0xdf5f, 0x4d4d, 0x9f, 0xc5, 0xa2, 0x6c, 0x7f, 0xd1, 0xdf, 0x4a);
/* 317fc439-3f77-41c8-b09e-08ad63272aa3 */ DEFINE_GUID(GUID_GPIOBUTTONS_LAPTOPSLATE_INTERFACE, 0x317fc439, 0x3f77, 0x41c8, 0xb0, 0x9e, 0x08, 0xad, 0x63, 0x27, 0x2a, 0xa3);
/* a84e689b-0dce-493a-a164-acde05478fc3 */ DEFINE_GUID(GUID_GPIOBUTTONS_DOCKMODE_INTERFACE, 0xa84e689b, 0x0dce, 0x493a, 0xa1, 0x64, 0xac, 0xde, 0x05, 0x47, 0x8f, 0xc3);
인터페이스를 사용하면 해당 디바이스 인터페이스에 대해 WriteFile을 호출하여 단추 또는 표시기의 상태를 전환할 수 있습니다.
참고 여러 공급자 간의 잠재적 충돌을 방지하기 위해 디바이스에 대한 핸들은 디바이스에 대한 단독 액세스를 제공합니다.
typedef enum {
GPIO_BUTTON_POWER,
GPIO_BUTTON_WINDOWS,
GPIO_BUTTON_VOLUME_UP,
GPIO_BUTTON_VOLUME_DOWN,
GPIO_BUTTON_ROTATION_LOCK,
} GPIOBUTTONS_BUTTON_TYPE;