VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 7730|回复: 5

[讨论] 如何枚举所有用CreateFileMapping创建的映射内核对象

[复制链接]
 楼主| 发表于 2012-3-11 13:35:50 | 显示全部楼层 |阅读模式
我是通过
MemoryID = CreateFileMapping(&HFFFFFFFF, 0, PAGE_READWRITE, 0, &H100, "AABBCC")
创建了一个映射内核对象,并写入一些字符,以便其它进程可以读取"AABBCC"的映射内核对象
因为了映射内核对象的名称可能是随机的,如果有多个程序都创建了多个随机名称的映射内核对象
那么应该如何枚举出所有的映射内核对象呢?这样可以做一下清理映射内核对象的动作,不知道如何实现!

点评

建议你不要搞,万一把\KnownDlls\下面的东西删掉,系统就完了  发表于 2012-3-11 17:02
发表于 2012-3-11 15:06:54 | 显示全部楼层
这个是操作系统干的,不是vber关心的,看看操作系统原理吧。
回复 支持 反对

使用道具 举报

发表于 2012-3-11 17:01:06 | 显示全部楼层
本帖最后由 h907308901 于 2012-3-11 17:05 编辑

基本不可能,要对系统命名空间进行操作,枚举所有对象,如果是Section对象(FilleMapping在执行体里面叫做Section)就该做什么做什么,如果是Directory对象就进入再次进行枚举

另外即使你枚举出来你也没法删掉,WINDOWS的对象管理器是以使用计数作为删除标准的,对象创建时使用计数为1,每打开一次就加1,关闭一次就减1,计数为0时系统自动清理,只要有进程在使用他,系统就不会把他删掉

点评

那还不是要进内核,另外并不是使用计数为0系统就自动删除,好像只有CloseHandle的时候才会删除  发表于 2012-3-12 12:42
那把使用计数直接填成0不就解决了  发表于 2012-3-11 23:56
不对 好像叫分页内存吧?  发表于 2012-3-11 22:48
交换页什么的能搞定的话 应该可以清除对象,不过一个普通VBer应该也搞不定  发表于 2012-3-11 22:47
回复 支持 反对

使用道具 举报

发表于 2012-3-11 20:25:26 | 显示全部楼层
拜读
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-3-11 22:34:05 | 显示全部楼层
h907308901 发表于 2012-3-11 17:01
基本不可能,要对系统命名空间进行操作,枚举所有对象,如果是Section对象(FilleMapping在执行体里面叫做S ...

谢谢兄弟的回复啊,呵呵,我查了一些资料,是这个意思,基本上由系统自行管理的,无法人工干涉
回复 支持 反对

使用道具 举报

发表于 2020-3-28 00:33:15 | 显示全部楼层
有什么意思
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-7-1 21:44

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表