CreateFileMap的跨进程共享在server2008中失败

danscort2000 2008-05-18 04:08:20
CreateFileMap在主进程中创建一个 NULL ACL安全属性的共享内存 , 主进程可读写,子进程可读写
在其他进程中使用MapViewOfFile来读 [没有写]
现在手头没有server 2008的开发资料

该共享内存在 windows 2000/server2003/windows xp下都正常,其他进程都可以读写,完全正常
但是在最新的 windows server 2008 和 windows vista sp1下,其他进程无法读该共享内存

各位兄弟有没有server 2008关于 createfilemap ACL方面的资料,
或者有哪位朋友解决过类似问题,请指教,谢谢
...全文
184 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
悟迟 2010-10-13
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 danscort2000 的回复:]

基本查到原因了,在MSDN上
这个是vista server2008新引入的一个控制参数造成的
很多人都碰到了这个问题
不是UAC问题
需要编程解决,
先结帖了,谢谢各位
[/Quote]哦,怎么解决的
danscort2000 2008-05-19
  • 打赏
  • 举报
回复
基本查到原因了,在MSDN上
这个是vista server2008新引入的一个控制参数造成的
很多人都碰到了这个问题
不是UAC问题
需要编程解决,
先结帖了,谢谢各位
danscort2000 2008-05-18
  • 打赏
  • 举报
回复
就是以run as administrator方式运行的
否则根本打不开系统服务控制啊,程序会提示的
估计不是UAC问题,感觉好象是我create时指定的权限NULL有点问题,在2008里可能....
arong1234 2008-05-18
  • 打赏
  • 举报
回复
怀疑在vista下你需要指定安全模式,允许另外一个进程访问,不能用NULL,不过我也不会,只是怀疑
arong1234 2008-05-18
  • 打赏
  • 举报
回复
管理员身份自动会被vista取消,除非你以run as administrator方式运行,你是这样运行的么?

估计这还是和UAC有关
[Quote=引用 3 楼 danscort2000 的回复:]
当然都是以管理员身份运行的
[/Quote]
danscort2000 2008-05-18
  • 打赏
  • 举报
回复
都一样的,都是管理员身份运行,具备管理员权限,我在上面写了
jameshooo 2008-05-18
  • 打赏
  • 举报
回复
所有进程的用户身份都相同吗?如果不同,确保用低权限进程来创建共享内存。
danscort2000 2008-05-18
  • 打赏
  • 举报
回复
当然都是以管理员身份运行的
danscort2000 2008-05-18
  • 打赏
  • 举报
回复
补充一点
测试跟踪发现
主进程[后台服务]的操作在server 2008 / windows vista sp1 下都是成功的,并创建了制定名称的全局内存映射
但是在其它的读进程中,出现无法打开制定文件的错误
错误代码是2, 我猜测应该是权限的问题造成的,但是我在内存CREATE的时候,使用的是NULL安全属性,
现在我也搞不清楚了...
CathySun118 2008-05-18
  • 打赏
  • 举报
回复
64bit系统下没有做过,关注

15,471

社区成员

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

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