3 #define _HIDPI_NO_FUNCTION_MACROS_
19 // lower device object
21 PDEVICE_OBJECT NextDeviceObject
;
24 // irp which is used for reading input reports
31 KEVENT ReadCompletionEvent
;
34 // device object for class callback
36 PDEVICE_OBJECT ClassDeviceObject
;
46 USHORT UsageListLength
;
49 // current usage list length
51 PUSAGE_AND_PAGE CurrentUsageList
;
54 // previous usage list
56 PUSAGE_AND_PAGE PreviousUsageList
;
59 // removed usage item list
61 PUSAGE_AND_PAGE BreakUsageList
;
64 // new item usage list
66 PUSAGE_AND_PAGE MakeUsageList
;
71 PHIDP_PREPARSED_DATA PreparsedData
;
74 // mdl for reading input report
79 // input report buffer
84 // input report length
89 // file object the device is reading reports from
91 PFILE_OBJECT FileObject
;
94 // report read is active
96 UCHAR ReadReportActive
;
101 UCHAR StopReadReport
;
104 // keyboard attributes
106 KEYBOARD_ATTRIBUTES Attributes
;
109 // keyboard modifier state
111 HIDP_KEYBOARD_MODIFIER_STATE ModifierState
;
114 // keyboard indicator state
116 KEYBOARD_INDICATOR_PARAMETERS KeyboardIndicator
;
119 // keyboard type matic
121 KEYBOARD_TYPEMATIC_PARAMETERS KeyboardTypematic
;
125 }KBDHID_DEVICE_EXTENSION
, *PKBDHID_DEVICE_EXTENSION
;
127 /* defaults from kbfiltr.h */
128 #define KEYBOARD_TYPEMATIC_RATE_MINIMUM 2
129 #define KEYBOARD_TYPEMATIC_RATE_MAXIMUM 30
130 #define KEYBOARD_TYPEMATIC_RATE_DEFAULT 30
131 #define KEYBOARD_TYPEMATIC_DELAY_MINIMUM 250
132 #define KEYBOARD_TYPEMATIC_DELAY_MAXIMUM 1000
133 #define KEYBOARD_TYPEMATIC_DELAY_DEFAULT 250
135 /* FIXME: write kbd.h */
136 #define MICROSOFT_KBD_FUNC 12
137 #define KEYBOARD_TYPE_UNKNOWN (0x51)
138 #define MICROSOFT_KBD_101_TYPE 0
145 IN PKBDHID_DEVICE_EXTENSION DeviceExtension
);