Sync with trunk r58740.
[reactos.git] / drivers / hid / mouhid / mouhid.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 <ntddmou.h>
11 #include <kbdmou.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 // mouse type
44 //
45 USHORT MouseIdentifier;
46
47 //
48 // wheel usage page
49 //
50 USHORT WheelUsagePage;
51
52 //
53 // usage list length
54 //
55 USHORT UsageListLength;
56
57 //
58 // current usage list length
59 //
60 PUSAGE CurrentUsageList;
61
62 //
63 // previous usage list
64 //
65 PUSAGE PreviousUsageList;
66
67 //
68 // removed usage item list
69 //
70 PUSAGE BreakUsageList;
71
72 //
73 // new item usage list
74 //
75 PUSAGE MakeUsageList;
76
77 //
78 // preparsed data
79 //
80 PVOID PreparsedData;
81
82 //
83 // mdl for reading input report
84 //
85 PMDL ReportMDL;
86
87 //
88 // input report buffer
89 //
90 PCHAR Report;
91
92 //
93 // input report length
94 //
95 ULONG ReportLength;
96
97 //
98 // file object the device is reading reports from
99 //
100 PFILE_OBJECT FileObject;
101
102 //
103 // report read is active
104 //
105 UCHAR ReadReportActive;
106
107 //
108 // stop reading flag
109 //
110 UCHAR StopReadReport;
111
112 //
113 // mouse absolute
114 //
115 UCHAR MouseAbsolute;
116
117 //
118 // value caps x
119 //
120 HIDP_VALUE_CAPS ValueCapsX;
121
122 //
123 // value caps y button
124 //
125 HIDP_VALUE_CAPS ValueCapsY;
126
127
128 }MOUHID_DEVICE_EXTENSION, *PMOUHID_DEVICE_EXTENSION;
129
130 #define WHEEL_DELTA 120
131
132 NTSTATUS
133 MouHid_InitiateRead(
134 IN PMOUHID_DEVICE_EXTENSION DeviceExtension);