1 // Mouse definitions common to both mouse class and port drivers
3 #define IO_MOUSE_INCREMENT 6
4 #define MOUSE_BUFFER_SIZE 32
6 #define IOCTL_INTERNAL_MOUSE_CONNECT CTL_CODE(FILE_DEVICE_MOUSE, 0x0080, METHOD_NEITHER, FILE_ANY_ACCESS)
7 #define IOCTL_INTERNAL_MOUSE_DISCONNECT CTL_CODE(FILE_DEVICE_MOUSE, 0x0100, METHOD_NEITHER, FILE_ANY_ACCESS)
8 #define IOCTL_INTERNAL_MOUSE_ENABLE CTL_CODE(FILE_DEVICE_MOUSE, 0x0200, METHOD_NEITHER, FILE_ANY_ACCESS)
9 #define IOCTL_INTERNAL_MOUSE_DISABLE CTL_CODE(FILE_DEVICE_MOUSE, 0x0400, METHOD_NEITHER, FILE_ANY_ACCESS)
11 #define MOUSE_BUTTON_1_DOWN 0x0001
12 #define MOUSE_BUTTON_1_UP 0x0002
13 #define MOUSE_BUTTON_2_DOWN 0x0004
14 #define MOUSE_BUTTON_2_UP 0x0008
15 #define MOUSE_BUTTON_3_DOWN 0x0010
16 #define MOUSE_BUTTON_3_UP 0x0020
17 #define MOUSE_BUTTON_4_DOWN 0x0040
18 #define MOUSE_BUTTON_4_UP 0x0080
19 #define MOUSE_BUTTON_5_DOWN 0x0100
20 #define MOUSE_BUTTON_5_UP 0x0200
21 #define MOUSE_WHEEL 0x0400
23 #define MOUSE_LEFT_BUTTON_DOWN MOUSE_BUTTON_1_DOWN
24 #define MOUSE_LEFT_BUTTON_UP MOUSE_BUTTON_1_UP
25 #define MOUSE_RIGHT_BUTTON_DOWN MOUSE_BUTTON_2_DOWN
26 #define MOUSE_RIGHT_BUTTON_UP MOUSE_BUTTON_2_UP
27 #define MOUSE_MIDDLE_BUTTON_DOWN MOUSE_BUTTON_3_DOWN
28 #define MOUSE_MIDDLE_BUTTON_UP MOUSE_BUTTON_3_UP
30 /* Mouse input data structure */
31 typedef struct _MOUSE_INPUT_DATA {
44 ULONG ExtraInformation;
45 } MOUSE_INPUT_DATA, *PMOUSE_INPUT_DATA;
47 typedef struct _CLASS_INFORMATION {
48 PDEVICE_OBJECT DeviceObject;
50 } CLASS_INFORMATION, *PCLASS_INFORMATION;
52 typedef struct _GDI_INFORMATION {
54 } GDI_INFORMATION, *PGDI_INFORMATION;
58 (*PSERVICE_CALLBACK_ROUTINE) (
59 IN PVOID NormalContext,
60 IN PVOID SystemArgument1,
61 IN PVOID SystemArgument2,
62 IN OUT PVOID SystemArgument3
67 (*PGDI_SERVICE_CALLBACK_ROUTINE) (
68 IN PVOID SystemArgument1,
69 IN ULONG SystemArgument2