mouclass!MouseClassReadCopyData调试记录实体机器ps2鼠标--server03调试指南

mouclass!MouseClassReadCopyData调试记录实体机器

0: kd> x mouclass!*callback

ba9ab596 mouclass!MouseClassServiceCallback (struct _DEVICE_OBJECT *, struct _MOUSE_INPUT_DATA *, struct _MOUSE_INPUT_DATA *, unsigned long *)

ba9af580 mouclass!MouDeviceMapQueryCallback (unsigned short *, unsigned long, void *, unsigned long, void *, void *)

0: kd> u ba9ab596

mouclass!MouseClassServiceCallback [d:\srv03rtm\drivers\input\mouclass\mouclass.c @ 2416]:

ba9ab596 55 push ebp

ba9ab597 8bec mov ebp,esp

ba9ab599 83ec0c sub esp,0Ch

ba9ab59c 53 push ebx

ba9ab59d 56 push esi

ba9ab59e 57 push edi

ba9ab59f 6820b09aba push offset mouclass!MouseClassHandleRead+0x104 (ba9ab020)

ba9ab5a4 6a02 push 2

0: kd> bp mouclass!MouseClassServiceCallback

0: kd> g

Breakpoint 4 hit

mouclass!MouseClassServiceCallback:

ba9ab596 55 push ebp

0: kd> kc

00 mouclass!MouseClassServiceCallback
01 i8042prt!I8042MouseIsrDpc
02 nt!KiRetireDpcList

03 nt!KiIdleLoop

0: kd> x mouclass!Globals

ba9ae040 mouclass!Globals = struct _GLOBALS

0: kd> dx -id 0,0,807286c0 -r1 (*((mouclass!_GLOBALS *)0xba9ae040))

(*((mouclass!_GLOBALS *)0xba9ae040)) [Type: _GLOBALS]

+0x000\] Debug : 0x0 \[Type: unsigned long

+0x004\] GrandMaster : 0x0 \[Type: _DEVICE_EXTENSION \*

+0x008\] AssocClassList : 0x0 \[Type: _PORT \*

+0x00c\] NumAssocClass : 0x0 \[Type: unsigned long

+0x010\] Opens : 0 \[Type: long

+0x014\] NumberLegacyPorts : 0x0 \[Type: unsigned long

+0x018\] Mutex \[Type: _FAST_MUTEX

+0x038\] ConnectOneClassToOnePort : 0x1 \[Type: unsigned long

+0x03c\] PortsServiced : 0x3 \[Type: unsigned long

+0x040\] InitExtension \[Type: _DEVICE_EXTENSION

+0x150\] RegistryPath : "\\REGISTRY\\MACHINE\\SYSTEM\\ControlSet001\\Services\\Mouclass" \[Type: _UNICODE_STRING

+0x158\] BaseClassName : "PointerClass" \[Type: _UNICODE_STRING

+0x160\] BaseClassBuffer \[Type: unsigned short \[256\]

+0x360\] LegacyDeviceList \[Type: _LIST_ENTRY

0: kd> ed ba9ae040 f

0: kd> g

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: port queue length 0x18, read length 0xf0

MOUCLASS-MouseClassServiceCallback: number of bytes to move from port to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d6a0 to 0x8c89a2e0

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x0

MOUCLASS-MouseClassServiceCallback: exit

MOUCLASS-MouseClassRead: enter

Breakpoint 4 hit

mouclass!MouseClassServiceCallback:

ba9ab596 55 push ebp

0: kd> x win32k!ProcessMouseInput

bf8e9149 win32k!ProcessMouseInput (struct tagDEVICEINFO *)

0: kd> ba e1 win32k!ProcessMouseInput

0: kd> x win32k!queuqu*

0: kd> x win32k!queue*

bf8ff97f win32k!QueuePowerRequest (struct _WIN32_POWEREVENT_PARAMETERS *)

bf86a30e win32k!QueueNotifyMessage (struct tagWND *, unsigned int, unsigned int, long)

bf8e7542 win32k!QueueMouseEvent (unsigned short, unsigned short, unsigned long, struct tagPOINT, long, void *, struct _MOUSE_INPUT_DATA *, int, int)

0: kd> u bf8e7542

win32k!QueueMouseEvent [d:\srv03rtm\windows\core\ntuser\kernel\ntinput.c @ 1844]:

bf8e7542 ?? ???

^ Memory access error in 'u bf8e7542'

0: kd> ba e1 win32k!QueueMouseEvent

0: kd> g

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: port queue length 0x18, read length 0xf0

MOUCLASS-MouseClassServiceCallback: number of bytes to move from port to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d6b8 to 0x8c89a2e0

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x0

MOUCLASS-MouseClassServiceCallback: exit

Breakpoint 5 hit

win32k!ProcessMouseInput:

bf8e9149 55 push ebp

0: kd> dv

pMouseInfo = 0xe16e8220

ptLastMove = {x=-1081175735 y=8}

0: kd> dx -id 0,0,807286c0 -r1 ((win32k!tagDEVICEINFO *)0xe16e8220)

((win32k!tagDEVICEINFO *)0xe16e8220) : 0xe16e8220 [Type: tagDEVICEINFO *]

+0x000\] head \[Type: _HEAD

+0x008\] pNext : 0x0 \[Type: tagDEVICEINFO \*

+0x00c\] type : 0x0 \[Type: unsigned char

+0x00d\] bFlags : 0x2 \[Type: unsigned char

+0x00e\] usActions : 0x0 \[Type: unsigned short

+0x010\] nRetryRead : 0x0 \[Type: unsigned char

+0x014\] ustrName : "\\??\\ACPI#PNP0F03#4\&415b4c\&0#{378de44c-56ef-11d1-bc8c-00a0c91405dd}" \[Type: _UNICODE_STRING

+0x01c\] handle : 0x214 \[Type: void \*

+0x020\] NotificationEntry : 0xe13d2840 \[Type: void \*

+0x024\] pkeHidChangeCompleted : 0x8c8969e8 \[Type: _KEVENT \*

+0x028\] iosb \[Type: _IO_STATUS_BLOCK

+0x030\] ReadStatus : 259 \[Type: long

+0x034\] OpenerProcess : 0x174 \[Type: void \*

+0x038\] OpenStatus : 0 \[Type: long

+0x03c\] AttrStatus : 0 \[Type: long

+0x040\] timeStartRead : 0xffc9cfb2 \[Type: unsigned long

+0x044\] timeEndRead : 0xffc9cfb5 \[Type: unsigned long

+0x048\] nReadsOutstanding : 0 \[Type: int

+0x04c\] mouse \[Type: tagMOUSE_DEVICE_INFO

+0x04c\] keyboard \[Type: tagKEYBOARD_DEVICE_INFO

+0x04c\] hid \[Type: tagHID_DEVICE_INFO

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_IO_STATUS_BLOCK *)0xe16e8248))

(*((win32k!_IO_STATUS_BLOCK *)0xe16e8248)) [Type: _IO_STATUS_BLOCK]

+0x000\] Status : 0 \[Type: long

+0x000\] Pointer : 0x0 \[Type: void \*

+0x004\] Information : 0x18 \[Type: unsigned long

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!tagMOUSE_DEVICE_INFO *)0xe16e826c))

(*((win32k!tagMOUSE_DEVICE_INFO *)0xe16e826c)) [Type: tagMOUSE_DEVICE_INFO]

+0x000\] Attr \[Type: _MOUSE_ATTRIBUTES

+0x00c\] Data \[Type: _MOUSE_INPUT_DATA \[10\]

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA (*)[10])0xe16e8278))

(*((win32k!_MOUSE_INPUT_DATA (*)[10])0xe16e8278)) [Type: _MOUSE_INPUT_DATA [10]]

0\] \[Type: _MOUSE_INPUT_DATA

1\] \[Type: _MOUSE_INPUT_DATA

2\] \[Type: _MOUSE_INPUT_DATA

3\] \[Type: _MOUSE_INPUT_DATA

4\] \[Type: _MOUSE_INPUT_DATA

5\] \[Type: _MOUSE_INPUT_DATA

6\] \[Type: _MOUSE_INPUT_DATA

7\] \[Type: _MOUSE_INPUT_DATA

8\] \[Type: _MOUSE_INPUT_DATA

9\] \[Type: _MOUSE_INPUT_DATA

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA *)0xe16e8278))

(*((win32k!_MOUSE_INPUT_DATA *)0xe16e8278)) [Type: _MOUSE_INPUT_DATA]

+0x000\] UnitId : 0x0 \[Type: unsigned short

+0x002\] Flags : 0x4 \[Type: unsigned short

+0x004\] Buttons : 0x0 \[Type: unsigned long

+0x004\] ButtonFlags : 0x0 \[Type: unsigned short

+0x006\] ButtonData : 0x0 \[Type: unsigned short

+0x008\] RawButtons : 0x0 \[Type: unsigned long

+0x00c\] LastX : 170 \[Type: long

+0x010\] LastY : 0 \[Type: long

+0x014\] ExtraInformation : 0x0 \[Type: unsigned long

0: kd> g

MOUCLASS-MouseClassRead: enter

MOUCLASS-MouseClassDeviceControl: enter

MOUCLASS-MouseClassDeviceControl: exit

Breakpoint 4 hit

mouclass!MouseClassServiceCallback:

ba9ab596 55 push ebp

0: kd> g

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: port queue length 0x18, read length 0xf0

MOUCLASS-MouseClassServiceCallback: number of bytes to move from port to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d6d0 to 0x8c89a2e0

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x0

MOUCLASS-MouseClassServiceCallback: exit

Breakpoint 5 hit

win32k!ProcessMouseInput:

bf8e9149 55 push ebp

0: kd> dv

pMouseInfo = 0xe16e8220

ptLastMove = {x=-1081175735 y=8}

0: kd> dx -id 0,0,807286c0 -r1 ((win32k!tagDEVICEINFO *)0xe16e8220)

((win32k!tagDEVICEINFO *)0xe16e8220) : 0xe16e8220 [Type: tagDEVICEINFO *]

+0x000\] head \[Type: _HEAD

+0x008\] pNext : 0x0 \[Type: tagDEVICEINFO \*

+0x00c\] type : 0x0 \[Type: unsigned char

+0x00d\] bFlags : 0x2 \[Type: unsigned char

+0x00e\] usActions : 0x0 \[Type: unsigned short

+0x010\] nRetryRead : 0x0 \[Type: unsigned char

+0x014\] ustrName : "\\??\\ACPI#PNP0F03#4\&415b4c\&0#{378de44c-56ef-11d1-bc8c-00a0c91405dd}" \[Type: _UNICODE_STRING

+0x01c\] handle : 0x214 \[Type: void \*

+0x020\] NotificationEntry : 0xe13d2840 \[Type: void \*

+0x024\] pkeHidChangeCompleted : 0x8c8969e8 \[Type: _KEVENT \*

+0x028\] iosb \[Type: _IO_STATUS_BLOCK

+0x030\] ReadStatus : 259 \[Type: long

+0x034\] OpenerProcess : 0x174 \[Type: void \*

+0x038\] OpenStatus : 0 \[Type: long

+0x03c\] AttrStatus : 0 \[Type: long

+0x040\] timeStartRead : 0xffc9d147 \[Type: unsigned long

+0x044\] timeEndRead : 0xffc9d148 \[Type: unsigned long

+0x048\] nReadsOutstanding : 0 \[Type: int

+0x04c\] mouse \[Type: tagMOUSE_DEVICE_INFO

+0x04c\] keyboard \[Type: tagKEYBOARD_DEVICE_INFO

+0x04c\] hid \[Type: tagHID_DEVICE_INFO

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_IO_STATUS_BLOCK *)0xe16e8248))

(*((win32k!_IO_STATUS_BLOCK *)0xe16e8248)) [Type: _IO_STATUS_BLOCK]

+0x000\] Status : 0 \[Type: long

+0x000\] Pointer : 0x0 \[Type: void \*

+0x004\] Information : 0x18 \[Type: unsigned long

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!tagMOUSE_DEVICE_INFO *)0xe16e826c))

(*((win32k!tagMOUSE_DEVICE_INFO *)0xe16e826c)) [Type: tagMOUSE_DEVICE_INFO]

