为什么EnumProcessModules会返回很多无效的句柄?

drgnmvpn 2004-04-30 09:48:23
使用EnumProcessModules会返回一个含有当前进程所有句柄的数组.可我使用时返回的句柄并不是都是有效的.
HMODULE hMods[1024];
EnumProcessModules(hProcess, hMods, sizeof(hMods), &cbNeeded)
这里cnNeeded返回数组长度,用它除sizeof(HMODULE)就应得句柄数量.
可我返回的cnNeeded是84.就是说有21个句柄,可我查看hMods中只有15个有效的句柄,这是怎么回事?
如何得到有效句柄的数量呢,用VirtualQuery一个个的测?
...全文
118 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
drgnmvpn 2004-05-04
  • 打赏
  • 举报
回复
drgnmvpn 2004-05-04
  • 打赏
  • 举报
回复
drgnmvpn 2004-04-30
EnumProcessModules返回的是一个数组啊.我一个一个成员看不就行了.无效的句柄值都是0xcccccccc.一下就看出来了.至于权限问题,我认为不存在.其它工具显示的句柄数也就是15个
  • 打赏
  • 举报
回复
icanfeeling 2004-04-30
同意
  • 打赏
  • 举报
回复
fzd999 2004-04-30
你说hMods中只有15个有效的句柄,你是怎么查看的呢?

EnumProcessModules返回的是当前进程所包含所有模块的句柄,这些句柄并不一定都是实句柄,你也并不一定都有权限打开。
  • 打赏
  • 举报
回复
相关推荐
发帖
进程/线程/DLL
加入

1.5w+

社区成员

VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
申请成为版主
帖子事件
创建了帖子
2004-04-30 09:48
社区公告
暂无公告