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
;
44 // buffer for the four usage lists below
46 PVOID UsageListBuffer
;
51 USHORT UsageListLength
;
54 // current usage list length
56 PUSAGE_AND_PAGE CurrentUsageList
;
59 // previous usage list
61 PUSAGE_AND_PAGE PreviousUsageList
;
64 // removed usage item list
66 PUSAGE_AND_PAGE BreakUsageList
;
69 // new item usage list
71 PUSAGE_AND_PAGE MakeUsageList
;
76 PHIDP_PREPARSED_DATA PreparsedData
;
79 // mdl for reading input report
84 // input report buffer
89 // input report length
94 // file object the device is reading reports from
96 PFILE_OBJECT FileObject
;
99 // report read is active
101 UCHAR ReadReportActive
;
106 UCHAR StopReadReport
;
109 // keyboard attributes
111 KEYBOARD_ATTRIBUTES Attributes
;
114 // keyboard modifier state
116 HIDP_KEYBOARD_MODIFIER_STATE ModifierState
;
119 // keyboard indicator state
121 KEYBOARD_INDICATOR_PARAMETERS KeyboardIndicator
;
124 // keyboard type matic
126 KEYBOARD_TYPEMATIC_PARAMETERS KeyboardTypematic
;
128 } KBDHID_DEVICE_EXTENSION
, *PKBDHID_DEVICE_EXTENSION
;
130 /* defaults from kbfiltr.h */
131 #define KEYBOARD_TYPEMATIC_RATE_MINIMUM 2
132 #define KEYBOARD_TYPEMATIC_RATE_MAXIMUM 30
133 #define KEYBOARD_TYPEMATIC_RATE_DEFAULT 30
134 #define KEYBOARD_TYPEMATIC_DELAY_MINIMUM 250
135 #define KEYBOARD_TYPEMATIC_DELAY_MAXIMUM 1000
136 #define KEYBOARD_TYPEMATIC_DELAY_DEFAULT 250
138 /* FIXME: write kbd.h */
139 #define MICROSOFT_KBD_FUNC 12
140 #define KEYBOARD_TYPE_UNKNOWN (0x51)
141 #define MICROSOFT_KBD_101_TYPE 0
146 IN PKBDHID_DEVICE_EXTENSION DeviceExtension
);
148 #define KBDHID_TAG 'diHK'