+0x000\] Attr \[Type: _MOUSE_ATTRIBUTES

+0x00c\] Data \[Type: _MOUSE_INPUT_DATA \[10\]

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA (*)[10])0xe16e8278))

(*((win32k!_MOUSE_INPUT_DATA (*)[10])0xe16e8278)) [Type: _MOUSE_INPUT_DATA [10]]

0\] \[Type: _MOUSE_INPUT_DATA

1\] \[Type: _MOUSE_INPUT_DATA

2\] \[Type: _MOUSE_INPUT_DATA

3\] \[Type: _MOUSE_INPUT_DATA

4\] \[Type: _MOUSE_INPUT_DATA

5\] \[Type: _MOUSE_INPUT_DATA

6\] \[Type: _MOUSE_INPUT_DATA

7\] \[Type: _MOUSE_INPUT_DATA

8\] \[Type: _MOUSE_INPUT_DATA

9\] \[Type: _MOUSE_INPUT_DATA

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA *)0xe16e8278))

(*((win32k!_MOUSE_INPUT_DATA *)0xe16e8278)) [Type: _MOUSE_INPUT_DATA]

+0x000\] UnitId : 0x0 \[Type: unsigned short

+0x002\] Flags : 0x0 \[Type: unsigned short

+0x004\] Buttons : 0x0 \[Type: unsigned long

+0x004\] ButtonFlags : 0x0 \[Type: unsigned short

+0x006\] ButtonData : 0x0 \[Type: unsigned short

+0x008\] RawButtons : 0x0 \[Type: unsigned long

+0x00c\] LastX : 4 \[Type: long

+0x010\] LastY : -1 \[Type: long

+0x014\] ExtraInformation : 0x0 \[Type: unsigned long

0: kd> g

Breakpoint 6 hit

win32k!QueueMouseEvent:

bf8e7542 55 push ebp

0: kd> dv

ButtonFlags = 0

ButtonData = 0

ExtraInfo = 0

ptMouse = {x=516 y=383}

time = 0n-3545593

hDevice = 0x00010047

pmei = 0xe16e8278

bInjected = 0n0

bWakeRIT = 0n1

0: kd> g

MOUCLASS-MouseClassRead: enter

Breakpoint 4 hit

mouclass!MouseClassServiceCallback:

ba9ab596 55 push ebp

0: kd> g

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: port queue length 0x18, read length 0xf0

MOUCLASS-MouseClassServiceCallback: number of bytes to move from port to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d6e8 to 0x8c89a2e0

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x0

MOUCLASS-MouseClassServiceCallback: exit

Breakpoint 5 hit

win32k!ProcessMouseInput:

bf8e9149 55 push ebp

0: kd> dv

pMouseInfo = 0xe16e8220

ptLastMove = {x=-1081175735 y=8}

0: kd> dx -id 0,0,807286c0 -r1 ((win32k!tagDEVICEINFO *)0xe16e8220)

((win32k!tagDEVICEINFO *)0xe16e8220) : 0xe16e8220 [Type: tagDEVICEINFO *]

+0x000\] head \[Type: _HEAD

+0x008\] pNext : 0x0 \[Type: tagDEVICEINFO \*

+0x00c\] type : 0x0 \[Type: unsigned char

+0x00d\] bFlags : 0x2 \[Type: unsigned char

+0x00e\] usActions : 0x0 \[Type: unsigned short

+0x010\] nRetryRead : 0x0 \[Type: unsigned char

+0x014\] ustrName : "\\??\\ACPI#PNP0F03#4\&415b4c\&0#{378de44c-56ef-11d1-bc8c-00a0c91405dd}" \[Type: _UNICODE_STRING

+0x01c\] handle : 0x214 \[Type: void \*

+0x020\] NotificationEntry : 0xe13d2840 \[Type: void \*

+0x024\] pkeHidChangeCompleted : 0x8c8969e8 \[Type: _KEVENT \*

+0x028\] iosb \[Type: _IO_STATUS_BLOCK

+0x030\] ReadStatus : 259 \[Type: long

+0x034\] OpenerProcess : 0x174 \[Type: void \*

+0x038\] OpenStatus : 0 \[Type: long

+0x03c\] AttrStatus : 0 \[Type: long

+0x040\] timeStartRead : 0xffc9e609 \[Type: unsigned long

+0x044\] timeEndRead : 0xffc9e60c \[Type: unsigned long

+0x048\] nReadsOutstanding : 0 \[Type: int

+0x04c\] mouse \[Type: tagMOUSE_DEVICE_INFO

+0x04c\] keyboard \[Type: tagKEYBOARD_DEVICE_INFO

+0x04c\] hid \[Type: tagHID_DEVICE_INFO

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_IO_STATUS_BLOCK *)0xe16e8248))

(*((win32k!_IO_STATUS_BLOCK *)0xe16e8248)) [Type: _IO_STATUS_BLOCK]

+0x000\] Status : 0 \[Type: long

+0x000\] Pointer : 0x0 \[Type: void \*

+0x004\] Information : 0x18 \[Type: unsigned long

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!tagMOUSE_DEVICE_INFO *)0xe16e826c))

(*((win32k!tagMOUSE_DEVICE_INFO *)0xe16e826c)) [Type: tagMOUSE_DEVICE_INFO]

+0x000\] Attr \[Type: _MOUSE_ATTRIBUTES

+0x00c\] Data \[Type: _MOUSE_INPUT_DATA \[10\]

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA (*)[10])0xe16e8278))

(*((win32k!_MOUSE_INPUT_DATA (*)[10])0xe16e8278)) [Type: _MOUSE_INPUT_DATA [10]]

0\] \[Type: _MOUSE_INPUT_DATA

1\] \[Type: _MOUSE_INPUT_DATA

2\] \[Type: _MOUSE_INPUT_DATA

3\] \[Type: _MOUSE_INPUT_DATA

4\] \[Type: _MOUSE_INPUT_DATA

5\] \[Type: _MOUSE_INPUT_DATA

6\] \[Type: _MOUSE_INPUT_DATA

7\] \[Type: _MOUSE_INPUT_DATA

8\] \[Type: _MOUSE_INPUT_DATA

9\] \[Type: _MOUSE_INPUT_DATA

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA *)0xe16e8278))

(*((win32k!_MOUSE_INPUT_DATA *)0xe16e8278)) [Type: _MOUSE_INPUT_DATA]

+0x000\] UnitId : 0x0 \[Type: unsigned short

+0x002\] Flags : 0x4 \[Type: unsigned short

+0x004\] Buttons : 0x0 \[Type: unsigned long

+0x004\] ButtonFlags : 0x0 \[Type: unsigned short

+0x006\] ButtonData : 0x0 \[Type: unsigned short

+0x008\] RawButtons : 0x0 \[Type: unsigned long

+0x00c\] LastX : -86 \[Type: long

+0x010\] LastY : -1 \[Type: long

+0x014\] ExtraInformation : 0x0 \[Type: unsigned long

0: kd> g

MOUCLASS-MouseClassRead: enter

MOUCLASS-MouseClassDeviceControl: enter

MOUCLASS-MouseClassDeviceControl: exit

Breakpoint 4 hit

mouclass!MouseClassServiceCallback:

ba9ab596 55 push ebp

0: kd> g

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: port queue length 0x18, read length 0xf0

MOUCLASS-MouseClassServiceCallback: number of bytes to move from port to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d700 to 0x8c89a2e0

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x0

MOUCLASS-MouseClassServiceCallback: exit

Breakpoint 5 hit

win32k!ProcessMouseInput:

bf8e9149 55 push ebp

0: kd> dv

pMouseInfo = 0xe16e8220

ptLastMove = {x=-1081175735 y=8}

0: kd> dx -id 0,0,807286c0 -r1 ((win32k!tagDEVICEINFO *)0xe16e8220)

((win32k!tagDEVICEINFO *)0xe16e8220) : 0xe16e8220 [Type: tagDEVICEINFO *]

+0x000\] head \[Type: _HEAD

+0x008\] pNext : 0x0 \[Type: tagDEVICEINFO \*

+0x00c\] type : 0x0 \[Type: unsigned char

+0x00d\] bFlags : 0x2 \[Type: unsigned char

+0x00e\] usActions : 0x0 \[Type: unsigned short

+0x010\] nRetryRead : 0x0 \[Type: unsigned char

+0x014\] ustrName : "\\??\\ACPI#PNP0F03#4\&415b4c\&0#{378de44c-56ef-11d1-bc8c-00a0c91405dd}" \[Type: _UNICODE_STRING

+0x01c\] handle : 0x214 \[Type: void \*

+0x020\] NotificationEntry : 0xe13d2840 \[Type: void \*

+0x024\] pkeHidChangeCompleted : 0x8c8969e8 \[Type: _KEVENT \*

+0x028\] iosb \[Type: _IO_STATUS_BLOCK

+0x030\] ReadStatus : 259 \[Type: long

+0x034\] OpenerProcess : 0x174 \[Type: void \*

+0x038\] OpenStatus : 0 \[Type: long

+0x03c\] AttrStatus : 0 \[Type: long

+0x040\] timeStartRead : 0xffc9e656 \[Type: unsigned long

+0x044\] timeEndRead : 0xffc9e657 \[Type: unsigned long

+0x048\] nReadsOutstanding : 0 \[Type: int

+0x04c\] mouse \[Type: tagMOUSE_DEVICE_INFO

+0x04c\] keyboard \[Type: tagKEYBOARD_DEVICE_INFO

+0x04c\] hid \[Type: tagHID_DEVICE_INFO

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_IO_STATUS_BLOCK *)0xe16e8248))

(*((win32k!_IO_STATUS_BLOCK *)0xe16e8248)) [Type: _IO_STATUS_BLOCK]

+0x000\] Status : 0 \[Type: long

+0x000\] Pointer : 0x0 \[Type: void \*

+0x004\] Information : 0x18 \[Type: unsigned long

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!tagMOUSE_DEVICE_INFO *)0xe16e826c))

(*((win32k!tagMOUSE_DEVICE_INFO *)0xe16e826c)) [Type: tagMOUSE_DEVICE_INFO]

+0x000\] Attr \[Type: _MOUSE_ATTRIBUTES

+0x00c\] Data \[Type: _MOUSE_INPUT_DATA \[10\]

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA (*)[10])0xe16e8278))

(*((win32k!_MOUSE_INPUT_DATA (*)[10])0xe16e8278)) [Type: _MOUSE_INPUT_DATA [10]]

0\] \[Type: _MOUSE_INPUT_DATA

1\] \[Type: _MOUSE_INPUT_DATA

2\] \[Type: _MOUSE_INPUT_DATA

3\] \[Type: _MOUSE_INPUT_DATA

4\] \[Type: _MOUSE_INPUT_DATA

5\] \[Type: _MOUSE_INPUT_DATA

6\] \[Type: _MOUSE_INPUT_DATA

7\] \[Type: _MOUSE_INPUT_DATA

8\] \[Type: _MOUSE_INPUT_DATA

9\] \[Type: _MOUSE_INPUT_DATA

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA *)0xe16e8278))

(*((win32k!_MOUSE_INPUT_DATA *)0xe16e8278)) [Type: _MOUSE_INPUT_DATA]

+0x000\] UnitId : 0x0 \[Type: unsigned short

+0x002\] Flags : 0x0 \[Type: unsigned short

+0x004\] Buttons : 0x0 \[Type: unsigned long

+0x004\] ButtonFlags : 0x0 \[Type: unsigned short

+0x006\] ButtonData : 0x0 \[Type: unsigned short

+0x008\] RawButtons : 0x0 \[Type: unsigned long

+0x00c\] LastX : -4 \[Type: long

+0x010\] LastY : 1 \[Type: long

+0x014\] ExtraInformation : 0x0 \[Type: unsigned long

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA *)0xe16e8290))

(*((win32k!_MOUSE_INPUT_DATA *)0xe16e8290)) [Type: _MOUSE_INPUT_DATA]

