获取系统中所有打开的共享内存队列 [英] Get All Opened Shared Memory Queues in a System

查看:106
本文介绍了获取系统中所有打开的共享内存队列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我的系统(Win2003)中正在运行多个进程,这些进程通过共享内存队列"(命名为共享内存")进行通信.
有什么方法可以获取有关系统中所有打开的共享内存队列的信息,我可以编写一个应用程序来获取此信息.

Hi,

I have multiple processes running in my system (Win2003) which communicate via Shared Memory Queues(Named Shared Memory ).
Is there any way by which i could get information about all the open shared memory queues in my system, can i write a application to get this info.

推荐答案

没有指定所需的详细程度,但是您可以使用VirtualQueryEx函数查找内存块是否属于内存映射文件.如果它是您遇到的共享内存块,则MEMORY_BASIC_INFORMATION.Type字段将为MEM_MAPPED.

由于WOW层,在某些情况下,我无法使VirtualQueryEx函数对于Windows 7上运行的32位应用程序起作用.
You did not specify the level of detail you want, but you can find out if a memory block belongs to a memory mapped file using the VirtualQueryEx function. If it is a shared memory block you have encountered, then the MEMORY_BASIC_INFORMATION.Type field will be MEM_MAPPED.

I have not been able to make the VirtualQueryEx function work in some circumstances for 32-bit applications running on Windows 7, because of the WOW layer.


这篇关于获取系统中所有打开的共享内存队列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