GPIO buttons and indicators implementation guide

Windows 8 introduced support for general-purpose I/O (GPIO) buttons and indicators by using a HID miniport class driver. The goal was to provide support for key buttons (Power, Windows, volume and rotation lock) in a standardized way, together with associated corresponding Windows Engineering Guidance (WEG). Windows 8.1 is focused on enhancing the quality of the end-to-end user experience and unifying the behavior across various innovative form factors.

In this section

Topic Description

State indicators

This section describes the states of the mode and docking indicators.

Physical buttons

Hardware buttons let users perform many common tasks that do not have a convenient user interface alternative. For the scenarios addressed in this section, the hardware buttons are typically used for tasks that occur while the physical keyboard is not available to the user, on form factors such as convertibles or slates.

Interface implementation guidance

This section provides guidance for interface implementation.

Code samples

This section includes code samples and sample descriptors for interface implementation.

Implement the unattended Windows Setup setting

This topic describes how to set the unattended Windows Setup component setting.

Logging and investigations

This topic describes logging and investigations for GPIO implementations.

Running test passes

The MITT platform can test GPIO buttons by offering both test automation and the option to customize the GPIO patterns that are sent for targeted investigations.

As part of Windows 8.1 investments, the msgpio button driver brings important enhancements:

  • Augmented logging to speed up investigations.
  • Improved synchronization and error handling to enhance the robustness.
  • The new ConvertibleSlateMode Unattended Windows Setup to be used on non-GPIO laptops to statically set the mode to laptop as part of the OEM image customization.

For questions about GPIO buttons and indicator implementation, send an e-mail to the Microsoft support group at

Related topics

Power Button Behaviors and Implementation
Connected Standby Wake Sources
ACPI Design Guide
GetSystemMetrics function
Keyboard Enhancements in Windows 8
Windows Hardware Compatibility Program
Certification requirements for Windows desktop apps
HID over I²C
GPIO tests in MITT
Windows System Image Manager Technical Reference
Unattended Windows Setup Reference
Windows Driver Kit (WDK) 8.1