关于 XP SP3 系统下 NtUserCreateWindowEx 原型分析(修正版) 第 1 页 共 7 页 关于 XP SP3 系统下 NtUserCreateWindowEx 原型分析 修正版 By HSQ 说明:其实以前就因为需要用到这个函数来处理一些特定窗口,苦于没有该 API 原型,最后自己也是草草的 DBG了一下,可弄错来的结果还是有偏差
最近再次用那些东西试试效果,居然发现用起来完全形同虚设
可能是系统升级后,原来蒙的偏移量改变了
乘着闲来无事,干脆下决心给彻底弄清楚其原型
顺便将分析过程记录存档,以便共享后来者和遗忘是查阅
其最终由 WIN32K
SYS 实现 2
调用流程 关于 XP SP3 系统下 NtUserCreateWindowEx 原型分析(修正版) 第 2 页 共 7 页 3
参数传递经过 3
1 CreateWindowEx(CreateWindowExW/A) 先从 2k 源码看参数传递过程开始分析 注意:在 2K 中没有 CreateWindowExW/A 之分,这也正是需要对 NtUserCreateWindowEx进行重新分析的原因 CreateWindowEx没有对参数进行任何处理,而是追加一个参数后直接调用_CreateWindowEx 3
2 _CreateWindowEx 可见,在 2k 时,是通过是否定义了的调用: 关于 XP SP3 系统下 NtUserCreateWindowEx 原型分析(修正版) 第 3 页 共 7 页 对于,其他参数都沿袭 2K
_CreateWindowEx进行一些处理后接着开始进入下一层调用,这里 XP 与 2K 处理有些差异
3 NtUserCreateWindowEx(VerNtUserCreateWindowEx) A
在 2K 中,到次就直接进入了 NtUser