+0x000\] UnitId : 0x0 \[Type: unsigned short

+0x002\] Flags : 0x0 \[Type: unsigned short

+0x004\] Buttons : 0x0 \[Type: unsigned long

+0x004\] ButtonFlags : 0x0 \[Type: unsigned short

+0x006\] ButtonData : 0x0 \[Type: unsigned short

+0x008\] RawButtons : 0x0 \[Type: unsigned long

+0x00c\] LastX : 0 \[Type: long

+0x010\] LastY : 0 \[Type: long

+0x014\] ExtraInformation : 0x0 \[Type: unsigned long

0: kd> ed ba9ae040 0

0: kd> g

Breakpoint 6 hit

win32k!QueueMouseEvent:

bf8e7542 55 push ebp

0: kd> dv

ButtonFlags = 0

ButtonData = 0

ExtraInfo = 0

ptMouse = {x=513 y=384}

time = 0n-3540593

hDevice = 0x00010047

pmei = 0xe16e8278

bInjected = 0n0

bWakeRIT = 0n1

0: kd> g

Breakpoint 4 hit

mouclass!MouseClassServiceCallback:

ba9ab596 55 push ebp

0: kd> ed ba9ae040 f

0: kd> x mouclass!*copydata

ba9aad26 mouclass!MouseClassReadCopyData (struct _DEVICE_EXTENSION *, struct _IRP *)

0: kd> u ba9aad26

mouclass!MouseClassReadCopyData [d:\srv03rtm\drivers\input\mouclass\mouclass.c @ 1906]:

ba9aad26 55 push ebp

ba9aad27 8bec mov ebp,esp

ba9aad29 51 push ecx

ba9aad2a 8b450c mov eax,dword ptr [ebp+0Ch]

ba9aad2d 53 push ebx

ba9aad2e 56 push esi

ba9aad2f 8b7508 mov esi,dword ptr [ebp+8]

ba9aad32 ff86a4000000 inc dword ptr [esi+0A4h]

0: kd> bp mouclass!MouseClassReadCopyData

0: kd> g

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: port queue length 0x18, read length 0xf0

MOUCLASS-MouseClassServiceCallback: number of bytes to move from port to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d718 to 0x8c89a2e0

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x0

MOUCLASS-MouseClassServiceCallback: exit

Breakpoint 5 hit

win32k!ProcessMouseInput:

bf8e9149 55 push ebp

0: kd> dv

pMouseInfo = 0xe16e8220

ptLastMove = {x=-1081175735 y=8}

0: kd> dx -id 0,0,807286c0 -r1 ((win32k!tagDEVICEINFO *)0xe16e8220)

((win32k!tagDEVICEINFO *)0xe16e8220) : 0xe16e8220 [Type: tagDEVICEINFO *]

+0x000\] head \[Type: _HEAD

+0x008\] pNext : 0x0 \[Type: tagDEVICEINFO \*

+0x00c\] type : 0x0 \[Type: unsigned char

+0x00d\] bFlags : 0x2 \[Type: unsigned char

+0x00e\] usActions : 0x0 \[Type: unsigned short

+0x010\] nRetryRead : 0x0 \[Type: unsigned char

+0x014\] ustrName : "\\??\\ACPI#PNP0F03#4\&415b4c\&0#{378de44c-56ef-11d1-bc8c-00a0c91405dd}" \[Type: _UNICODE_STRING

+0x01c\] handle : 0x214 \[Type: void \*

+0x020\] NotificationEntry : 0xe13d2840 \[Type: void \*

+0x024\] pkeHidChangeCompleted : 0x8c8969e8 \[Type: _KEVENT \*

+0x028\] iosb \[Type: _IO_STATUS_BLOCK

+0x030\] ReadStatus : 259 \[Type: long

+0x034\] OpenerProcess : 0x174 \[Type: void \*

+0x038\] OpenStatus : 0 \[Type: long

+0x03c\] AttrStatus : 0 \[Type: long

+0x040\] timeStartRead : 0xffc9f991 \[Type: unsigned long

+0x044\] timeEndRead : 0xffc9f993 \[Type: unsigned long

+0x048\] nReadsOutstanding : 0 \[Type: int

+0x04c\] mouse \[Type: tagMOUSE_DEVICE_INFO

+0x04c\] keyboard \[Type: tagKEYBOARD_DEVICE_INFO

+0x04c\] hid \[Type: tagHID_DEVICE_INFO

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_IO_STATUS_BLOCK *)0xe16e8248))

(*((win32k!_IO_STATUS_BLOCK *)0xe16e8248)) [Type: _IO_STATUS_BLOCK]

+0x000\] Status : 0 \[Type: long

+0x000\] Pointer : 0x0 \[Type: void \*

+0x004\] Information : 0x18 \[Type: unsigned long

0: kd> g

MOUCLASS-MouseClassRead: enter

MOUCLASS-MouseClassDeviceControl: enter

MOUCLASS-MouseClassDeviceControl: exit

Breakpoint 4 hit

mouclass!MouseClassServiceCallback:

ba9ab596 55 push ebp

0: kd> g

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: port queue length 0x18, read length 0xf0

MOUCLASS-MouseClassServiceCallback: number of bytes to move from port to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d730 to 0x8c89a2e0

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x0

MOUCLASS-MouseClassServiceCallback: exit

Breakpoint 5 hit

win32k!ProcessMouseInput:

bf8e9149 55 push ebp

0: kd> dv

pMouseInfo = 0xe16e8220

ptLastMove = {x=-1081175735 y=8}

0: kd> dx -id 0,0,807286c0 -r1 ((win32k!tagDEVICEINFO *)0xe16e8220)

((win32k!tagDEVICEINFO *)0xe16e8220) : 0xe16e8220 [Type: tagDEVICEINFO *]

+0x000\] head \[Type: _HEAD

+0x008\] pNext : 0x0 \[Type: tagDEVICEINFO \*

+0x00c\] type : 0x0 \[Type: unsigned char

+0x00d\] bFlags : 0x2 \[Type: unsigned char

+0x00e\] usActions : 0x0 \[Type: unsigned short

+0x010\] nRetryRead : 0x0 \[Type: unsigned char

+0x014\] ustrName : "\\??\\ACPI#PNP0F03#4\&415b4c\&0#{378de44c-56ef-11d1-bc8c-00a0c91405dd}" \[Type: _UNICODE_STRING

+0x01c\] handle : 0x214 \[Type: void \*

+0x020\] NotificationEntry : 0xe13d2840 \[Type: void \*

+0x024\] pkeHidChangeCompleted : 0x8c8969e8 \[Type: _KEVENT \*

+0x028\] iosb \[Type: _IO_STATUS_BLOCK

+0x030\] ReadStatus : 259 \[Type: long

+0x034\] OpenerProcess : 0x174 \[Type: void \*

+0x038\] OpenStatus : 0 \[Type: long

+0x03c\] AttrStatus : 0 \[Type: long

+0x040\] timeStartRead : 0xffc9f9ce \[Type: unsigned long

+0x044\] timeEndRead : 0xffc9f9cf \[Type: unsigned long

+0x048\] nReadsOutstanding : 0 \[Type: int

+0x04c\] mouse \[Type: tagMOUSE_DEVICE_INFO

+0x04c\] keyboard \[Type: tagKEYBOARD_DEVICE_INFO

+0x04c\] hid \[Type: tagHID_DEVICE_INFO

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_IO_STATUS_BLOCK *)0xe16e8248))

(*((win32k!_IO_STATUS_BLOCK *)0xe16e8248)) [Type: _IO_STATUS_BLOCK]

+0x000\] Status : 0 \[Type: long

+0x000\] Pointer : 0x0 \[Type: void \*

+0x004\] Information : 0x18 \[Type: unsigned long

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!tagMOUSE_DEVICE_INFO *)0xe16e826c))

(*((win32k!tagMOUSE_DEVICE_INFO *)0xe16e826c)) [Type: tagMOUSE_DEVICE_INFO]

+0x000\] Attr \[Type: _MOUSE_ATTRIBUTES

+0x00c\] Data \[Type: _MOUSE_INPUT_DATA \[10\]

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA (*)[10])0xe16e8278))

(*((win32k!_MOUSE_INPUT_DATA (*)[10])0xe16e8278)) [Type: _MOUSE_INPUT_DATA [10]]

0\] \[Type: _MOUSE_INPUT_DATA

1\] \[Type: _MOUSE_INPUT_DATA

2\] \[Type: _MOUSE_INPUT_DATA

3\] \[Type: _MOUSE_INPUT_DATA

4\] \[Type: _MOUSE_INPUT_DATA

5\] \[Type: _MOUSE_INPUT_DATA

6\] \[Type: _MOUSE_INPUT_DATA

7\] \[Type: _MOUSE_INPUT_DATA

8\] \[Type: _MOUSE_INPUT_DATA

9\] \[Type: _MOUSE_INPUT_DATA

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA *)0xe16e8278))

(*((win32k!_MOUSE_INPUT_DATA *)0xe16e8278)) [Type: _MOUSE_INPUT_DATA]

+0x000\] UnitId : 0x0 \[Type: unsigned short

+0x002\] Flags : 0x0 \[Type: unsigned short

+0x004\] Buttons : 0x0 \[Type: unsigned long

+0x004\] ButtonFlags : 0x0 \[Type: unsigned short

+0x006\] ButtonData : 0x0 \[Type: unsigned short

+0x008\] RawButtons : 0x0 \[Type: unsigned long

+0x00c\] LastX : 2 \[Type: long

+0x010\] LastY : 0 \[Type: long

+0x014\] ExtraInformation : 0x0 \[Type: unsigned long

0: kd> g

Breakpoint 6 hit

win32k!QueueMouseEvent:

bf8e7542 55 push ebp

0: kd> dv

ButtonFlags = 0

ButtonData = 0

ExtraInfo = 0

ptMouse = {x=513 y=384}

time = 0n-3534031

hDevice = 0x00010047

pmei = 0xe16e8278

bInjected = 0n0

bWakeRIT = 0n1

0: kd> g

MOUCLASS-MouseClassRead: enter

Breakpoint 4 hit

mouclass!MouseClassServiceCallback:

ba9ab596 55 push ebp

0: kd> g

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: port queue length 0x18, read length 0xf0

MOUCLASS-MouseClassServiceCallback: number of bytes to move from port to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d748 to 0x8c89a2e0

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x0

MOUCLASS-MouseClassServiceCallback: exit

Breakpoint 5 hit

win32k!ProcessMouseInput:

bf8e9149 55 push ebp

0: kd> dv

pMouseInfo = 0xe16e8220

ptLastMove = {x=-1081175735 y=8}

0: kd> g

MOUCLASS-MouseClassRead: enter

MOUCLASS-MouseClassDeviceControl: enter

MOUCLASS-MouseClassDeviceControl: exit

Breakpoint 4 hit

mouclass!MouseClassServiceCallback:

ba9ab596 55 push ebp

0: kd> dv

DeviceObject = 0x8ca8e2d0 Device for "\Driver\Mouclass"

InputDataStart = 0x8cb9d760

InputDataEnd = 0x8cb9d778

InputDataConsumed = 0x8071c644

irpSp = 0x00000008

bytesInQueue = 0x8ca8e2d0

bytesToMove = 0x8cb9d778

listHead = struct _LIST_ENTRY [ 0x0 - 0xba9ab597 ]

0: kd> g

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: port queue length 0x18, read length 0xf0

MOUCLASS-MouseClassServiceCallback: number of bytes to move from port to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d760 to 0x8c89a2e0

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x0

MOUCLASS-MouseClassServiceCallback: exit

Breakpoint 5 hit

win32k!ProcessMouseInput:

bf8e9149 55 push ebp

0: kd> dv

pMouseInfo = 0xe16e8220

ptLastMove = {x=-1081175735 y=8}

0: kd> dx -id 0,0,807286c0 -r1 ((win32k!tagDEVICEINFO *)0xe16e8220)

((win32k!tagDEVICEINFO *)0xe16e8220) : 0xe16e8220 [Type: tagDEVICEINFO *]

+0x000\] head \[Type: _HEAD

+0x008\] pNext : 0x0 \[Type: tagDEVICEINFO \*

+0x00c\] type : 0x0 \[Type: unsigned char

+0x00d\] bFlags : 0x2 \[Type: unsigned char

+0x00e\] usActions : 0x0 \[Type: unsigned short

+0x010\] nRetryRead : 0x0 \[Type: unsigned char

+0x014\] ustrName : "\\??\\ACPI#PNP0F03#4\&415b4c\&0#{378de44c-56ef-11d1-bc8c-00a0c91405dd}" \[Type: _UNICODE_STRING

+0x01c\] handle : 0x214 \[Type: void \*

+0x020\] NotificationEntry : 0xe13d2840 \[Type: void \*

+0x024\] pkeHidChangeCompleted : 0x8c8969e8 \[Type: _KEVENT \*

+0x028\] iosb \[Type: _IO_STATUS_BLOCK

+0x030\] ReadStatus : 259 \[Type: long

+0x034\] OpenerProcess : 0x174 \[Type: void \*

+0x038\] OpenStatus : 0 \[Type: long

+0x03c\] AttrStatus : 0 \[Type: long

+0x040\] timeStartRead : 0xffca1380 \[Type: unsigned long

+0x044\] timeEndRead : 0xffca1381 \[Type: unsigned long

+0x048\] nReadsOutstanding : 0 \[Type: int

+0x04c\] mouse \[Type: tagMOUSE_DEVICE_INFO

+0x04c\] keyboard \[Type: tagKEYBOARD_DEVICE_INFO

+0x04c\] hid \[Type: tagHID_DEVICE_INFO

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_IO_STATUS_BLOCK *)0xe16e8248))

