青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評(píng)論 - 661, 引用 - 0
數(shù)據(jù)加載中……

VirtualQueryEx描述,涉及內(nèi)存管理的flag

函數(shù)功能描述:查詢地址空間中內(nèi)存地址的信息。

函數(shù)原型:

DWORD VirtualQueryEx( HANDLE hProcess, LPCVOID lpAddress, PMEMORY_BASIC_INFORMATION lpBuffer, DWORD dwLength );

參數(shù):
    hProcess   
進(jìn)程句柄。
    LpAddress  
查詢內(nèi)存的地址。
    LpBuffer   
指向MEMORY_BASIC_INFORMATION結(jié)構(gòu)的指針,用于接收內(nèi)存信息。
    DwLength    MEMORY_BASIC_INFORMATION
結(jié)構(gòu)的大小。

返回值:
   
函數(shù)寫入lpBuffer的字節(jié)數(shù),如果不等于sizeof(MEMORY_BASIC_INFORMATION)表示失敗。

備注:
    MEMORY_BASIC_INFORMATION
WinNT.h中定義如下:
        typedef struct _MEMORY_BASIC_INFORMATION {
            PVOID BaseAddress;       //
區(qū)域基地址。
            PVOID AllocationBase;    //
分配基地址。
            DWORD AllocationProtect; //
區(qū)域被初次保留時(shí)賦予的保護(hù)屬性。
            SIZE_T RegionSize;       //
區(qū)域大小(以字節(jié)為計(jì)量單位)。
            DWORD State;             //
狀態(tài)(MEM_FREE、MEM_RESERVE MEM_COMMIT)。
            DWORD Protect;           //
保護(hù)屬性。
            DWORD Type;              //
類型。
        } MEMORY_BASIC_INFORMATION, *PMEMORY_BASIC_INFORMATION;

成員解釋:

    BaseAddress                   
LpAddress參數(shù)的值相同,但是四舍五入為頁(yè)面的邊界值。

    AllocationBase                
指明用VirtualAlloc函數(shù)分配內(nèi)存區(qū)域的基地址。LpAddress
                                  
在該區(qū)域之內(nèi)。

    AllocationProtect             
指明該地址空間區(qū)域被初次保留時(shí)賦予該區(qū)域的保護(hù)屬性。

        PAGE_READONLY             
只讀屬性,如果試圖進(jìn)行寫操作,將引發(fā)訪問違規(guī)。如果系統(tǒng)
                                  
區(qū)分只讀、執(zhí)行兩種屬性,那么試圖在該區(qū)域執(zhí)行代碼也將引
                                  
發(fā)訪問違規(guī)。

        PAGE_READWRITE            
允許讀寫。

        PAGE_EXECUTE              
只允許執(zhí)行代碼,對(duì)該區(qū)域試圖進(jìn)行讀寫操作將引發(fā)訪問違規(guī)。

        PAGE_EXECUTE_READ         
允許執(zhí)行和讀取。

        PAGE_EXECUTE_READWRITE    
允許讀寫和執(zhí)行代碼。

        PAGE_EXECUTE_WRITECOPY    
對(duì)于該地址空間的區(qū)域,不管執(zhí)行什么操作,都不會(huì)引發(fā)訪問違
                                  
規(guī)。如果試圖在該頁(yè)面上的內(nèi)存中進(jìn)行寫入操作,就會(huì)將它自己
                                  
的私有頁(yè)面(受頁(yè)文件的支持)拷貝賦予該進(jìn)程。

        PAGE_GUARD                
在頁(yè)面上寫入一個(gè)字節(jié)時(shí)使應(yīng)用程序收到一個(gè)通知(通過一個(gè)異
                                  
常條件)。該標(biāo)志有一些非常巧妙的用法。Windows 2000在創(chuàng)建
                                  
線程堆棧時(shí)使用該標(biāo)志。

        PAGE_NOACCESS             
禁止一切訪問。

        PAGE_NOCACHE              
停用已提交頁(yè)面的高速緩存。一般情況下最好不要使用該標(biāo)志,
                                  
因?yàn)樗饕枪┬枰幚韮?nèi)存緩沖區(qū)的硬件設(shè)備驅(qū)動(dòng)程序的開發(fā)
                                  
人員使用的。

    RegionSize                    
用于指明內(nèi)存塊從基地址即BaseAddress開始的所有頁(yè)面的大
                                  
