155 lines
5 KiB
C
155 lines
5 KiB
C
/*
|
|
* ntddkbd.h Keyboard device I/O control codes
|
|
*
|
|
* =========================================================================
|
|
*
|
|
* Open Watcom Project
|
|
*
|
|
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
|
|
*
|
|
* This file is automatically generated. Do not edit directly.
|
|
*
|
|
* =========================================================================
|
|
*/
|
|
|
|
#ifndef _NTDDKBD_
|
|
#define _NTDDKBD_
|
|
|
|
#ifndef _ENABLE_AUTODEPEND
|
|
#pragma read_only_file;
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* Keyboard device name */
|
|
#define DD_KEYBOARD_DEVICE_NAME "\\Device\\KeyboardClass"
|
|
#define DD_KEYBOARD_DEVICE_NAME_U L"\\Device\\KeyboardClass"
|
|
|
|
/* Keyboard device I/O control codes */
|
|
#define IOCTL_KEYBOARD_QUERY_ATTRIBUTES \
|
|
CTL_CODE( FILE_DEVICE_KEYBOARD, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
|
#define IOCTL_KEYBOARD_SET_TYPEMATIC \
|
|
CTL_CODE( FILE_DEVICE_KEYBOARD, 0x0001, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
|
#define IOCTL_KEYBOARD_SET_INDICATORS \
|
|
CTL_CODE( FILE_DEVICE_KEYBOARD, 0x0002, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
|
#define IOCTL_KEYBOARD_QUERY_TYPEMATIC \
|
|
CTL_CODE( FILE_DEVICE_KEYBOARD, 0x0008, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
|
#define IOCTL_KEYBOARD_QUERY_INDICATORS \
|
|
CTL_CODE( FILE_DEVICE_KEYBOARD, 0x0010, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
|
#define IOCTL_KEYBOARD_QUERY_INDICATOR_TRANSLATION \
|
|
CTL_CODE( FILE_DEVICE_KEYBOARD, 0x0020, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
|
#define IOCTL_KEYBOARD_INSERT_DATA \
|
|
CTL_CODE( FILE_DEVICE_KEYBOARD, 0x0040, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
|
#define IOCTL_KEYBOARD_QUERY_IME_STATUS \
|
|
CTL_CODE( FILE_DEVICE_KEYBOARD, 0x0400, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
|
#define IOCTL_KEYBOARD_SET_IME_STATUS \
|
|
CTL_CODE( FILE_DEVICE_KEYBOARD, 0x0401, METHOD_BUFFERED, FILE_ANY_ACCESS )
|
|
|
|
/* Keyboard overrun make code */
|
|
#define KEYBOARD_OVERRUN_MAKE_CODE 0x00FF
|
|
|
|
/* Keyboard input data flags */
|
|
#define KEY_MAKE 0x0000
|
|
#define KEY_BREAK 0x0001
|
|
#define KEY_E0 0x0002
|
|
#define KEY_E1 0x0004
|
|
#define KEY_TERMSRV_SET_LED 0x0008
|
|
#define KEY_TERMSRV_SHADOW 0x0010
|
|
#define KEY_TERMSRV_VKPACKET 0x0020
|
|
|
|
/* Keyboard type testing macros */
|
|
#define FAREAST_KEYBOARD( x ) ((x).Type == 7 || (x).Type == 8)
|
|
#define ENHANCED_KEYBOARD( x ) ((x).Type == 2 || (x).Type == 4 || FAREAST_KEYBOARD( x ))
|
|
|
|
/* Keyboard indicators */
|
|
#define KEYBOARD_LED_INJECTED 0x8000
|
|
#define KEYBOARD_SHADOW 0x4000
|
|
#define KEYBOARD_KANA_LOCK_ON 0x0008
|
|
#define KEYBOARD_CAPS_LOCK_ON 0x0004
|
|
#define KEYBOARD_NUM_LOCK_ON 0x0002
|
|
#define KEYBOARD_SCROLL_LOCK_ON 0x0001
|
|
|
|
/* Keyboard error value base */
|
|
#define KEYBOARD_ERROR_VALUE_BASE 10000
|
|
|
|
/* Keyboard input data */
|
|
typedef struct _KEYBOARD_INPUT_DATA {
|
|
USHORT UnitId;
|
|
USHORT MakeCode;
|
|
USHORT Flags;
|
|
USHORT Reserved;
|
|
ULONG ExtraInformation;
|
|
} KEYBOARD_INPUT_DATA;
|
|
typedef KEYBOARD_INPUT_DATA *PKEYBOARD_INPUT_DATA;
|
|
|
|
/* Keyboard typematic parameters */
|
|
typedef struct _KEYBOARD_TYPEMATIC_PARAMETERS {
|
|
USHORT UnitId;
|
|
USHORT Rate;
|
|
USHORT Delay;
|
|
} KEYBOARD_TYPEMATIC_PARAMETERS;
|
|
typedef KEYBOARD_TYPEMATIC_PARAMETERS *PKEYBOARD_TYPEMATIC_PARAMETERS;
|
|
|
|
/* Keyboard identifier */
|
|
typedef struct _KEYBOARD_ID {
|
|
UCHAR Type;
|
|
UCHAR Subtype;
|
|
} KEYBOARD_ID;
|
|
typedef KEYBOARD_ID *PKEYBOARD_ID;
|
|
|
|
/* Keyboard attributes */
|
|
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;
|
|
typedef KEYBOARD_ATTRIBUTES *PKEYBOARD_ATTRIBUTES;
|
|
|
|
/* Keyboard indicator parameters */
|
|
typedef struct _KEYBOARD_INDICATOR_PARAMETERS {
|
|
USHORT UnitId;
|
|
USHORT LedFlags;
|
|
} KEYBOARD_INDICATOR_PARAMETERS;
|
|
typedef KEYBOARD_INDICATOR_PARAMETERS *PKEYBOARD_INDICATOR_PARAMETERS;
|
|
|
|
/* Indicator list */
|
|
typedef struct _INDICATOR_LIST {
|
|
USHORT MakeCode;
|
|
USHORT IndicatorFlags;
|
|
} INDICATOR_LIST;
|
|
typedef INDICATOR_LIST *PINDICATOR_LIST;
|
|
|
|
/* Keyboard indicator translation */
|
|
typedef struct _KEYBOARD_INDICATOR_TRANSLATION {
|
|
USHORT NumberOfIndicatorKeys;
|
|
INDICATOR_LIST IndicatorList[1];
|
|
} KEYBOARD_INDICATOR_TRANSLATION;
|
|
typedef KEYBOARD_INDICATOR_TRANSLATION *PKEYBOARD_INDICATOR_TRANSLATION;
|
|
|
|
/* Keyboard unit identifier parameter */
|
|
typedef struct _KEYBOARD_UNIT_ID_PARAMETER {
|
|
USHORT UnitId;
|
|
} KEYBOARD_UNIT_ID_PARAMETER;
|
|
typedef KEYBOARD_UNIT_ID_PARAMETER *PKEYBOARD_UNIT_ID_PARAMETER;
|
|
|
|
/* Keyboard IME status */
|
|
typedef struct _KEYBOARD_IME_STATUS {
|
|
USHORT UnitId;
|
|
ULONG ImeOpen;
|
|
ULONG ImeConvMode;
|
|
} KEYBOARD_IME_STATUS;
|
|
typedef KEYBOARD_IME_STATUS *PKEYBOARD_IME_STATUS;
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
#endif /* _NTDDKBD_ */
|