(*((win32k!_IO_STATUS_BLOCK *)0xe16e8248)) [Type: _IO_STATUS_BLOCK]

+0x000\] Status : 0 \[Type: long

+0x000\] Pointer : 0x0 \[Type: void \*

+0x004\] Information : 0x18 \[Type: unsigned long

0: kd> g

Breakpoint 6 hit

win32k!QueueMouseEvent:

bf8e7542 55 push ebp

0: kd> dv

ButtonFlags = 1

ButtonData = 0

ExtraInfo = 0

ptMouse = {x=513 y=384}

time = 0n-3525875

hDevice = 0x00010047

pmei = 0xe16e8278

bInjected = 0n0

bWakeRIT = 0n1

0: kd> g

MOUCLASS-MouseClassRead: enter

Breakpoint 4 hit

mouclass!MouseClassServiceCallback:

ba9ab596 55 push ebp

0: kd> dv

DeviceObject = 0x8ca8e2d0 Device for "\Driver\Mouclass"

InputDataStart = 0x8cb9d778

InputDataEnd = 0x8cb9d790

InputDataConsumed = 0x8071c644

Process 807286c0 has invalid page directories

Process 807286c0 has invalid page directories

irpSp = <Memory access error>

bytesInQueue = <Memory access error>

bytesToMove = <Memory access error>

listHead = struct _LIST_ENTRY

0: kd> g

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: port queue length 0x18, read length 0xf0

MOUCLASS-MouseClassServiceCallback: number of bytes to move from port to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d778 to 0x8c89a2e0

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x0

MOUCLASS-MouseClassServiceCallback: exit

Breakpoint 5 hit

win32k!ProcessMouseInput:

bf8e9149 55 push ebp

0: kd> dv

pMouseInfo = 0xe16e8220

ptLastMove = {x=-1081175735 y=8}

0: kd> dx -id 0,0,807286c0 -r1 ((win32k!tagDEVICEINFO *)0xe16e8220)

((win32k!tagDEVICEINFO *)0xe16e8220) : 0xe16e8220 [Type: tagDEVICEINFO *]

+0x000\] head \[Type: _HEAD

+0x008\] pNext : 0x0 \[Type: tagDEVICEINFO \*

+0x00c\] type : 0x0 \[Type: unsigned char

+0x00d\] bFlags : 0x2 \[Type: unsigned char

+0x00e\] usActions : 0x0 \[Type: unsigned short

+0x010\] nRetryRead : 0x0 \[Type: unsigned char

+0x014\] ustrName : "\\??\\ACPI#PNP0F03#4\&415b4c\&0#{378de44c-56ef-11d1-bc8c-00a0c91405dd}" \[Type: _UNICODE_STRING

+0x01c\] handle : 0x214 \[Type: void \*

+0x020\] NotificationEntry : 0xe13d2840 \[Type: void \*

+0x024\] pkeHidChangeCompleted : 0x8c8969e8 \[Type: _KEVENT \*

+0x028\] iosb \[Type: _IO_STATUS_BLOCK

+0x030\] ReadStatus : 259 \[Type: long

+0x034\] OpenerProcess : 0x174 \[Type: void \*

+0x038\] OpenStatus : 0 \[Type: long

+0x03c\] AttrStatus : 0 \[Type: long

+0x040\] timeStartRead : 0xffca330f \[Type: unsigned long

+0x044\] timeEndRead : 0xffca3312 \[Type: unsigned long

+0x048\] nReadsOutstanding : 0 \[Type: int

+0x04c\] mouse \[Type: tagMOUSE_DEVICE_INFO

+0x04c\] keyboard \[Type: tagKEYBOARD_DEVICE_INFO

+0x04c\] hid \[Type: tagHID_DEVICE_INFO

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_IO_STATUS_BLOCK *)0xe16e8248))

(*((win32k!_IO_STATUS_BLOCK *)0xe16e8248)) [Type: _IO_STATUS_BLOCK]

+0x000\] Status : 0 \[Type: long

+0x000\] Pointer : 0x0 \[Type: void \*

+0x004\] Information : 0x18 \[Type: unsigned long

0: kd> g

MOUCLASS-MouseClassRead: enter

MOUCLASS-MouseClassDeviceControl: enter

MOUCLASS-MouseClassDeviceControl: exit

Breakpoint 4 hit

mouclass!MouseClassServiceCallback:

ba9ab596 55 push ebp

0: kd> g

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: port queue length 0x18, read length 0xf0

MOUCLASS-MouseClassServiceCallback: number of bytes to move from port to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d790 to 0x8c89a2e0

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x0

MOUCLASS-MouseClassServiceCallback: exit

Breakpoint 5 hit

win32k!ProcessMouseInput:

bf8e9149 55 push ebp

0: kd> dv

pMouseInfo = 0xe16e8220

ptLastMove = {x=-1081175735 y=8}

0: kd> dx -id 0,0,807286c0 -r1 ((win32k!tagDEVICEINFO *)0xe16e8220)

((win32k!tagDEVICEINFO *)0xe16e8220) : 0xe16e8220 [Type: tagDEVICEINFO *]

+0x000\] head \[Type: _HEAD

+0x008\] pNext : 0x0 \[Type: tagDEVICEINFO \*

+0x00c\] type : 0x0 \[Type: unsigned char

+0x00d\] bFlags : 0x2 \[Type: unsigned char

+0x00e\] usActions : 0x0 \[Type: unsigned short

+0x010\] nRetryRead : 0x0 \[Type: unsigned char

+0x014\] ustrName : "\\??\\ACPI#PNP0F03#4\&415b4c\&0#{378de44c-56ef-11d1-bc8c-00a0c91405dd}" \[Type: _UNICODE_STRING

+0x01c\] handle : 0x214 \[Type: void \*

+0x020\] NotificationEntry : 0xe13d2840 \[Type: void \*

+0x024\] pkeHidChangeCompleted : 0x8c8969e8 \[Type: _KEVENT \*

+0x028\] iosb \[Type: _IO_STATUS_BLOCK

+0x030\] ReadStatus : 259 \[Type: long

+0x034\] OpenerProcess : 0x174 \[Type: void \*

+0x038\] OpenStatus : 0 \[Type: long

+0x03c\] AttrStatus : 0 \[Type: long

+0x040\] timeStartRead : 0xffca335d \[Type: unsigned long

+0x044\] timeEndRead : 0xffca335e \[Type: unsigned long

+0x048\] nReadsOutstanding : 0 \[Type: int

+0x04c\] mouse \[Type: tagMOUSE_DEVICE_INFO

+0x04c\] keyboard \[Type: tagKEYBOARD_DEVICE_INFO

+0x04c\] hid \[Type: tagHID_DEVICE_INFO

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_IO_STATUS_BLOCK *)0xe16e8248))

(*((win32k!_IO_STATUS_BLOCK *)0xe16e8248)) [Type: _IO_STATUS_BLOCK]

+0x000\] Status : 0 \[Type: long

+0x000\] Pointer : 0x0 \[Type: void \*

+0x004\] Information : 0x18 \[Type: unsigned long

0: kd> g

Breakpoint 6 hit

win32k!QueueMouseEvent:

bf8e7542 55 push ebp

0: kd> dv

ButtonFlags = 1

ButtonData = 0

ExtraInfo = 0

ptMouse = {x=513 y=384}

time = 0n-3511750

hDevice = 0x00010047

pmei = 0xe16e8278

bInjected = 0n0

bWakeRIT = 0n1

0: kd> g

MOUCLASS-MouseClassRead: enter

Breakpoint 4 hit

mouclass!MouseClassServiceCallback:

ba9ab596 55 push ebp

0: kd> dv

DeviceObject = 0x8ca8e2d0 Device for "\Driver\Mouclass"

InputDataStart = 0x8cb9d7a8

InputDataEnd = 0x8cb9d7c0

InputDataConsumed = 0x8071c644

Process 807286c0 has invalid page directories

irpSp = <Memory access error>

bytesInQueue = <Memory access error>

bytesToMove = <Memory access error>

listHead = struct _LIST_ENTRY

0: kd> g

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: port queue length 0x18, read length 0xf0

MOUCLASS-MouseClassServiceCallback: number of bytes to move from port to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d7a8 to 0x8c89a2e0

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x0

MOUCLASS-MouseClassServiceCallback: exit

Breakpoint 5 hit

win32k!ProcessMouseInput:

bf8e9149 55 push ebp

0: kd> dv

pMouseInfo = 0xe16e8220

ptLastMove = {x=-1081175735 y=8}

0: kd> dx -id 0,0,807286c0 -r1 ((win32k!tagDEVICEINFO *)0xe16e8220)

((win32k!tagDEVICEINFO *)0xe16e8220) : 0xe16e8220 [Type: tagDEVICEINFO *]

+0x000\] head \[Type: _HEAD

+0x008\] pNext : 0x0 \[Type: tagDEVICEINFO \*

+0x00c\] type : 0x0 \[Type: unsigned char

+0x00d\] bFlags : 0x2 \[Type: unsigned char

+0x00e\] usActions : 0x0 \[Type: unsigned short

+0x010\] nRetryRead : 0x0 \[Type: unsigned char

+0x014\] ustrName : "\\??\\ACPI#PNP0F03#4\&415b4c\&0#{378de44c-56ef-11d1-bc8c-00a0c91405dd}" \[Type: _UNICODE_STRING

+0x01c\] handle : 0x214 \[Type: void \*

+0x020\] NotificationEntry : 0xe13d2840 \[Type: void \*

+0x024\] pkeHidChangeCompleted : 0x8c8969e8 \[Type: _KEVENT \*

+0x028\] iosb \[Type: _IO_STATUS_BLOCK

+0x030\] ReadStatus : 259 \[Type: long

+0x034\] OpenerProcess : 0x174 \[Type: void \*

+0x038\] OpenStatus : 0 \[Type: long

+0x03c\] AttrStatus : 0 \[Type: long

+0x040\] timeStartRead : 0xffca6a3c \[Type: unsigned long

+0x044\] timeEndRead : 0xffca6a3f \[Type: unsigned long

+0x048\] nReadsOutstanding : 0 \[Type: int

+0x04c\] mouse \[Type: tagMOUSE_DEVICE_INFO

+0x04c\] keyboard \[Type: tagKEYBOARD_DEVICE_INFO

+0x04c\] hid \[Type: tagHID_DEVICE_INFO

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_IO_STATUS_BLOCK *)0xe16e8248))

(*((win32k!_IO_STATUS_BLOCK *)0xe16e8248)) [Type: _IO_STATUS_BLOCK]