?。ㄒ宰止?jié)為計(jì)量單位)這些頁(yè)面與含有用LpAddress參數(shù)設(shè)
                                  
定的地址的頁(yè)面擁有相同的保護(hù)屬性、狀態(tài)和類型。

    State                         
用于指明所有相鄰頁(yè)面的狀態(tài)。

        MEM_COMMIT                
指明已分配物理內(nèi)存或者系統(tǒng)頁(yè)文件。

        MEM_FREE                  
空閑狀態(tài)。該區(qū)域的虛擬地址不受任何內(nèi)存的支持。該地址空間沒
                                  
有被保留。改狀態(tài)下AllocationBaseAllocationProtectProtect
                                  
Type等成員均未定義。

        MEM_RESERVE               
指明頁(yè)面被保留,但是沒有分配任何物理內(nèi)存。該狀態(tài)下Protect
                                  
員未定。

    Protect                       
用于指明所有相鄰頁(yè)面(內(nèi)存塊)的保護(hù)屬性。這些頁(yè)面與含有
                                  
擁有相同的保屬性、狀態(tài)和類型。意義同AllocationProtect。

    Type                          
用于指明支持所有相鄰頁(yè)面的物理存儲(chǔ)器的類型(MEM_IMAGE,
                                   MEM_MAPPED
MEM_PRIVATE)。這些相鄰頁(yè)面擁有相同的保護(hù)屬
                                  
性、狀態(tài)和類型。如果是Windows 98,那么這個(gè)成員將總是
                                   MEM_PRIVATE


        MEM_IMAGE                
指明該區(qū)域的虛擬地址原先受內(nèi)存映射的映像文件(如.exeDLL
                                 
文件)的支持,但也許不再受映像文件的支持。例如,當(dāng)寫入模塊
                                 
映像中的全局變量時(shí),寫入時(shí)拷貝的機(jī)制將由頁(yè)文件來支持特
                                 
定的頁(yè)面,而不是受原始映像文件的支持。

        MEM_MAPPED               
該區(qū)域的虛擬地址原先是受內(nèi)存映射的數(shù)據(jù)文件的支持,但也許不
                                 
再受數(shù)據(jù)文件的支持。例如,數(shù)據(jù)文件可以使用寫入時(shí)拷貝
                                 
保護(hù)屬性來映射。對(duì)文件的任何寫入操作都將導(dǎo)致頁(yè)文件而不是原
                                 
始數(shù)據(jù)支持特定的頁(yè)面。

        MEM_PRIVATE              
指明該內(nèi)存區(qū)域是私有的。不被其他進(jìn)程共享。


#include "stdafx.h"
#include <windows.h>
#include <TCHAR.H>

BOOL ShowProcMemInfo(DWORD dwPID);

int _tmain(int argc, char* argv[])
{
   ShowProcMemInfo( GetCurrentProcessId() );
   return 0;
}


