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