+0x000\] Status : 0 \[Type: long

+0x000\] Pointer : 0x0 \[Type: void \*

+0x004\] Information : 0x18 \[Type: unsigned long

0: kd> g

MOUCLASS-MouseClassRead: enter

MOUCLASS-MouseClassDeviceControl: enter

MOUCLASS-MouseClassDeviceControl: exit

Breakpoint 4 hit

mouclass!MouseClassServiceCallback:

ba9ab596 55 push ebp

0: kd> g

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: port queue length 0x18, read length 0xf0

MOUCLASS-MouseClassServiceCallback: number of bytes to move from port to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d7c0 to 0x8c89a2e0

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x0

MOUCLASS-MouseClassServiceCallback: exit

Breakpoint 5 hit

win32k!ProcessMouseInput:

bf8e9149 55 push ebp

0: kd> dv

pMouseInfo = 0xe16e8220

ptLastMove = {x=-1081175735 y=8}

0: kd> dx -id 0,0,807286c0 -r1 ((win32k!tagDEVICEINFO *)0xe16e8220)

((win32k!tagDEVICEINFO *)0xe16e8220) : 0xe16e8220 [Type: tagDEVICEINFO *]

+0x000\] head \[Type: _HEAD

+0x008\] pNext : 0x0 \[Type: tagDEVICEINFO \*

+0x00c\] type : 0x0 \[Type: unsigned char

+0x00d\] bFlags : 0x2 \[Type: unsigned char

+0x00e\] usActions : 0x0 \[Type: unsigned short

+0x010\] nRetryRead : 0x0 \[Type: unsigned char

+0x014\] ustrName : "\\??\\ACPI#PNP0F03#4\&415b4c\&0#{378de44c-56ef-11d1-bc8c-00a0c91405dd}" \[Type: _UNICODE_STRING

+0x01c\] handle : 0x214 \[Type: void \*

+0x020\] NotificationEntry : 0xe13d2840 \[Type: void \*

+0x024\] pkeHidChangeCompleted : 0x8c8969e8 \[Type: _KEVENT \*

+0x028\] iosb \[Type: _IO_STATUS_BLOCK

+0x030\] ReadStatus : 259 \[Type: long

+0x034\] OpenerProcess : 0x174 \[Type: void \*

+0x038\] OpenStatus : 0 \[Type: long

+0x03c\] AttrStatus : 0 \[Type: long

+0x040\] timeStartRead : 0xffca6a7a \[Type: unsigned long

+0x044\] timeEndRead : 0xffca6a7b \[Type: unsigned long

+0x048\] nReadsOutstanding : 0 \[Type: int

+0x04c\] mouse \[Type: tagMOUSE_DEVICE_INFO

+0x04c\] keyboard \[Type: tagKEYBOARD_DEVICE_INFO

+0x04c\] hid \[Type: tagHID_DEVICE_INFO

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_IO_STATUS_BLOCK *)0xe16e8248))

(*((win32k!_IO_STATUS_BLOCK *)0xe16e8248)) [Type: _IO_STATUS_BLOCK]

