структура KEYBOARD_EXTENDED_ATTRIBUTES (ntddkbd.h)

KEYBOARD_EXTENDED_ATTRIBUTES задает расширенные атрибуты клавиатуры.

Синтаксис

typedef struct _KEYBOARD_EXTENDED_ATTRIBUTES {
  UCHAR Version;
  UCHAR FormFactor;
  UCHAR KeyType;
  UCHAR PhysicalLayout;
  UCHAR VendorSpecificPhysicalLayout;
  UCHAR IETFLanguageTagIndex;
  UCHAR ImplementedInputAssistControls;
} KEYBOARD_EXTENDED_ATTRIBUTES, *PKEYBOARD_EXTENDED_ATTRIBUTES;

Члены

Version

Тип: UCHAR

Версия этой структуры.

Поддерживается только KEYBOARD_EXTENDED_ATTRIBUTES_STRUCT_VERSION_1 .

FormFactor

Тип: UCHAR

Форм-фактор клавиатуры (идентификатор использования: 0x2C1).

Значение Описание
0x00 Неизвестный форм-фактор.
0x01 Полноразмерная клавиатура.
0x02 Компактная клавиатура. Такие клавиатуры имеют ширину менее 13 дюймов.

KeyType

Тип: UCHAR

Тип клавиши клавиатуры (идентификатор использования: 0x2C2).

Значение Описание
0x00 Неизвестный тип ключа.
0x01 Полные ключи перемещения.
0x02 Клавиши с низким перемещением, например на клавиатурах ноутбука.
0x03 Нулевое перемещение или виртуальные ключи.

PhysicalLayout

Тип: UCHAR

Физическая раскладка клавиатуры (идентификатор использования: 0x2C3).

Значение Описание
0x00 Неизвестный макет
0x01 101 (например, США)
0x02 103 (Корея)
0x03 102 (например, немецкий)
0x04 104 (например, ABNT Бразилия)
0x05 106 (DOS/V Япония)
0x06 Vendor—specific — если указано, необходимо также указать VendorSpecificPhysicalLayout .

Это значение ссылается не на набор условных обозначений, напечатанный на ключах, а только на физический макет набора ключей, определяемый относительным расположением и формой текстовых ключей по отношению друг к другу. Это значение указывает, какой из фактических стандартных физических макетов, которым соответствует клавиатура. Эти макеты хорошо понятны.

VendorSpecificPhysicalLayout

Тип: UCHAR

Числовой идентификатор конкретной физической раскладки клавиатуры для конкретного поставщика (идентификатор использования: 0x2C4).

Значения для этого поля определяются поставщиком оборудования, но 0x00 определяется таким образом, чтобы не указывать физическую раскладку клавиатуры для конкретного поставщика. Если значение не равно нулю, PhysicalLayout должно иметь значение 0x06. Если этот идентификатор 0x00, physicalLayout не должен иметь значение 0x06.

IETFLanguageTagIndex

Тип: UCHAR

Строковый индекс дескриптора строки с тегом языка IETF (идентификатор использования: 0x2C5).

Фактическую строку можно получить с помощью IOCTL_HID_GET_INDEXED_STRING IOCTL в драйверах режима ядра или HidD_GetIndexedString вызова в приложениях пользовательского режима.

Этот тег языка указывает основной языковой стандарт набора условных обозначений клавиатуры, соответствующий IETF BCP 47 или его преемнику.

Если соответствующий тег языка IETF недоступен, например для пользовательских, адаптивных или новых макетов, для параметра устанавливается значение 0x00.

ImplementedInputAssistControls

Тип: UCHAR

Растровое изображение для физически реализованных элементов управления поддержкой ввода. (Идентификатор использования: 0x2C6).

bit Описание
Все 0 Элементы управления поддержкой ввода с клавиатуры не реализованы.
Бит 0 Предыдущее предложение
Бит 1 Следующее предложение
Бит 2 Предыдущая группа предложений
Бит 3 Следующая группа предложений
Бит 4 Принять предложение
Бит 5 Отмена предложения
Все остальные биты зарезервированы.

Комментарии

Эта структура используется с запросом IOCTL_KEYBOARD_QUERY_EXTENDED_ATTRIBUTES для возврата сведений о расширенных атрибутах, поддерживаемых клавиатурой.

Эти сведения поступают из дескриптора отчета о клавиатуре HID, описанного в разделе HiD Usage Table Review Request 42: Consumer Page Keyboard Assist Controls.

Требования

Требование Значение
Заголовок ntddkbd.h (включая Ntddkbd.h)

См. также раздел

IOCTL_KEYBOARD_QUERY_EXTENDED_ATTRIBUTES

IOCTL_KEYBOARD_QUERY_ATTRIBUTES

Запрос на просмотр таблицы использования HID 42: элементы управления поддержкой клавиатуры страницы потребителя