//
顯示一個(gè)進(jìn)程的內(nèi)存狀態(tài) dwPID為進(jìn)程ID
BOOL ShowProcMemInfo(DWORD dwPID)
{
   HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION,
                          FALSE,
                          dwPID);
   if(hProcess == NULL)
      return FALSE;
   MEMORY_BASIC_INFORMATION mbi;
   PBYTE pAddress = NULL;
   TCHAR szInfo[200] = _T("BaseAddr     Size        Type        State         Protect \n");
   _tprintf(szInfo);

   while(TRUE)
   {
      if(VirtualQueryEx(hProcess, pAddress, &mbi, sizeof(mbi)) != sizeof(mbi))
      {
         break;
      }
      if((mbi.AllocationBase != mbi.BaseAddress) && (mbi.State != MEM_FREE))
      {
         _stprintf(szInfo, _T("  %08X  %8dK  "),
              mbi.BaseAddress,
              mbi.RegionSize>>10);
      }
      else
      {
         _stprintf(szInfo, _T("%08X    %8dK  "),
              mbi.BaseAddress,
              mbi.RegionSize>>10);
      }
      PCTSTR pStr = _T("");
      switch(mbi.Type)
      {
      case MEM_IMAGE:      pStr = _T("MEM_IMAGE  "); break;
      case MEM_MAPPED:   pStr = _T("MEM_MAPPED "); break;
      case MEM_PRIVATE:   pStr = _T("MEM_PRIVATE"); break;
      default:         pStr = _T("-----------"); break;
      }
      _tcscat(szInfo, pStr);
      _tcscat(szInfo, _T("  "));

      switch(mbi.State)
      {
      case MEM_COMMIT:   pStr = _T("MEM_COMMIT "); break;
      case MEM_RESERVE:   pStr = _T("MEM_RESERVE"); break;
      case MEM_FREE:      pStr = _T("MEM_FREE   "); break;
      default:         pStr = _T("-----------"); break;
      }
      _tcscat(szInfo, pStr);
      _tcscat(szInfo, _T("  "));

      switch(mbi.AllocationProtect)
      {
      case PAGE_READONLY:            pStr = _T("PAGE_READONLY         "); break;  
      case PAGE_READWRITE:         pStr = _T("PAGE_READWRITE        "); break;  
      case PAGE_WRITECOPY:         pStr = _T("PAGE_WRITECOPY        "); break;  
      case PAGE_EXECUTE:            pStr = _T("PAGE_EXECUTE          "); break;  
      case PAGE_EXECUTE_READ:         pStr = _T("PAGE_EXECUTE_READ     "); break;  
      case PAGE_EXECUTE_READWRITE:   pStr = _T("PAGE_EXECUTE_READWRITE"); break;  
      case PAGE_EXECUTE_WRITECOPY:   pStr = _T("PAGE_EXECUTE_WRITECOPY"); break;  
      case PAGE_GUARD:            pStr = _T("PAGE_GUARD            "); break;  
      case PAGE_NOACCESS:            pStr = _T("PAGE_NOACCESS         "); break;  
      case PAGE_NOCACHE:            pStr = _T("PAGE_NOCACHE          "); break;  
      default:                  pStr = _T("----------------------"); break;
      }
      _tcscat(szInfo, pStr);
      _tcscat(szInfo, _T("\n"));
      _tprintf(szInfo);

      pAddress = ((PBYTE)mbi.BaseAddress + mbi.RegionSize);
   }
   CloseHandle(hProcess);
   return TRUE;
}

