问个Windows的Process/Thread/Window的问题

kouji_aiba 2012-03-19 11:08:53
最近在搞MFC,嘛,其实MFC完全用不来,可以说是在用Windows API。
在Windows里面,Process和Window的管理貌似是分开的?没找到任何能从Process寻找从属Window的Handle的方法。Process和Thread的关系也蛮奇怪的,也没什么方法能直接从Process的Kernel Object里面直接找到Thread的从属关系。理论上来说Thread应该会放些东西在PEB里面吧?Window的Handle也是,为什么API层还不得不用EnumWindows从全局去翻来查找到底属于哪个Process呢?Process的获取也蛮奇怪的,PSAPI那层有个EnumProcess那还说得过去,怎么就没有EnumThread呢?倒是ToolHelp32里面那个SnapShot提供不少功能,但是感觉不如直接从Kernel Object里面找来得好。难道我需要的东西都被扔进NtXXXXX那层去了?我可不想碰DDK...
...全文
86 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lactoferrin 2012-03-19
  • 打赏
  • 举报
回复
进程和线程的联系的数据结构在内核空间,PCB和TCB之间有链表穿起来
线程和窗口的关系在win32thread结构,都在内核空间

EnumProcess要进入内核模式
不过EnumWindows需要的数据结构在用户空间有映射

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