+0x000\] Status : 0 \[Type: long

+0x000\] Pointer : 0x0 \[Type: void \*

+0x004\] Information : 0x18 \[Type: unsigned long

0: kd> g

Breakpoint 6 hit

win32k!QueueMouseEvent:

bf8e7542 55 push ebp

0: kd> dv

ButtonFlags = 0

ButtonData = 0

ExtraInfo = 0

ptMouse = {x=516 y=382}

time = 0n-3503578

hDevice = 0x00010047

pmei = 0xe16e8278

bInjected = 0n0

bWakeRIT = 0n1

0: kd> g

MOUCLASS-MouseClassRead: enter

Breakpoint 4 hit

mouclass!MouseClassServiceCallback:

ba9ab596 55 push ebp

0: kd> g

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: port queue length 0x18, read length 0xf0

MOUCLASS-MouseClassServiceCallback: number of bytes to move from port to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d7d8 to 0x8c89a2e0

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x0

MOUCLASS-MouseClassServiceCallback: exit

Breakpoint 5 hit

win32k!ProcessMouseInput:

bf8e9149 55 push ebp
0: kd> bd 5

0: kd> g

MOUCLASS-MouseClassRead: enter

MOUCLASS-MouseClassDeviceControl: enter

MOUCLASS-MouseClassDeviceControl: exit

WINMM(p396:t400): ClientUpdatePnpInfo: warning: called in winlogon before logged on

WINMM(p396:t412): ClientUpdatePnpInfo: warning: called in winlogon before logged on

Breakpoint 4 hit

mouclass!MouseClassServiceCallback:

ba9ab596 55 push ebp
0: kd> bd 4

0: kd> g

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: port queue length 0x18, read length 0xf0

MOUCLASS-MouseClassServiceCallback: number of bytes to move from port to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d7f0 to 0x8c89a2e0

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x0

MOUCLASS-MouseClassServiceCallback: exit

Breakpoint 6 hit

win32k!QueueMouseEvent:

bf8e7542 55 push ebp
3: kd> bd 6

3: kd> g

MOUCLASS-MouseClassRead: enter

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: port queue length 0x18, read length 0xf0

MOUCLASS-MouseClassServiceCallback: number of bytes to move from port to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d808 to 0x8c89a2e0

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x0

MOUCLASS-MouseClassServiceCallback: exit

MOUCLASS-MouseClassRead: enter

MOUCLASS-MouseClassDeviceControl: enter

MOUCLASS-MouseClassDeviceControl: exit

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: port queue length 0x18, read length 0xf0

MOUCLASS-MouseClassServiceCallback: number of bytes to move from port to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d820 to 0x8c89a2e0

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x0

MOUCLASS-MouseClassServiceCallback: exit

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: unused bytes in class queue 0x960, remaining bytes in port queue 0x18

MOUCLASS-MouseClassServiceCallback: total number of bytes to move to class queue 0x18

MOUCLASS-MouseClassServiceCallback: number of bytes to end of class buffer 0x960

MOUCLASS-MouseClassServiceCallback: number of bytes in first move to class 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d838 to 0x8cbb3008

MOUCLASS-MouseClassServiceCallback: changed InputCount to 1 entries in the class queue

MOUCLASS-MouseClassServiceCallback: DataIn 0x8cbb3020, DataOut 0x8cbb3008

MOUCLASS-MouseClassServiceCallback: Input data items consumed = 1

MOUCLASS-MouseClassServiceCallback: exit

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x48

MOUCLASS-MouseClassServiceCallback: unused bytes in class queue 0x948, remaining bytes in port queue 0x48

MOUCLASS-MouseClassServiceCallback: total number of bytes to move to class queue 0x48

MOUCLASS-MouseClassServiceCallback: number of bytes to end of class buffer 0x948

MOUCLASS-MouseClassServiceCallback: number of bytes in first move to class 0x48

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d850 to 0x8cbb3020

MOUCLASS-MouseClassServiceCallback: changed InputCount to 4 entries in the class queue

MOUCLASS-MouseClassServiceCallback: DataIn 0x8cbb3068, DataOut 0x8cbb3008

MOUCLASS-MouseClassServiceCallback: Input data items consumed = 3

MOUCLASS-MouseClassServiceCallback: exit

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x48

MOUCLASS-MouseClassServiceCallback: unused bytes in class queue 0x900, remaining bytes in port queue 0x48

MOUCLASS-MouseClassServiceCallback: total number of bytes to move to class queue 0x48

MOUCLASS-MouseClassServiceCallback: number of bytes to end of class buffer 0x900

MOUCLASS-MouseClassServiceCallback: number of bytes in first move to class 0x48

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d898 to 0x8cbb3068

MOUCLASS-MouseClassServiceCallback: changed InputCount to 7 entries in the class queue

MOUCLASS-MouseClassServiceCallback: DataIn 0x8cbb30b0, DataOut 0x8cbb3008

MOUCLASS-MouseClassServiceCallback: Input data items consumed = 3

MOUCLASS-MouseClassServiceCallback: exit

MOUCLASS-MouseClassRead: enter
Breakpoint 7 hit
mouclass!MouseClassReadCopyData:

ba9aad26 55 push ebp

0: kd> dv MOUCLASS!DeviceExtension

0: kd> dv DeviceExtension

DeviceExtension = 0x8ca8e388

0: kd> dx -id 0,0,807286c0 -r1 ((mouclass!_DEVICE_EXTENSION *)0x8ca8e388)

((mouclass!_DEVICE_EXTENSION *)0x8ca8e388) : 0x8ca8e388 [Type: _DEVICE_EXTENSION *]

+0x000\] Self : 0x8ca8e2d0 : Device for "\\Driver\\Mouclass" \[Type: _DEVICE_OBJECT \*

+0x004\] TrueClassDevice : 0x8ca8e2d0 : Device for "\\Driver\\Mouclass" \[Type: _DEVICE_OBJECT \*

+0x008\] TopPort : 0x8cba4c38 : Device for "\\Driver\\i8042prt" \[Type: _DEVICE_OBJECT \*

+0x00c\] PDO : 0x8cc14618 : Device for "\\Driver\\ACPI" \[Type: _DEVICE_OBJECT \*

+0x010\] RemoveLock \[Type: _IO_REMOVE_LOCK

+0x068\] PnP : 0x1 \[Type: unsigned char

+0x069\] Started : 0x1 \[Type: unsigned char

+0x06a\] OkayToLogOverflow : 0x1 \[Type: unsigned char

+0x06c\] WaitWakeSpinLock : 0x0 \[Type: unsigned long

+0x070\] TrustedSubsystemCount : 0x1 \[Type: unsigned long

[+0x074] InputCount : 0x7 [Type: unsigned long]

+0x078\] SymbolicLinkName : "\\??\\ACPI#PNP0F03#4\&415b4c\&0#{378de44c-56ef-11d1-bc8c-00a0c91405dd}" \[Type: _UNICODE_STRING

+0x080\] InputData : 0x8cbb3008 \[Type: _MOUSE_INPUT_DATA \*

+0x084\] DataIn : 0x8cbb30b0 \[Type: _MOUSE_INPUT_DATA \*

+0x088\] DataOut : 0x8cbb3008 \[Type: _MOUSE_INPUT_DATA \*

+0x08c\] MouseAttributes \[Type: _MOUSE_ATTRIBUTES

+0x098\] SpinLock : 0x8c816269 \[Type: unsigned long

+0x09c\] ReadQueue \[Type: _LIST_ENTRY

+0x0a4\] SequenceNumber : 0x0 \[Type: unsigned long

+0x0a8\] DeviceState : PowerDeviceD0 (1) \[Type: _DEVICE_POWER_STATE

+0x0ac\] SystemState : PowerSystemWorking (1) \[Type: _SYSTEM_POWER_STATE

+0x0b0\] UnitId : 0x0 \[Type: unsigned long

+0x0b4\] WmiLibInfo \[Type: _WMILIB_CONTEXT

+0x0d4\] SystemToDeviceState \[Type: _DEVICE_POWER_STATE \[5\]

+0x0e8\] MinDeviceWakeState : PowerDeviceD3 (4) \[Type: _DEVICE_POWER_STATE

+0x0ec\] MinSystemWakeState : PowerSystemSleeping3 (4) \[Type: _SYSTEM_POWER_STATE

+0x0f0\] WaitWakeIrp : 0x0 \[Type: _IRP \*

+0x0f4\] ExtraWaitWakeIrp : 0x0 \[Type: _IRP \*

+0x0f8\] TargetNotifyHandle : 0x0 \[Type: void \*

+0x0fc\] Link \[Type: _LIST_ENTRY

+0x104\] File : 0x0 \[Type: _FILE_OBJECT \*

+0x108\] Enabled : 0x0 \[Type: unsigned char

+0x109\] WaitWakeEnabled : 0x0 \[Type: unsigned char

+0x10a\] SurpriseRemoved : 0x0 \[Type: unsigned char

0: kd> dx -id 0,0,807286c0 -r1 ((mouclass!_MOUSE_INPUT_DATA *)0x8cbb3008)

((mouclass!_MOUSE_INPUT_DATA *)0x8cbb3008) : 0x8cbb3008 [Type: _MOUSE_INPUT_DATA *]

+0x000\] UnitId : 0x0 \[Type: unsigned short

+0x002\] Flags : 0x0 \[Type: unsigned short

+0x004\] Buttons : 0x0 \[Type: unsigned long

+0x004\] ButtonFlags : 0x0 \[Type: unsigned short

+0x006\] ButtonData : 0x0 \[Type: unsigned short

+0x008\] RawButtons : 0x0 \[Type: unsigned long

+0x00c\] LastX : 25 \[Type: long

+0x010\] LastY : -7 \[Type: long

+0x014\] ExtraInformation : 0x0 \[Type: unsigned long

0: kd> dt mouclass!_MOUSE_INPUT_DATA 0x8cbb3008

+0x000 UnitId : 0

+0x002 Flags : 0

+0x004 Buttons : 0

+0x004 ButtonFlags : 0

+0x006 ButtonData : 0

+0x008 RawButtons : 0

+0x00c LastX : 0n25

+0x010 LastY : 0n-7

+0x014 ExtraInformation : 0

0: kd> dt mouclass!_MOUSE_INPUT_DATA 0x8cbb3008+18

+0x000 UnitId : 0

+0x002 Flags : 0

+0x004 Buttons : 0

+0x004 ButtonFlags : 0

+0x006 ButtonData : 0

+0x008 RawButtons : 0

+0x00c LastX : 0n127

+0x010 LastY : 0n-36

+0x014 ExtraInformation : 0

0: kd> dt mouclass!_MOUSE_INPUT_DATA 0x8cbb3008+18*2

+0x000 UnitId : 0

+0x002 Flags : 0

+0x004 Buttons : 0

+0x004 ButtonFlags : 0

+0x006 ButtonData : 0

+0x008 RawButtons : 0

+0x00c LastX : 0n69

+0x010 LastY : 0n1

+0x014 ExtraInformation : 0

0: kd> dt mouclass!_MOUSE_INPUT_DATA 0x8cbb3008+18*3

+0x000 UnitId : 0

+0x002 Flags : 0

+0x004 Buttons : 0

+0x004 ButtonFlags : 0

+0x006 ButtonData : 0

+0x008 RawButtons : 0

+0x00c LastX : 0n16

+0x010 LastY : 0n0

+0x014 ExtraInformation : 0

0: kd> dt mouclass!_MOUSE_INPUT_DATA 0x8cbb3008+18*4

+0x000 UnitId : 0

+0x002 Flags : 0

+0x004 Buttons : 0

+0x004 ButtonFlags : 0

+0x006 ButtonData : 0

+0x008 RawButtons : 0

+0x00c LastX : 0n-124

+0x010 LastY : 0n29

+0x014 ExtraInformation : 0

0: kd> dt mouclass!_MOUSE_INPUT_DATA 0x8cbb3008+18*5

+0x000 UnitId : 0

+0x002 Flags : 0

+0x004 Buttons : 0

+0x004 ButtonFlags : 0

+0x006 ButtonData : 0

+0x008 RawButtons : 0

+0x00c LastX : 0n-123

+0x010 LastY : 0n30

+0x014 ExtraInformation : 0

0: kd> dt mouclass!_MOUSE_INPUT_DATA 0x8cbb3008+18*6

+0x000 UnitId : 0

+0x002 Flags : 0

+0x004 Buttons : 0

+0x004 ButtonFlags : 0

+0x006 ButtonData : 0

+0x008 RawButtons : 0

+0x00c LastX : 0n-2

+0x010 LastY : 0n1

+0x014 ExtraInformation : 0

0: kd> dt mouclass!_MOUSE_INPUT_DATA 0x8cbb3008+18*7

+0x000 UnitId : 0

+0x002 Flags : 0

+0x004 Buttons : 0

+0x004 ButtonFlags : 0

+0x006 ButtonData : 0

+0x008 RawButtons : 0

+0x00c LastX : 0n0

+0x010 LastY : 0n0

+0x014 ExtraInformation : 0

0: kd> g

MOUCLASS-MouseClassCopyReadData: queue size 0xa8, read length 0xf0

MOUCLASS-MouseClassCopyReadData: bytes to end of queue 0x960

MOUCLASS-MouseClassCopyReadData: number of bytes in first move 0xa8

MOUCLASS-MouseClassCopyReadData: move bytes from 0x8cbb3008 to 0x8c89a2e0

MOUCLASS-MouseClassCopyReadData: Okay to log overflow

MOUCLASS-MouseClassCopyReadData: new DataIn 0x8cbb30b0, DataOut 0x8cbb30b0

MOUCLASS-MouseClassCopyReadData: new InputCount 0

MOUCLASS-MouseClassRead: enter

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: port queue length 0x18, read length 0xf0

MOUCLASS-MouseClassServiceCallback: number of bytes to move from port to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d8e0 to 0x8c89a2e0

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x0

MOUCLASS-MouseClassServiceCallback: exit

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: unused bytes in class queue 0x960, remaining bytes in port queue 0x18

MOUCLASS-MouseClassServiceCallback: total number of bytes to move to class queue 0x18

MOUCLASS-MouseClassServiceCallback: number of bytes to end of class buffer 0x8b8

MOUCLASS-MouseClassServiceCallback: number of bytes in first move to class 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d8f8 to 0x8cbb30b0

MOUCLASS-MouseClassServiceCallback: changed InputCount to 1 entries in the class queue

MOUCLASS-MouseClassServiceCallback: DataIn 0x8cbb30c8, DataOut 0x8cbb30b0

MOUCLASS-MouseClassServiceCallback: Input data items consumed = 1

MOUCLASS-MouseClassServiceCallback: exit

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x48

MOUCLASS-MouseClassServiceCallback: unused bytes in class queue 0x948, remaining bytes in port queue 0x48

MOUCLASS-MouseClassServiceCallback: total number of bytes to move to class queue 0x48

MOUCLASS-MouseClassServiceCallback: number of bytes to end of class buffer 0x8a0

MOUCLASS-MouseClassServiceCallback: number of bytes in first move to class 0x48

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d910 to 0x8cbb30c8

MOUCLASS-MouseClassServiceCallback: changed InputCount to 4 entries in the class queue

MOUCLASS-MouseClassServiceCallback: DataIn 0x8cbb3110, DataOut 0x8cbb30b0

MOUCLASS-MouseClassServiceCallback: Input data items consumed = 3

MOUCLASS-MouseClassServiceCallback: exit

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x30

MOUCLASS-MouseClassServiceCallback: unused bytes in class queue 0x900, remaining bytes in port queue 0x30

MOUCLASS-MouseClassServiceCallback: total number of bytes to move to class queue 0x30

MOUCLASS-MouseClassServiceCallback: number of bytes to end of class buffer 0x858

MOUCLASS-MouseClassServiceCallback: number of bytes in first move to class 0x30

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d958 to 0x8cbb3110

MOUCLASS-MouseClassServiceCallback: changed InputCount to 6 entries in the class queue

MOUCLASS-MouseClassServiceCallback: DataIn 0x8cbb3140, DataOut 0x8cbb30b0

MOUCLASS-MouseClassServiceCallback: Input data items consumed = 2

MOUCLASS-MouseClassServiceCallback: exit

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x48

MOUCLASS-MouseClassServiceCallback: unused bytes in class queue 0x8d0, remaining bytes in port queue 0x48

MOUCLASS-MouseClassServiceCallback: total number of bytes to move to class queue 0x48

MOUCLASS-MouseClassServiceCallback: number of bytes to end of class buffer 0x828

MOUCLASS-MouseClassServiceCallback: number of bytes in first move to class 0x48

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d988 to 0x8cbb3140

MOUCLASS-MouseClassServiceCallback: changed InputCount to 9 entries in the class queue

MOUCLASS-MouseClassServiceCallback: DataIn 0x8cbb3188, DataOut 0x8cbb30b0

MOUCLASS-MouseClassServiceCallback: Input data items consumed = 3

MOUCLASS-MouseClassServiceCallback: exit

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x30

MOUCLASS-MouseClassServiceCallback: unused bytes in class queue 0x888, remaining bytes in port queue 0x30

MOUCLASS-MouseClassServiceCallback: total number of bytes to move to class queue 0x30

MOUCLASS-MouseClassServiceCallback: number of bytes to end of class buffer 0x7e0

MOUCLASS-MouseClassServiceCallback: number of bytes in first move to class 0x30

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9d9d0 to 0x8cbb3188

MOUCLASS-MouseClassServiceCallback: changed InputCount to 11 entries in the class queue

MOUCLASS-MouseClassServiceCallback: DataIn 0x8cbb31b8, DataOut 0x8cbb30b0

MOUCLASS-MouseClassServiceCallback: Input data items consumed = 2

MOUCLASS-MouseClassServiceCallback: exit

MOUCLASS-MouseClassServiceCallback: enter

MOUCLASS-MouseClassServiceCallback: bytes remaining after move to SystemBuffer 0x18

MOUCLASS-MouseClassServiceCallback: unused bytes in class queue 0x858, remaining bytes in port queue 0x18

MOUCLASS-MouseClassServiceCallback: total number of bytes to move to class queue 0x18

MOUCLASS-MouseClassServiceCallback: number of bytes to end of class buffer 0x7b0

MOUCLASS-MouseClassServiceCallback: number of bytes in first move to class 0x18

MOUCLASS-MouseClassServiceCallback: move bytes from 0x8cb9da00 to 0x8cbb31b8

MOUCLASS-MouseClassServiceCallback: changed InputCount to 12 entries in the class queue

MOUCLASS-MouseClassServiceCallback: DataIn 0x8cbb31d0, DataOut 0x8cbb30b0

MOUCLASS-MouseClassServiceCallback: Input data items consumed = 1

MOUCLASS-MouseClassServiceCallback: exit

MOUCLASS-MouseClassRead: enter

Breakpoint 7 hit

mouclass!MouseClassReadCopyData:

ba9aad26 55 push ebp

0: kd> dv DeviceExtension

DeviceExtension = 0x8ca8e388

0: kd> dx -id 0,0,807286c0 -r1 ((mouclass!_DEVICE_EXTENSION *)0x8ca8e388)

((mouclass!_DEVICE_EXTENSION *)0x8ca8e388) : 0x8ca8e388 [Type: _DEVICE_EXTENSION *]

+0x000\] Self : 0x8ca8e2d0 : Device for "\\Driver\\Mouclass" \[Type: _DEVICE_OBJECT \*

+0x004\] TrueClassDevice : 0x8ca8e2d0 : Device for "\\Driver\\Mouclass" \[Type: _DEVICE_OBJECT \*

+0x008\] TopPort : 0x8cba4c38 : Device for "\\Driver\\i8042prt" \[Type: _DEVICE_OBJECT \*

+0x00c\] PDO : 0x8cc14618 : Device for "\\Driver\\ACPI" \[Type: _DEVICE_OBJECT \*

+0x010\] RemoveLock \[Type: _IO_REMOVE_LOCK

+0x068\] PnP : 0x1 \[Type: unsigned char

+0x069\] Started : 0x1 \[Type: unsigned char

+0x06a\] OkayToLogOverflow : 0x1 \[Type: unsigned char

+0x06c\] WaitWakeSpinLock : 0x0 \[Type: unsigned long

+0x070\] TrustedSubsystemCount : 0x1 \[Type: unsigned long

[+0x074] InputCount : 0xc [Type: unsigned long]

+0x078\] SymbolicLinkName : "\\??\\ACPI#PNP0F03#4\&415b4c\&0#{378de44c-56ef-11d1-bc8c-00a0c91405dd}" \[Type: _UNICODE_STRING

+0x080\] InputData : 0x8cbb3008 \[Type: _MOUSE_INPUT_DATA \*

+0x084\] DataIn : 0x8cbb31d0 \[Type: _MOUSE_INPUT_DATA \*

+0x088\] DataOut : 0x8cbb30b0 \[Type: _MOUSE_INPUT_DATA \*

+0x08c\] MouseAttributes \[Type: _MOUSE_ATTRIBUTES

+0x098\] SpinLock : 0x8c816269 \[Type: unsigned long

+0x09c\] ReadQueue \[Type: _LIST_ENTRY

+0x0a4\] SequenceNumber : 0x1 \[Type: unsigned long

+0x0a8\] DeviceState : PowerDeviceD0 (1) \[Type: _DEVICE_POWER_STATE

+0x0ac\] SystemState : PowerSystemWorking (1) \[Type: _SYSTEM_POWER_STATE

+0x0b0\] UnitId : 0x0 \[Type: unsigned long

+0x0b4\] WmiLibInfo \[Type: _WMILIB_CONTEXT

+0x0d4\] SystemToDeviceState \[Type: _DEVICE_POWER_STATE \[5\]

+0x0e8\] MinDeviceWakeState : PowerDeviceD3 (4) \[Type: _DEVICE_POWER_STATE

+0x0ec\] MinSystemWakeState : PowerSystemSleeping3 (4) \[Type: _SYSTEM_POWER_STATE

+0x0f0\] WaitWakeIrp : 0x0 \[Type: _IRP \*

+0x0f4\] ExtraWaitWakeIrp : 0x0 \[Type: _IRP \*

+0x0f8\] TargetNotifyHandle : 0x0 \[Type: void \*

+0x0fc\] Link \[Type: _LIST_ENTRY

+0x104\] File : 0x0 \[Type: _FILE_OBJECT \*

+0x108\] Enabled : 0x0 \[Type: unsigned char

+0x109\] WaitWakeEnabled : 0x0 \[Type: unsigned char

+0x10a\] SurpriseRemoved : 0x0 \[Type: unsigned char

0: kd> bl

0 d Enable Clear bf8914ab [d:\srv03rtm\windows\core\ntuser\kernel\ntinput.c @ 5970] 0001 (0001) win32k!RawInputThread

1 d Enable Clear u 0001 (0001) (winsrv!ConServerDllInitialization)

2 d Enable Clear bf8e60f1 [d:\srv03rtm\windows\core\ntuser\kernel\ntinput.c @ 180] 0001 (0001) win32k!xxxInitInput

3 d Enable Clear u 0001 (0001) (USER32!CreateWindowStationW)

4 d Enable Clear ba9ab596 [d:\srv03rtm\drivers\input\mouclass\mouclass.c @ 2416] 0001 (0001) mouclass!MouseClassServiceCallback

5 d Enable Clear bf8e9149 e 1 0001 (0001) win32k!ProcessMouseInput

6 d Enable Clear bf8e7542 e 1 0001 (0001) win32k!QueueMouseEvent

7 e Disable Clear ba9aad26 [d:\srv03rtm\drivers\input\mouclass\mouclass.c @ 1906] 0001 (0001) mouclass!MouseClassReadCopyData

0: kd> be 5

0: kd> be 6

0: kd> dx -id 0,0,807286c0 -r1 ((mouclass!_MOUSE_INPUT_DATA *)0x8cbb30b0)

((mouclass!_MOUSE_INPUT_DATA *)0x8cbb30b0) : 0x8cbb30b0 [Type: _MOUSE_INPUT_DATA *]

+0x000\] UnitId : 0x0 \[Type: unsigned short

+0x002\] Flags : 0x0 \[Type: unsigned short

+0x004\] Buttons : 0x0 \[Type: unsigned long

+0x004\] ButtonFlags : 0x0 \[Type: unsigned short

+0x006\] ButtonData : 0x0 \[Type: unsigned short

+0x008\] RawButtons : 0x0 \[Type: unsigned long

+0x00c\] LastX : 8 \[Type: long

+0x010\] LastY : 2 \[Type: long

+0x014\] ExtraInformation : 0x0 \[Type: unsigned long

0: kd> dt mouclass!_MOUSE_INPUT_DATA 0x8cbb30b0+18*0

+0x000 UnitId : 0

+0x002 Flags : 0

+0x004 Buttons : 0

+0x004 ButtonFlags : 0

+0x006 ButtonData : 0

+0x008 RawButtons : 0

+0x00c LastX : 0n8

+0x010 LastY : 0n2

+0x014 ExtraInformation : 0

0: kd> dt mouclass!_MOUSE_INPUT_DATA 0x8cbb30b0+18*2

+0x000 UnitId : 0

+0x002 Flags : 0

+0x004 Buttons : 0

+0x004 ButtonFlags : 0

+0x006 ButtonData : 0

+0x008 RawButtons : 0

+0x00c LastX : 0n117

+0x010 LastY : 0n15

+0x014 ExtraInformation : 0

0: kd> dt mouclass!_MOUSE_INPUT_DATA 0x8cbb30b0+18*3

+0x000 UnitId : 0

+0x002 Flags : 0

+0x004 Buttons : 0

+0x004 ButtonFlags : 0

+0x006 ButtonData : 0

+0x008 RawButtons : 0

+0x00c LastX : 0n29

+0x010 LastY : 0n3

+0x014 ExtraInformation : 0
0: kd> dt mouclass!_MOUSE_INPUT_DATA 0x8cbb30b0+18*4
+0x000 UnitId : 0
+0x002 Flags : 0
+0x004 Buttons : 1
+0x004 ButtonFlags : 1
+0x006 ButtonData : 0
+0x008 RawButtons : 0
+0x00c LastX : 0n0
+0x010 LastY : 0n0
+0x014 ExtraInformation : 0
0: kd> dt mouclass!_MOUSE_INPUT_DATA 0x8cbb30b0+18*5
+0x000 UnitId : 0
+0x002 Flags : 0
+0x004 Buttons : 2
+0x004 ButtonFlags : 2
+0x006 ButtonData : 0
+0x008 RawButtons : 0
+0x00c LastX : 0n0
+0x010 LastY : 0n0
+0x014 ExtraInformation : 0

0: kd> x win32k!xxxbutton*

bf8e6c5e win32k!xxxButtonEvent (unsigned long, struct tagPOINT, int, unsigned long, unsigned long, void *, struct _MOUSE_INPUT_DATA *, int, int)

0: kd> u bf8e6c5e

win32k!xxxButtonEvent [d:\srv03rtm\windows\core\ntuser\kernel\ntinput.c @ 1332]:

bf8e6c5e 55 push ebp

bf8e6c5f 8bec mov ebp,esp

bf8e6c61 83ec44 sub esp,44h

bf8e6c64 53 push ebx

bf8e6c65 56 push esi

bf8e6c66 33f6 xor esi,esi

bf8e6c68 57 push edi

bf8e6c69 8975f0 mov dword ptr [ebp-10h],esi

0: kd> ba e1 win32k!xxxButtonEvent
0: kd> dt mouclass!_MOUSE_INPUT_DATA 0x8cbb30b0+18*6
+0x000 UnitId : 0
+0x002 Flags : 0
+0x004 Buttons : 1
+0x004 ButtonFlags : 1
+0x006 ButtonData : 0
+0x008 RawButtons : 0
+0x00c LastX : 0n0
+0x010 LastY : 0n0
+0x014 ExtraInformation : 0
0: kd> dt mouclass!_MOUSE_INPUT_DATA 0x8cbb30b0+18*7
+0x000 UnitId : 0
+0x002 Flags : 0
+0x004 Buttons : 2
+0x004 ButtonFlags : 2
+0x006 ButtonData : 0
+0x008 RawButtons : 0
+0x00c LastX : 0n0
+0x010 LastY : 0n0
+0x014 ExtraInformation : 0

0: kd> dt mouclass!_MOUSE_INPUT_DATA 0x8cbb30b0+18*8

+0x000 UnitId : 0

+0x002 Flags : 0

+0x004 Buttons : 0

+0x004 ButtonFlags : 0

+0x006 ButtonData : 0

+0x008 RawButtons : 0

+0x00c LastX : 0n-15

+0x010 LastY : 0n5

+0x014 ExtraInformation : 0

0: kd> dt mouclass!_MOUSE_INPUT_DATA 0x8cbb30b0+18*9

+0x000 UnitId : 0

+0x002 Flags : 0

+0x004 Buttons : 0

+0x004 ButtonFlags : 0

+0x006 ButtonData : 0

+0x008 RawButtons : 0

+0x00c LastX : 0n-47

+0x010 LastY : 0n10

+0x014 ExtraInformation : 0

0: kd> dt mouclass!_MOUSE_INPUT_DATA 0x8cbb30b0+18*a

+0x000 UnitId : 0

+0x002 Flags : 0

+0x004 Buttons : 0

+0x004 ButtonFlags : 0

+0x006 ButtonData : 0

+0x008 RawButtons : 0

+0x00c LastX : 0n-26

+0x010 LastY : 0n7

+0x014 ExtraInformation : 0

0: kd> dt mouclass!_MOUSE_INPUT_DATA 0x8cbb30b0+18*b

+0x000 UnitId : 0

+0x002 Flags : 0

+0x004 Buttons : 0

+0x004 ButtonFlags : 0

+0x006 ButtonData : 0

+0x008 RawButtons : 0

+0x00c LastX : 0n-3

+0x010 LastY : 0n1

+0x014 ExtraInformation : 0

0: kd> dt mouclass!_MOUSE_INPUT_DATA 0x8cbb30b0+18*c

+0x000 UnitId : 0x3809

+0x002 Flags : 0x8cb7

+0x004 Buttons : 0x8083e7a1

+0x004 ButtonFlags : 0xe7a1

+0x006 ButtonData : 0x8083

+0x008 RawButtons : 0x403

+0x00c LastX : 0n0

+0x010 LastY : 0n-1933889056

+0x014 ExtraInformation : 0x8cbb31e0

0: kd> g

MOUCLASS-MouseClassCopyReadData: queue size 0x120, read length 0xf0

MOUCLASS-MouseClassCopyReadData: bytes to end of queue 0x8b8

MOUCLASS-MouseClassCopyReadData: number of bytes in first move 0xf0

MOUCLASS-MouseClassCopyReadData: move bytes from 0x8cbb30b0 to 0x8c89a2e0

MOUCLASS-MouseClassCopyReadData: new DataIn 0x8cbb31d0, DataOut 0x8cbb31a0

MOUCLASS-MouseClassCopyReadData: new InputCount 2

Breakpoint 5 hit

win32k!ProcessMouseInput:

bf8e9149 55 push ebp

0: kd> dv

pMouseInfo = 0xe16e8220

ptLastMove = {x=-1081175735 y=8}

0: kd> dx -id 0,0,807286c0 -r1 ((win32k!tagDEVICEINFO *)0xe16e8220)

((win32k!tagDEVICEINFO *)0xe16e8220) : 0xe16e8220 [Type: tagDEVICEINFO *]

+0x000\] head \[Type: _HEAD

+0x008\] pNext : 0x0 \[Type: tagDEVICEINFO \*

+0x00c\] type : 0x0 \[Type: unsigned char

+0x00d\] bFlags : 0x2 \[Type: unsigned char

+0x00e\] usActions : 0x0 \[Type: unsigned short

+0x010\] nRetryRead : 0x0 \[Type: unsigned char

+0x014\] ustrName : "\\??\\ACPI#PNP0F03#4\&415b4c\&0#{378de44c-56ef-11d1-bc8c-00a0c91405dd}" \[Type: _UNICODE_STRING

+0x01c\] handle : 0x214 \[Type: void \*

+0x020\] NotificationEntry : 0xe13d2840 \[Type: void \*

+0x024\] pkeHidChangeCompleted : 0x8c8969e8 \[Type: _KEVENT \*

+0x028\] iosb \[Type: _IO_STATUS_BLOCK

+0x030\] ReadStatus : 0 \[Type: long

+0x034\] OpenerProcess : 0x174 \[Type: void \*

+0x038\] OpenStatus : 0 \[Type: long

+0x03c\] AttrStatus : 0 \[Type: long

+0x040\] timeStartRead : 0xffcab213 \[Type: unsigned long

+0x044\] timeEndRead : 0xffcab216 \[Type: unsigned long

+0x048\] nReadsOutstanding : 0 \[Type: int

+0x04c\] mouse \[Type: tagMOUSE_DEVICE_INFO

+0x04c\] keyboard \[Type: tagKEYBOARD_DEVICE_INFO

+0x04c\] hid \[Type: tagHID_DEVICE_INFO

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_IO_STATUS_BLOCK *)0xe16e8248))

