Windows 不同会话、服务和用户会话的DLL共享内存问题
首先,感谢您阅读本文:) 我使用DLL共享内存和联锁~函数。(胜利7) 由服务exe和用户应用程序exe加载的DLL 你们知道,服务会话是0,用户会话是1,所以不同 若DLL的共享内存值被用户应用程序exe更改,则不反映服务的DLL共享内存值Windows 不同会话、服务和用户会话的DLL共享内存问题,windows,session,sync,shared,Windows,Session,Sync,Shared,首先,感谢您阅读本文:) 我使用DLL共享内存和联锁~函数。(胜利7) 由服务exe和用户应用程序exe加载的DLL 你们知道,服务会话是0,用户会话是1,所以不同 若DLL的共享内存值被用户应用程序exe更改,则不反映服务的DLL共享内存值 是否有方法同步服务和用户应用程序的DLL共享内存?尝试使用全局共享内存。说: 在文件映射对象名称前加上“Global\”允许 相互通信的过程,即使它们处于不同的位置 终端服务器会话 尝试使用全局共享内存。说: 在文件映射对象名称前加上“Global\”允许
是否有方法同步服务和用户应用程序的DLL共享内存?尝试使用全局共享内存。说: 在文件映射对象名称前加上“Global\”允许 相互通信的过程,即使它们处于不同的位置 终端服务器会话
尝试使用全局共享内存。说: 在文件映射对象名称前加上“Global\”允许 相互通信的过程,即使它们处于不同的位置 终端服务器会话 不要忘记,在跨会话共享内存时,也会发挥作用 这要求第一个进程必须具有SeCreateGlobalPrivilege权限 不要忘记,在跨会话共享内存时,也会发挥作用 这要求第一个进程必须具有SeCreateGlobalPrivilege权限
共享部分不再跨会话边界工作。微软认为这是一个安全问题,并故意破坏了该功能,很久以前,如果内存可用的话。我相信每节课现在都会看到自己的私人版
然而,内存映射文件(MMF)工作正常,我现在用它来代替共享部分。唯一令人沮丧的是,必须使用高权限创建全局可用的MMF,因此我使用服务来创建MMF。共享部分不再跨会话边界工作。微软认为这是一个安全问题,并故意破坏了该功能,很久以前,如果内存可用的话。我相信每节课现在都会看到自己的私人版
然而,内存映射文件(MMF)工作正常,我现在用它来代替共享部分。唯一令人沮丧的是,必须使用高权限创建全局可用的MMF,因此我使用服务来创建MMF。我使用下面的代码#pragma data_seg(“/SECTION:.MYSEC,RWS”)int I=0;char a[32]n=“你好,世界”#pragma data_seg()您的意思是“.MYSEC”到“Global\.MYSEC”吗?您不能使用dll共享数据段在会话之间共享。我使用以下代码#pragma data_seg(“/SECTION:.MYSEC,RWS”)int I=0;char a[32]n=“你好,世界”#pragma data_seg()您的意思是“.MYSEC”到“Global\.MYSEC”吗?您不能使用dll共享数据段跨会话共享。不能使用命名文件映射。使用dll的shared section.dll共享内存是一项传统功能。你不应该使用它。不要使用命名文件映射。使用dll的shared section.dll共享内存是一项传统功能。你不应该用它。