Ejemplo n.º 1
0
 public void test()
 {
     VIRTUALDATA vd = new VIRTUALDATA();
     vd.pageAllocated = new byte[NUMBARS, NUMPAGES];
     vd.szExeName = new string[NUMBARS];
     GetVirtualMemoryStatus(ref vd);
 }
Ejemplo n.º 2
0
        public void test()
        {
            VIRTUALDATA vd = new VIRTUALDATA();

            vd.pageAllocated = new byte[NUMBARS, NUMPAGES];
            vd.szExeName     = new string[NUMBARS];
            GetVirtualMemoryStatus(ref vd);
        }
Ejemplo n.º 3
0
        void GetVirtualMemoryStatus(ref VIRTUALDATA pvd)
        {
            MEMORY_BASIC_INFORMATION mbi;
            int   idx;
            DWORD addr;
            BYTE  state;
            int   STARTBAR = 0;

            //memset(pvd->pageAllocated,0x00,sizeof(pvd->pageAllocated));

            for (idx = STARTBAR; idx < STARTBAR + NUMBARS; idx++)
            {
                DWORD offset;

                addr = idx * 0x02000000;

                for (offset = 0; offset < 0x02000000; offset += mbi.RegionSize.ToInt32())
                {
                    Int32 i;

                    //memset(&mbi,0x00,sizeof(MEMORY_BASIC_INFORMATION));
                    uint newAddr = (uint)(addr + offset);
                    mbi = new MEMORY_BASIC_INFORMATION();
                    if (VirtualQuery(ref newAddr, ref mbi, Marshal.SizeOf(typeof(MEMORY_BASIC_INFORMATION))) == 0)
                    {
                        break;
                    }

                    state = (BYTE)((mbi.State >> 12) & (VMEMCOMMIT | VMEMRESERVE));

                    if (state > 0)
                    {
                        for (i = (offset) / 4096; i < (offset + mbi.RegionSize.ToInt32()) / 4096; i++)
                        {
                            pvd.pageAllocated[idx - STARTBAR, i] = state;
                        }
                    }
                }
            }
        }
Ejemplo n.º 4
0
        void GetVirtualMemoryStatus(ref VIRTUALDATA pvd)
        {
            MEMORY_BASIC_INFORMATION mbi;
            int idx;
            DWORD addr;
            BYTE state;
            int STARTBAR=0;

            //memset(pvd->pageAllocated,0x00,sizeof(pvd->pageAllocated));

            for(idx=STARTBAR;idx<STARTBAR+NUMBARS;idx++)
            {
                DWORD offset;

                addr = idx * 0x02000000;

                for( offset = 0; offset < 0x02000000; offset += mbi.RegionSize.ToInt32() )
                {
                    Int32 i;

                    //memset(&mbi,0x00,sizeof(MEMORY_BASIC_INFORMATION));
                    uint newAddr = (uint)(addr + offset);
                    mbi = new MEMORY_BASIC_INFORMATION();
                    if(VirtualQuery( ref newAddr, ref mbi, Marshal.SizeOf(typeof( MEMORY_BASIC_INFORMATION )) )==0)
                        break;

                    state=(BYTE)((mbi.State>>12)&(VMEMCOMMIT|VMEMRESERVE));

                    if(state>0)
                    {
                        for(i=(offset)/4096;i< (offset+mbi.RegionSize.ToInt32())/4096;i++)
                            pvd.pageAllocated[idx-STARTBAR,i]=state;
                    }
                }
            }
        }