posted on 2009-03-12 15:40 肥仔 閱讀(1128) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Windows開發(fā)

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            日韩视频永久免费| 亚洲七七久久综合桃花剧情介绍| 国产精品毛片va一区二区三区| 欧美精品色一区二区三区| 免费永久网站黄欧美| 免费影视亚洲| 欧美日韩大陆在线| 国产精品qvod| 国产欧美精品| 亚洲国产99| 亚洲中字在线| 久久亚洲欧洲| 亚洲三级观看| 午夜视黄欧洲亚洲| 噜噜噜躁狠狠躁狠狠精品视频| 欧美fxxxxxx另类| 欧美亚州韩日在线看免费版国语版| 国产精品激情| 亚洲第一精品久久忘忧草社区| 亚洲精品久久久久久一区二区| 99精品视频网| 久久久亚洲高清| 亚洲精品综合| 久久久久久久一区| 欧美三级免费| 国内偷自视频区视频综合| 亚洲毛片一区| 久久久噜噜噜久久| 99国产精品久久久久久久久久 | 亚洲精品一区中文| 午夜精品一区二区三区四区 | 久久精品91| 欧美日韩国产欧美日美国产精品| 国产精品一区二区在线观看网站 | 国产区欧美区日韩区| 亚洲三级毛片| 久久综合伊人| 欧美一区二区三区视频在线| 欧美激情精品久久久久久黑人| 国产精品网站一区| av成人免费在线| 欧美国产视频在线| 久久国产精品72免费观看| 国产精品久久久久毛片大屁完整版 | 欧美大片在线观看一区| 亚洲欧美日韩视频一区| 欧美日韩国产在线| 亚洲国内高清视频| 久久亚洲一区二区三区四区| 亚洲视频在线观看视频| 欧美日韩国产bt| 亚洲精选视频免费看| 欧美激情一区在线观看| 久久久亚洲影院你懂的| 韩国成人理伦片免费播放| 香蕉久久夜色精品国产使用方法| 亚洲区一区二| 欧美久久电影| 99国产一区| 亚洲精品欧美一区二区三区| 欧美华人在线视频| 亚洲三级免费观看| 亚洲日本免费电影| 欧美精品免费看| 在线一区欧美| 亚洲视频在线观看网站| 国产精品视频一区二区高潮| 午夜精品久久久久久久男人的天堂| 日韩一级黄色av| 国产精品九色蝌蚪自拍| 亚洲欧美日韩精品久久亚洲区| 一本大道av伊人久久综合| 国产精品jizz在线观看美国| 午夜日本精品| 久久精品国产一区二区三区免费看| 黑人巨大精品欧美一区二区小视频| 久久久精彩视频| 欧美成人精品三级在线观看| 欧美国产丝袜视频| 欧美一区在线视频| 国产专区一区| 欧美成人一二三| 欧美另类人妖| 性欧美video另类hd性玩具| 欧美一级久久久| 亚洲国产综合91精品麻豆| 亚洲美女色禁图| 国产午夜一区二区三区| 亚洲高清资源| 欧美视频在线免费| 久久久精品国产免大香伊| 久久综合国产精品| 亚洲午夜一二三区视频| 欧美一区二区三区在线| 亚洲激情成人在线| 亚洲一区二区三区精品动漫| 在线观看91精品国产麻豆| 99在线|亚洲一区二区| 国产亚洲日本欧美韩国| 亚洲黄网站黄| 激情成人中文字幕| 日韩亚洲精品视频| 狠狠综合久久av一区二区老牛| 亚洲精品乱码久久久久久蜜桃麻豆 | 亚洲视频在线观看网站| 亚洲高清久久网| 亚洲欧美精品suv| 亚洲国产三级| 欧美一区二区成人| 亚洲一区二区三区在线看| 久久精品人人做人人爽| 亚洲视频一区二区免费在线观看| 性色av一区二区三区在线观看| 99精品免费视频| 久热成人在线视频| 久久精品视频va| 国产精品一区二区久久国产| 亚洲国产一区二区三区a毛片| 国产一区二区三区黄| 日韩一级二级三级| 一本到高清视频免费精品| 久久精品国产免费看久久精品| 亚洲欧美日韩国产成人| 欧美日韩国产在线播放| 欧美激情a∨在线视频播放| 国产亚洲一区在线播放| 亚洲欧美久久| 午夜激情综合网| 国产精品福利av| 99精品免费| 亚洲视频精选| 欧美日韩的一区二区| 亚洲剧情一区二区| 亚洲精品免费网站| 久久躁狠狠躁夜夜爽| 久久综合九色99| 香蕉久久一区二区不卡无毒影院 | 亚洲欧洲在线视频| 伊人成年综合电影网| 欧美一区网站| 久久九九国产精品| 国产丝袜美腿一区二区三区| 亚洲婷婷综合久久一本伊一区| 99一区二区| 欧美日韩mv| 亚洲视频精选| 午夜在线视频观看日韩17c| 欧美日韩网址| 一区二区久久| 欧美一区国产二区| 国产人久久人人人人爽| 性欧美1819性猛交| 久久精品成人欧美大片古装| 国产情人综合久久777777| 久久激情久久| 亚洲电影毛片| 亚洲一区二区三区色| 国产精品久久久久久久久借妻| 亚洲综合第一| 牛夜精品久久久久久久99黑人| 亚洲欧洲一级| 国产精品入口福利| 久久久久久综合| 亚洲美女在线看| 久久精品女人的天堂av| 在线视频成人| 国产精品福利av| 久久婷婷综合激情| 一区二区三区www| 美女久久网站| 亚洲永久免费av| 狠狠做深爱婷婷久久综合一区| 免费不卡在线观看av| 亚洲天堂成人在线视频| 久久亚洲一区二区三区四区| 亚洲免费av电影| 国产欧美精品久久| 欧美v日韩v国产v| 亚洲一区二区三区四区在线观看| 久久蜜桃资源一区二区老牛| 亚洲精品看片| 国产亚洲欧美日韩在线一区| 欧美成人国产| 香蕉久久夜色精品国产| 亚洲国产天堂久久综合| 久久国产精品久久精品国产| 亚洲精品之草原avav久久| 国产一区二区三区久久 | 欧美一区1区三区3区公司| 亚洲第一精品在线| 欧美一区二区三区在线看| 亚洲欧洲精品天堂一级| 国产伦精品一区二区三区视频孕妇| 免费成人av| 亚洲影院高清在线| 一级日韩一区在线观看| 亚洲国产精品久久人人爱蜜臀 | 你懂的亚洲视频| 国产精品av久久久久久麻豆网| 久久一区二区三区国产精品|