Руководство по реализации интерфейса

В этом разделе приведены рекомендации по реализации интерфейса.

В этом разделе

Раздел Описание

Доступные интерфейсы и связанные API

Существует три интерфейса GPIO: по одному для каждого устройства. На каждый интерфейс ссылается GUID.

Реализация индикатора

В этом разделе описывается реализация индикатора.

Реализация кнопки

Рекомендуется использовать физический ресурс GPIO как для кнопок, так и для индикаторов состояния.

Состояние системы

Состояние по умолчанию для всех кнопок, поддерживаемых драйвером папки "Входящие" при загрузке, находится в положении UP.

Первый индикатор с помощью интерфейса переключил указанную кнопку (по индексу) в состояние DOWN.

Состояние по умолчанию для индикатора режима ноутбука или сланца — SLATE.

По умолчанию индикатор закрепленного режима находится в состоянии UNDOCKED.

Первый индикатор с помощью интерфейса переключил индикатор на другое состояние.

Чтобы запросить состояние, можно использовать API GetSystemMetric следующим образом:

int WINAPI GetSystemMetrics(
  _In_  int nIndex
);

Параметры, доступные для индикаторов:

  • SM_SYSTEMDOCKED для состояния стыковки. Вызов возвращает значение 0 для режима отстыковки и ненулевое значение в противном случае.
  • SM_CONVERTIBLESLATEMODE для режима сланца. Вызов возвращает значение 0 для режима Slate и ненулевое значение в противном случае.

Уведомления

При изменении системной метрики SM_CONVERTIBLESLATEMODE или SM_SYSTEMDOCKED система отправляет широковещательное сообщение с помощью WM_SETTINGCHANGE.

LPARAM сообщения WM_SETTINGCHANGE указывает, какая системная метрика была изменена с помощью строки ConvertibleSlateMode или SystemDockMode.