-// Mouse definitions common to both mouse class and port drivers
+/* Mouse definitions common to both mouse class and port drivers */
+
+#define DD_MOUSE_DEVICE_NAME "\\Device\\PointerClass"
+#define DD_MOUSE_DEVICE_NAME_U L"\\Device\\PointerClass"
#define IO_MOUSE_INCREMENT 6
#define MOUSE_BUFFER_SIZE 32
#define IOCTL_INTERNAL_MOUSE_ENABLE CTL_CODE(FILE_DEVICE_MOUSE, 0x0200, METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_INTERNAL_MOUSE_DISABLE CTL_CODE(FILE_DEVICE_MOUSE, 0x0400, METHOD_NEITHER, FILE_ANY_ACCESS)
+#define IOCTL_MOUSE_QUERY_ATTRIBUTES CTL_CODE(FILE_DEVICE_MOUSE, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
#define MOUSE_BUTTON_1_DOWN 0x0001
#define MOUSE_BUTTON_1_UP 0x0002
#define MOUSE_BUTTON_2_DOWN 0x0004
#define MOUSE_MIDDLE_BUTTON_DOWN MOUSE_BUTTON_3_DOWN
#define MOUSE_MIDDLE_BUTTON_UP MOUSE_BUTTON_3_UP
+#define MOUSE_SERIAL_HARDWARE 0x0004
+#define WHEELMOUSE_SERIAL_HARDWARE 0x0040
+
+typedef struct _MOUSE_ATTRIBUTES {
+ USHORT MouseIdentifier;
+ USHORT NumberOfButtons;
+ USHORT SampleRate;
+ ULONG InputDataQueueLength;
+} MOUSE_ATTRIBUTES, *PMOUSE_ATTRIBUTES;
+
/* Mouse input data structure */
typedef struct _MOUSE_INPUT_DATA {
USHORT UnitId;