KEYBOARD_ATTRIBUTES structure (ntddkbd.h)

Specifies the attributes of a keyboard.

Syntax

typedef struct _KEYBOARD_ATTRIBUTES {
  KEYBOARD_ID                   KeyboardIdentifier;
  USHORT                        KeyboardMode;
  USHORT                        NumberOfFunctionKeys;
  USHORT                        NumberOfIndicators;
  USHORT                        NumberOfKeysTotal;
  ULONG                         InputDataQueueLength;
  KEYBOARD_TYPEMATIC_PARAMETERS KeyRepeatMinimum;
  KEYBOARD_TYPEMATIC_PARAMETERS KeyRepeatMaximum;
} KEYBOARD_ATTRIBUTES, *PKEYBOARD_ATTRIBUTES;

Members

KeyboardIdentifier

Specifies the keyboard type and subtype in a KEYBOARD_ID structure:

typedef struct _KEYBOARD_ID {
  UCHAR  Type;
  UCHAR  Subtype;
} KEYBOARD_ID, *PKEYBOARD_ID;

Type

Specifies the keyboard type.

Value Description
0x4 Enhanced 101- or 102-key keyboards (and compatibles)
0x7 Japanese Keyboard
0x8 Korean Keyboard
0x51 Unknown type or HID keyboard

Subtype

Specifies the keyboard subtype, which is a vendor-specific value.

KeyboardMode

Specifies the scan code mode. See the Remarks section.

NumberOfFunctionKeys

Specifies the number of function keys that a keyboard supports.

NumberOfIndicators

Specifies the number of LED indicators that a keyboard supports.

NumberOfKeysTotal

Specifies the number of keys that a keyboard supports.

InputDataQueueLength

Specifies the size, in bytes, of the input data queue used by the keyboard port driver.

KeyRepeatMinimum

Specifies the minimum possible value for the keyboard typematic rate and delay in a KEYBOARD_TYPEMATIC_PARAMETERS structure.

KeyRepeatMaximum

Specifies the maximum possible value for the keyboard typematic rate and delay in a KEYBOARD_TYPEMATIC_PARAMETERS structure.

Remarks

This structure is used with a IOCTL_KEYBOARD_QUERY_ATTRIBUTES IOCTL request to return information about the attributes that a keyboard supports.

For more information about keyboard types, subtypes, scan code modes, and related keyboard layouts, see Keyboard and mouse HID client drivers in our drivers documentation.

More details can also be found in the kbd.h, ntdd8042.h and ntddkbd.h headers in the Windows SDK, the USB HID to PS/2 Scan Code Translation Table specification from Microsoft, and the Keyboard Layout Samples.

Requirements

Requirement Value
Header ntddkbd.h (include Ntddkbd.h)

See also

IOCTL_KEYBOARD_QUERY_ATTRIBUTES IOCTL

IOCTL_KEYBOARD_QUERY_INDICATORS IOCTL

IOCTL_KEYBOARD_QUERY_INDICATOR_TRANSLATION IOCTL

IOCTL_KEYBOARD_QUERY_TYPEMATIC IOCTL

IOCTL_KEYBOARD_SET_INDICATORS IOCTL

IOCTL_KEYBOARD_SET_TYPEMATIC IOCTL

KEYBOARD_TYPEMATIC_PARAMETERS structure