(*((win32k!_IO_STATUS_BLOCK *)0xe16e8248)) [Type: _IO_STATUS_BLOCK]

+0x000\] Status : 0 \[Type: long

+0x000\] Pointer : 0x0 \[Type: void \*

+0x004\] Information : 0xf0 \[Type: unsigned long

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!tagMOUSE_DEVICE_INFO *)0xe16e826c))

(*((win32k!tagMOUSE_DEVICE_INFO *)0xe16e826c)) [Type: tagMOUSE_DEVICE_INFO]

+0x000\] Attr \[Type: _MOUSE_ATTRIBUTES

+0x00c\] Data \[Type: _MOUSE_INPUT_DATA \[10\]

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA (*)[10])0xe16e8278))

(*((win32k!_MOUSE_INPUT_DATA (*)[10])0xe16e8278)) [Type: _MOUSE_INPUT_DATA [10]]

0\] \[Type: _MOUSE_INPUT_DATA

1\] \[Type: _MOUSE_INPUT_DATA

2\] \[Type: _MOUSE_INPUT_DATA

3\] \[Type: _MOUSE_INPUT_DATA

4\] \[Type: _MOUSE_INPUT_DATA

5\] \[Type: _MOUSE_INPUT_DATA

6\] \[Type: _MOUSE_INPUT_DATA

7\] \[Type: _MOUSE_INPUT_DATA

8\] \[Type: _MOUSE_INPUT_DATA

9\] \[Type: _MOUSE_INPUT_DATA

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA *)0xe16e8278))

