3 #define _HIDPI_NO_FUNCTION_MACROS_
18 // lower device object
20 PDEVICE_OBJECT NextDeviceObject
;
23 // irp which is used for reading input reports
30 KEVENT ReadCompletionEvent
;
33 // device object for class callback
35 PDEVICE_OBJECT ClassDeviceObject
;
45 USHORT UsageListLength
;
48 // current usage list length
50 PUSAGE_AND_PAGE CurrentUsageList
;
53 // previous usage list
55 PUSAGE_AND_PAGE PreviousUsageList
;
58 // removed usage item list
60 PUSAGE_AND_PAGE BreakUsageList
;
63 // new item usage list
65 PUSAGE_AND_PAGE MakeUsageList
;
70 PHIDP_PREPARSED_DATA PreparsedData
;
73 // mdl for reading input report
78 // input report buffer
83 // input report length
88 // file object the device is reading reports from
90 PFILE_OBJECT FileObject
;
93 // report read is active
95 UCHAR ReadReportActive
;
100 UCHAR StopReadReport
;
103 // keyboard attributes
105 KEYBOARD_ATTRIBUTES Attributes
;
108 // keyboard modifier state
110 HIDP_KEYBOARD_MODIFIER_STATE ModifierState
;
113 // keyboard indicator state
115 KEYBOARD_INDICATOR_PARAMETERS KeyboardIndicator
;
118 // keyboard type matic
120 KEYBOARD_TYPEMATIC_PARAMETERS KeyboardTypematic
;
124 }KBDHID_DEVICE_EXTENSION
, *PKBDHID_DEVICE_EXTENSION
;
126 /* defaults from kbfiltr.h */
127 #define KEYBOARD_TYPEMATIC_RATE_MINIMUM 2
128 #define KEYBOARD_TYPEMATIC_RATE_MAXIMUM 30
129 #define KEYBOARD_TYPEMATIC_RATE_DEFAULT 30
130 #define KEYBOARD_TYPEMATIC_DELAY_MINIMUM 250
131 #define KEYBOARD_TYPEMATIC_DELAY_MAXIMUM 1000
132 #define KEYBOARD_TYPEMATIC_DELAY_DEFAULT 250
134 /* FIXME: write kbd.h */
135 #define MICROSOFT_KBD_FUNC 12
136 #define KEYBOARD_TYPE_UNKNOWN (0x51)
137 #define MICROSOFT_KBD_101_TYPE 0
144 IN PKBDHID_DEVICE_EXTENSION DeviceExtension
);