[LT2013]
[reactos.git] / drivers / hid / kbdhid / kbdhid.h
1 #pragma once
2
3 #define _HIDPI_NO_FUNCTION_MACROS_
4 #include <ntddk.h>
5 #include <hidclass.h>
6 #include <hidpddi.h>
7 #include <hidpi.h>
8 #define NDEBUG
9 #include <debug.h>
10 #include <kbdmou.h>
11 //#include <kbd.h>
12 #include <ntddkbd.h>
13 #include <debug.h>
14
15
16 typedef struct
17 {
18 //
19 // lower device object
20 //
21 PDEVICE_OBJECT NextDeviceObject;
22
23 //
24 // irp which is used for reading input reports
25 //
26 PIRP Irp;
27
28 //
29 // event
30 //
31 KEVENT ReadCompletionEvent;
32
33 //
34 // device object for class callback
35 //
36 PDEVICE_OBJECT ClassDeviceObject;
37
38 //
39 // class callback
40 //
41 PVOID ClassService;
42
43 //
44 // usage list length
45 //
46 USHORT UsageListLength;
47
48 //
49 // current usage list length
50 //
51 PUSAGE_AND_PAGE CurrentUsageList;
52
53 //
54 // previous usage list
55 //
56 PUSAGE_AND_PAGE PreviousUsageList;
57
58 //
59 // removed usage item list
60 //
61 PUSAGE_AND_PAGE BreakUsageList;
62
63 //
64 // new item usage list
65 //
66 PUSAGE_AND_PAGE MakeUsageList;
67
68 //
69 // preparsed data
70 //
71 PHIDP_PREPARSED_DATA PreparsedData;
72
73 //
74 // mdl for reading input report
75 //
76 PMDL ReportMDL;
77
78 //
79 // input report buffer
80 //
81 PCHAR Report;
82
83 //
84 // input report length
85 //
86 ULONG ReportLength;
87
88 //
89 // file object the device is reading reports from
90 //
91 PFILE_OBJECT FileObject;
92
93 //
94 // report read is active
95 //
96 UCHAR ReadReportActive;
97
98 //
99 // stop reading flag
100 //
101 UCHAR StopReadReport;
102
103 //
104 // keyboard attributes
105 //
106 KEYBOARD_ATTRIBUTES Attributes;
107
108 //
109 // keyboard modifier state
110 //
111 HIDP_KEYBOARD_MODIFIER_STATE ModifierState;
112
113 //
114 // keyboard indicator state
115 //
116 KEYBOARD_INDICATOR_PARAMETERS KeyboardIndicator;
117
118 //
119 // keyboard type matic
120 //
121 KEYBOARD_TYPEMATIC_PARAMETERS KeyboardTypematic;
122
123
124
125 }KBDHID_DEVICE_EXTENSION, *PKBDHID_DEVICE_EXTENSION;
126
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
134
135 /* FIXME: write kbd.h */
136 #define MICROSOFT_KBD_FUNC 12
137 #define KEYBOARD_TYPE_UNKNOWN (0x51)
138 #define MICROSOFT_KBD_101_TYPE 0
139
140
141
142
143 NTSTATUS
144 KbdHid_InitiateRead(
145 IN PKBDHID_DEVICE_EXTENSION DeviceExtension);