(*((win32k!_MOUSE_INPUT_DATA *)0xe16e8278)) [Type: _MOUSE_INPUT_DATA]

+0x000\] UnitId : 0x0 \[Type: unsigned short

+0x002\] Flags : 0x0 \[Type: unsigned short

+0x004\] Buttons : 0x0 \[Type: unsigned long

+0x004\] ButtonFlags : 0x0 \[Type: unsigned short

+0x006\] ButtonData : 0x0 \[Type: unsigned short

+0x008\] RawButtons : 0x0 \[Type: unsigned long

+0x00c\] LastX : 8 \[Type: long

+0x010\] LastY : 2 \[Type: long

+0x014\] ExtraInformation : 0x0 \[Type: unsigned long

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA *)0xe16e8290))

(*((win32k!_MOUSE_INPUT_DATA *)0xe16e8290)) [Type: _MOUSE_INPUT_DATA]

+0x000\] UnitId : 0x0 \[Type: unsigned short

+0x002\] Flags : 0x0 \[Type: unsigned short

+0x004\] Buttons : 0x0 \[Type: unsigned long

+0x004\] ButtonFlags : 0x0 \[Type: unsigned short

+0x006\] ButtonData : 0x0 \[Type: unsigned short

+0x008\] RawButtons : 0x0 \[Type: unsigned long

+0x00c\] LastX : 127 \[Type: long

+0x010\] LastY : 77 \[Type: long

+0x014\] ExtraInformation : 0x0 \[Type: unsigned long

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA *)0xe16e82a8))

(*((win32k!_MOUSE_INPUT_DATA *)0xe16e82a8)) [Type: _MOUSE_INPUT_DATA]

+0x000\] UnitId : 0x0 \[Type: unsigned short

+0x002\] Flags : 0x0 \[Type: unsigned short

+0x004\] Buttons : 0x0 \[Type: unsigned long

+0x004\] ButtonFlags : 0x0 \[Type: unsigned short

+0x006\] ButtonData : 0x0 \[Type: unsigned short

+0x008\] RawButtons : 0x0 \[Type: unsigned long

+0x00c\] LastX : 117 \[Type: long

+0x010\] LastY : 15 \[Type: long

+0x014\] ExtraInformation : 0x0 \[Type: unsigned long

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA *)0xe16e82c0))

(*((win32k!_MOUSE_INPUT_DATA *)0xe16e82c0)) [Type: _MOUSE_INPUT_DATA]

+0x000\] UnitId : 0x0 \[Type: unsigned short

+0x002\] Flags : 0x0 \[Type: unsigned short

+0x004\] Buttons : 0x0 \[Type: unsigned long

+0x004\] ButtonFlags : 0x0 \[Type: unsigned short

+0x006\] ButtonData : 0x0 \[Type: unsigned short

+0x008\] RawButtons : 0x0 \[Type: unsigned long

+0x00c\] LastX : 29 \[Type: long

+0x010\] LastY : 3 \[Type: long

+0x014\] ExtraInformation : 0x0 \[Type: unsigned long

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA *)0xe16e82d8))

(*((win32k!_MOUSE_INPUT_DATA *)0xe16e82d8)) [Type: _MOUSE_INPUT_DATA]

+0x000\] UnitId : 0x0 \[Type: unsigned short

+0x002\] Flags : 0x0 \[Type: unsigned short

+0x004\] Buttons : 0x1 \[Type: unsigned long

+0x004\] ButtonFlags : 0x1 \[Type: unsigned short

+0x006\] ButtonData : 0x0 \[Type: unsigned short

+0x008\] RawButtons : 0x0 \[Type: unsigned long

+0x00c\] LastX : 0 \[Type: long

+0x010\] LastY : 0 \[Type: long

+0x014\] ExtraInformation : 0x0 \[Type: unsigned long

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA *)0xe16e82f0))

(*((win32k!_MOUSE_INPUT_DATA *)0xe16e82f0)) [Type: _MOUSE_INPUT_DATA]

+0x000\] UnitId : 0x0 \[Type: unsigned short

+0x002\] Flags : 0x0 \[Type: unsigned short

+0x004\] Buttons : 0x2 \[Type: unsigned long

+0x004\] ButtonFlags : 0x2 \[Type: unsigned short

+0x006\] ButtonData : 0x0 \[Type: unsigned short

+0x008\] RawButtons : 0x0 \[Type: unsigned long

+0x00c\] LastX : 0 \[Type: long

+0x010\] LastY : 0 \[Type: long

+0x014\] ExtraInformation : 0x0 \[Type: unsigned long

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA *)0xe16e8308))

(*((win32k!_MOUSE_INPUT_DATA *)0xe16e8308)) [Type: _MOUSE_INPUT_DATA]

+0x000\] UnitId : 0x0 \[Type: unsigned short

+0x002\] Flags : 0x0 \[Type: unsigned short

+0x004\] Buttons : 0x1 \[Type: unsigned long

+0x004\] ButtonFlags : 0x1 \[Type: unsigned short

+0x006\] ButtonData : 0x0 \[Type: unsigned short

+0x008\] RawButtons : 0x0 \[Type: unsigned long

+0x00c\] LastX : 0 \[Type: long

+0x010\] LastY : 0 \[Type: long

+0x014\] ExtraInformation : 0x0 \[Type: unsigned long

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA *)0xe16e8320))

(*((win32k!_MOUSE_INPUT_DATA *)0xe16e8320)) [Type: _MOUSE_INPUT_DATA]

+0x000\] UnitId : 0x0 \[Type: unsigned short

+0x002\] Flags : 0x0 \[Type: unsigned short

+0x004\] Buttons : 0x2 \[Type: unsigned long

+0x004\] ButtonFlags : 0x2 \[Type: unsigned short

+0x006\] ButtonData : 0x0 \[Type: unsigned short

+0x008\] RawButtons : 0x0 \[Type: unsigned long

+0x00c\] LastX : 0 \[Type: long

+0x010\] LastY : 0 \[Type: long

+0x014\] ExtraInformation : 0x0 \[Type: unsigned long

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA *)0xe16e8338))

(*((win32k!_MOUSE_INPUT_DATA *)0xe16e8338)) [Type: _MOUSE_INPUT_DATA]

+0x000\] UnitId : 0x0 \[Type: unsigned short

+0x002\] Flags : 0x0 \[Type: unsigned short

+0x004\] Buttons : 0x0 \[Type: unsigned long

+0x004\] ButtonFlags : 0x0 \[Type: unsigned short

+0x006\] ButtonData : 0x0 \[Type: unsigned short

+0x008\] RawButtons : 0x0 \[Type: unsigned long

+0x00c\] LastX : -15 \[Type: long

+0x010\] LastY : 5 \[Type: long

+0x014\] ExtraInformation : 0x0 \[Type: unsigned long

0: kd> dx -id 0,0,807286c0 -r1 (*((win32k!_MOUSE_INPUT_DATA *)0xe16e8350))

(*((win32k!_MOUSE_INPUT_DATA *)0xe16e8350)) [Type: _MOUSE_INPUT_DATA]

+0x000\] UnitId : 0x0 \[Type: unsigned short

+0x002\] Flags : 0x0 \[Type: unsigned short

+0x004\] Buttons : 0x0 \[Type: unsigned long

+0x004\] ButtonFlags : 0x0 \[Type: unsigned short

+0x006\] ButtonData : 0x0 \[Type: unsigned short

+0x008\] RawButtons : 0x0 \[Type: unsigned long

+0x00c\] LastX : -47 \[Type: long

+0x010\] LastY : 10 \[Type: long

+0x014\] ExtraInformation : 0x0 \[Type: unsigned long

0: kd> g

Breakpoint 6 hit

win32k!QueueMouseEvent:

bf8e7542 55 push ebp

0: kd> dv

ButtonFlags = 0

ButtonData = 0

ExtraInfo = 0

ptMouse = {x=1007 y=667}

time = 0n-3493359

hDevice = 0x00010047

pmei = 0xe16e82c0

bInjected = 0n0

bWakeRIT = 0n0

0: kd> g

Breakpoint 6 hit

win32k!QueueMouseEvent:

bf8e7542 55 push ebp

0: kd> dv

ButtonFlags = 1

ButtonData = 0

ExtraInfo = 0

ptMouse = {x=1007 y=667}

time = 0n-3493359

hDevice = 0x00010047

pmei = 0xe16e82d8

bInjected = 0n0

bWakeRIT = 0n0

0: kd> g

Breakpoint 6 hit

win32k!QueueMouseEvent:

bf8e7542 55 push ebp

0: kd> dv

ButtonFlags = 2

ButtonData = 0

ExtraInfo = 0

ptMouse = {x=1007 y=667}

time = 0n-3493359

hDevice = 0x00010047

pmei = 0xe16e82f0

bInjected = 0n0

bWakeRIT = 0n0

0: kd> g

Breakpoint 6 hit

win32k!QueueMouseEvent:

bf8e7542 55 push ebp

0: kd> dv

ButtonFlags = 1

ButtonData = 0

ExtraInfo = 0

ptMouse = {x=1007 y=667}

time = 0n-3493359

hDevice = 0x00010047

pmei = 0xe16e8308

bInjected = 0n0

bWakeRIT = 0n0

0: kd> g

Breakpoint 6 hit

win32k!QueueMouseEvent:

bf8e7542 55 push ebp

0: kd> dv

ButtonFlags = 2

ButtonData = 0

ExtraInfo = 0

ptMouse = {x=1007 y=667}

time = 0n-3493359

hDevice = 0x00010047

pmei = 0xe16e8320

bInjected = 0n0

bWakeRIT = 0n0

0: kd> g

Breakpoint 6 hit

win32k!QueueMouseEvent:

bf8e7542 55 push ebp

0: kd> dv

ButtonFlags = 0

ButtonData = 0

ExtraInfo = 0

ptMouse = {x=877 y=697}

time = 0n-3493359

hDevice = 0x00010047

pmei = 0xe16e8350

bInjected = 0n0

bWakeRIT = 0n1

0: kd> g

MOUCLASS-MouseClassRead: enter

Breakpoint 8 hit

win32k!xxxButtonEvent:

bf8e6c5e 55 push ebp

1: kd> kc

00 win32k!xxxButtonEvent
01 win32k!xxxDoButtonEvent
02 win32k!ProcessQueuedMouseEvents
03 win32k!RawInputThread

04 win32k!xxxCreateSystemThreads

05 win32k!NtUserCallOneParam

06 nt!_KiSystemService

07 SharedUserData!SystemCallStub

WARNING: Frame IP not in any known module. Following frames may be wrong.

08 0x0

09 0x0

相关推荐
sitelist1 天前
mouclass!MouseClassReadCopyData函数的两种情况
mouseclassread·mouclass
sitelist1 天前
mouclass!MouseClassReadCopyData和win32k!QueueMouseEvent函数调试如何算检测到鼠标双击事件
鼠标双击·mouseclassread·queuemouseevent