mouclass!MouseClassReadCopyData函数分析之In前Out后的情形和Out前In后的情形
0: kd> g
Breakpoint 0 hit
mouclass!MouseClassReadCopyData:
f74f9d26 55 push ebp
0: kd> kc 4
#
00 mouclass!MouseClassReadCopyData
01 mouclass!MouseClassHandleRead
02 mouclass!MouseClassRead
03 nt!IofCallDriver
0: kd> dv DeviceExtension
DeviceExtension = 0x894060f0
0: kd> dx -r1 ((mouclass!_DEVICE_EXTENSION *)0x894060f0)
((mouclass!_DEVICE_EXTENSION *)0x894060f0) : 0x894060f0 [Type: _DEVICE_EXTENSION *]
[+0x000] Self : 0x89406038 : Device for "\Driver\Mouclass" [Type: _DEVICE_OBJECT *]
[+0x004] TrueClassDevice : 0x89406038 : Device for "\Driver\Mouclass" [Type: _DEVICE_OBJECT *]
[+0x008] TopPort : 0x898db158 : Device for "\Driver\mouhid" [Type: _DEVICE_OBJECT *]
[+0x00c] PDO : 0x89536cc0 : Device for "\Driver\hidusb" [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 : 0x4 [Type: unsigned long]
[+0x078] SymbolicLinkName : "\??\HID#Vid_0e0f&Pid_0003&MI_00#8&28f6544d&0&0000#{378de44c-56ef-11d1-bc8c-00a0c91405dd}" [Type: _UNICODE_STRING]
[+0x080] InputData : 0x898531b0 [Type: _MOUSE_INPUT_DATA *]
[+0x084] DataIn : 0x898534e0 [Type: _MOUSE_INPUT_DATA *]
[+0x088] DataOut : 0x89853480 [Type: _MOUSE_INPUT_DATA *]
[+0x08c] MouseAttributes [Type: _MOUSE_ATTRIBUTES]
[+0x098] SpinLock : 0x895aada1 [Type: unsigned long]
[+0x09c] ReadQueue [Type: _LIST_ENTRY]
[+0x0a4] SequenceNumber : 0x18 [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 : PowerDeviceD0 (1) [Type: _DEVICE_POWER_STATE]
[+0x0ec] MinSystemWakeState : PowerSystemSleeping1 (2) [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 -r1 (*((mouclass!_MOUSE_ATTRIBUTES *)0x8940617c))
(*((mouclass!_MOUSE_ATTRIBUTES *)0x8940617c)) [Type: _MOUSE_ATTRIBUTES]
[+0x000] MouseIdentifier : 0x0 [Type: unsigned short]
[+0x002] NumberOfButtons : 0x0 [Type: unsigned short]
[+0x004] SampleRate : 0x0 [Type: unsigned short]
[+0x008] InputDataQueueLength : 0x960 [Type: unsigned long]
0: kd> dt MOUSE_INPUT_DATA 0x89853480
i8042prt!MOUSE_INPUT_DATA
+0x000 UnitId : 1
+0x002 Flags : 1
+0x004 Buttons : 0
+0x004 ButtonFlags : 0
+0x006 ButtonData : 0
+0x008 RawButtons : 0
+0x00c LastX : 0n37404
+0x010 LastY : 0n32466
+0x014 ExtraInformation : 0
0: kd> dt MOUSE_INPUT_DATA 0x89853480+18
i8042prt!MOUSE_INPUT_DATA
+0x000 UnitId : 1
+0x002 Flags : 1
+0x004 Buttons : 0
+0x004 ButtonFlags : 0
+0x006 ButtonData : 0
+0x008 RawButtons : 0
+0x00c LastX : 0n37404
+0x010 LastY : 0n32466
+0x014 ExtraInformation : 0
0: kd> dt MOUSE_INPUT_DATA 0x89853480+18*2
i8042prt!MOUSE_INPUT_DATA
+0x000 UnitId : 1
+0x002 Flags : 1
+0x004 Buttons : 0
+0x004 ButtonFlags : 0
+0x006 ButtonData : 0
+0x008 RawButtons : 0
+0x00c LastX : 0n37404
+0x010 LastY : 0n32466
+0x014 ExtraInformation : 0
0: kd> dt MOUSE_INPUT_DATA 0x8985
mouclass!MouseClassReadCopyData函数分析之In前Out后的情形和Out前In后的情形----非常重要
张小明
前端开发工程师
如何彻底解决RFdiffusion中SE3Transformer导入错误:终极指南
如何彻底解决RFdiffusion中SE3Transformer导入错误:终极指南 【免费下载链接】RFdiffusion Code for running RFdiffusion 项目地址: https://gitcode.com/gh_mirrors/rf/RFdiffusion RFdiffusion项目中SE3Transformer导入错误是用户在环境配置过程中经常遇到…
Venera漫画阅读器终极指南:一站式解决你的跨平台阅读需求
还在为不同设备上的漫画阅读体验不一致而烦恼吗?🤔 想要一个真正意义上的跨平台漫画阅读解决方案?Venera作为一款开源的跨平台漫画应用,将彻底改变你的阅读习惯。无论你使用的是Windows电脑、Mac笔记本、Linux系统,还是…
Unlock Music音乐解锁终极指南:快速解密各大平台加密音乐
Unlock Music音乐解锁终极指南:快速解密各大平台加密音乐 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: ht…
OpenCore Legacy Patcher:让老旧Mac重获新生的实用指南
OpenCore Legacy Patcher:让老旧Mac重获新生的实用指南 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为你的老伙伴Mac被苹果"放弃支持"而烦恼…
B站字幕提取完整指南:从零开始掌握视频字幕一键下载
B站字幕提取完整指南:从零开始掌握视频字幕一键下载 【免费下载链接】BiliBiliCCSubtitle 一个用于下载B站(哔哩哔哩)CC字幕及转换的工具; 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBiliCCSubtitle 还在为B站视频的字幕无法保存而烦恼吗?…
15、OpenOffice Writer使用指南:从样式到图形处理
OpenOffice Writer使用指南:从样式到图形处理 1. 样式应用与管理 OpenOffice Writer安装有许多内置样式。应用样式时,可以使用“样式”列表框(Stylist),它会按类型列出可用样式。“样式”列表框顶部的图标可用于选择样式类型,包括段落、字符、框架、页面和编号。应用样…