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

CreateFileMapping 函數(shù)

內(nèi)存映射API函數(shù)CreateFileMapping創(chuàng)建一個(gè)有名的共享內(nèi)存:
HANDLE CreateFileMapping(
HANDLE hFile,                                                                        // 映射文件的句柄,
                                                                                                   //設(shè)為0xFFFFFFFF以創(chuàng)建一個(gè)進(jìn)程間共享的對(duì)象
LPSECURITY_ATTRIBUTES lpFileMappingAttributes,   // 安全屬性
DWORD flProtect,                                                                   // 保護(hù)方式
DWORD dwMaximumSizeHigh,                                           //對(duì)象的大小
DWORD dwMaximumSizeLow,
LPCTSTR lpName                                                                 // 必須為映射文件命名
);

與虛擬內(nèi)存類(lèi)似,保護(hù)方式可以是PAGE_READONLY或是PAGE_READWRITE。如果多進(jìn)程都對(duì)同一共享內(nèi)存進(jìn)行寫(xiě)訪問(wèn),則必須保持相互間同步。映射文件還可以指定PAGE_WRITECOPY標(biāo)志,可以保證其原始數(shù)據(jù)不會(huì)遭到破壞,同時(shí)允許其他進(jìn)程在必要時(shí)自由的操作數(shù)據(jù)的拷貝。

在創(chuàng)建文件映射對(duì)象后使用可以調(diào)用MapViewOfFile函數(shù)映射到本進(jìn)程的地址空間內(nèi)。

下面說(shuō)明創(chuàng)建一個(gè)名為MySharedMem的長(zhǎng)度為4096字節(jié)的有名映射文件:
HANDLE hMySharedMapFile=CreateFileMapping((HANDLE)0xFFFFFFFF),
NULL,PAGE_READWRITE,0,0x1000,"MySharedMem");
并映射緩存區(qū)視圖:
LPSTR pszMySharedMapView=(LPSTR)MapViewOfFile(hMySharedMapFile,
FILE_MAP_READ|FILE_MAP_WRITE,0,0,0);

其他進(jìn)程訪問(wèn)共享對(duì)象,需要獲得對(duì)象名并調(diào)用OpenFileMapping函數(shù)。
HANDLE hMySharedMapFile=OpenFileMapping(FILE_MAP_WRITE,
FALSE,"MySharedMem");

一旦其他進(jìn)程獲得映射對(duì)象的句柄,可以象創(chuàng)建進(jìn)程那樣調(diào)用MapViewOfFile函數(shù)來(lái)映射對(duì)象視圖。用戶(hù)可以使用該對(duì)象視圖來(lái)進(jìn)行數(shù)據(jù)讀寫(xiě)操作,以達(dá)到數(shù)據(jù)通訊的目的。

當(dāng)用戶(hù)進(jìn)程結(jié)束使用共享內(nèi)存后,調(diào)用UnmapViewOfFile函數(shù)以取消其地址空間內(nèi)的視圖:
if (!UnmapViewOfFile(pszMySharedMapView))
{

         AfxMessageBox("could not unmap view of file");

 }

//=================================================================================
//                  CreateFileMapping的MSDN翻譯和使用心得
//=================================================================================
測(cè)試創(chuàng)建和打開(kāi)文件映射的時(shí)候老是得到"句柄無(wú)效"的錯(cuò)誤, 仔細(xì)看了MSDN以后才發(fā)覺(jué)是函數(shù)認(rèn)識(shí)不透, 這里把相關(guān)的解釋翻譯出來(lái)

HANDLE CreateFileMapping(
  HANDLE hFile,                       //物理文件句柄
  LPSECURITY_ATTRIBUTES lpAttributes, //安全設(shè)置
  DWORD flProtect,                    //保護(hù)設(shè)置
  DWORD dwMaximumSizeHigh,            //高位文件大小
  DWORD dwMaximumSizeLow,             //低位文件大小
  LPCTSTR lpName                      //共享內(nèi)存名稱(chēng)
);

1) 物理文件句柄
   任何可以獲得的物理文件句柄, 如果你需要?jiǎng)?chuàng)建一個(gè)物理文件無(wú)關(guān)的內(nèi)存映射也無(wú)妨, 將它設(shè)置成為 0xFFFFFFFF(INVALID_HANDLE_VALUE)就可以了.

   如果需要和物理文件關(guān)聯(lián), 要確保你的物理文件創(chuàng)建的時(shí)候的訪問(wèn)模式和"保護(hù)設(shè)置"匹配, 比如: 物理文件只讀, 內(nèi)存映射需要讀寫(xiě)就會(huì)發(fā)生錯(cuò)誤. 推薦你的物理文件使用獨(dú)占方式創(chuàng)建.

   如果使用 INVALID_HANDLE_VALUE, 也需要設(shè)置需要申請(qǐng)的內(nèi)存空間的大小, 無(wú)論物理文件句柄參數(shù)是否有效, 這樣 CreateFileMapping 就可以創(chuàng)建一個(gè)和物理文件大小無(wú)關(guān)的內(nèi)存空間給你, 甚至超過(guò)實(shí)際文件大小, 如果你的物理文件有效, 而大小參數(shù)為0, 則返回給你的是一個(gè)和物理文件大小一樣的內(nèi)存空間地址范圍.  返回給你的文件映射地址空間是可以通過(guò)復(fù)制, 集成或者命名得到, 初始內(nèi)容為0.

2) 保護(hù)設(shè)置
   就是安全設(shè)置, 不過(guò)一般設(shè)置NULL就可以了, 使用默認(rèn)的安全配置. 在win2k下如果需要進(jìn)行限制, 這是針對(duì)那些將內(nèi)存文件映射共享給整個(gè)網(wǎng)絡(luò)上面的應(yīng)用進(jìn)程使用是, 可以考慮進(jìn)行限制.

3) 高位文件大小
   弟兄們, 我想目前我們的機(jī)器都是32位的東東, 不可能得到超過(guò)32位進(jìn)程所能尋址的私有32位地址空間, 一般還是設(shè)置0吧, 我沒(méi)有也不想嘗試將它設(shè)置超過(guò)0的情況.
4) 低位文件大小
   這個(gè)還是可以進(jìn)行設(shè)置的, 不過(guò)為了讓其他共享用戶(hù)知道你申請(qǐng)的文件映射的相關(guān)信息, 我使用的時(shí)候是在獲得的地址空間頭部添加一個(gè)結(jié)構(gòu)化描述信息, 記錄內(nèi)存映射的大小, 名稱(chēng)等, 這樣實(shí)際申請(qǐng)的空間就比輸入的增加了一個(gè)頭信息結(jié)構(gòu)大小了, 我認(rèn)為這樣類(lèi)似BSTR的方式應(yīng)該是比較合理的.

5) 共享內(nèi)存名稱(chēng)
   這個(gè)就是我今天測(cè)試的時(shí)候碰壁的禍根, 因?yàn)闉榱藢?duì)于內(nèi)存進(jìn)行互斥訪問(wèn), 我設(shè)置了一個(gè)互斥句柄, 而名稱(chēng)我選擇和命名共享內(nèi)存同名, 之下就是因?yàn)樗麄兪褂霉餐膎amespace導(dǎo)致了錯(cuò)誤, 呵呵.

7) 調(diào)用CreateFileMapping的時(shí)候GetLastError的對(duì)應(yīng)錯(cuò)誤
   ERROR_FILE_INVALID     如果企圖創(chuàng)建一個(gè)零長(zhǎng)度的文件映射, 應(yīng)有此報(bào)
   ERROR_INVALID_HANDLE   如果發(fā)現(xiàn)你的命名內(nèi)存空間和現(xiàn)有的內(nèi)存映射, 互斥量, 信號(hào)量, 臨界區(qū)同名就麻煩了
   ERROR_ALREADY_EXISTS   表示內(nèi)存空間命名已經(jīng)存在

8) 相關(guān)服務(wù)或者平臺(tái)的命名保留
   Terminal Services:
   命名可以包含 "Global" 或者 "Local" 前綴在全局或者會(huì)話(huà)名空間初級(jí)文件映射. 其他部分可以包含任何除了()以外的字符, 可以參考 Kernel Object Name Spaces.

   Windows 2000 or later:
   如果 Terminal Services 沒(méi)有運(yùn)行 "Global" 和 "Local" 前綴的特殊含義就被忽略了

posted on 2008-09-11 09:39 wrh 閱讀(1629) 評(píng)論(0)  編輯 收藏 引用


只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


導(dǎo)航

<2009年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

統(tǒng)計(jì)

常用鏈接

留言簿(19)

隨筆檔案

文章檔案

收藏夾

搜索

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            男女视频一区二区| 国产精品久久一区二区三区| 久久九九国产精品怡红院| 欧美精品v日韩精品v国产精品 | 国产精品久久久对白| 亚洲欧洲精品一区二区三区不卡| 久久久久国产一区二区三区四区| 亚洲一区综合| 国产精品卡一卡二卡三| 亚洲午夜精品久久久久久浪潮| 麻豆成人在线播放| 久久久久久自在自线| 在线日韩日本国产亚洲| 久久天天躁狠狠躁夜夜爽蜜月| 欧美一区免费视频| 国产一区在线免费观看| 欧美专区在线观看一区| 亚洲摸下面视频| 国产一区二区精品| 玖玖精品视频| 欧美福利影院| 亚洲一区在线播放| 亚洲欧美在线x视频| 黑人操亚洲美女惩罚| 蘑菇福利视频一区播放| 欧美国产精品久久| 亚洲综合国产精品| 性欧美video另类hd性玩具| 国产一区在线播放| 亚洲国产网站| 欧美午夜激情视频| 午夜精品福利视频| 欧美诱惑福利视频| 亚洲欧洲中文日韩久久av乱码| 亚洲免费观看在线视频| 国产美女精品视频| 欧美激情精品久久久久久黑人| 欧美日韩精品免费观看视频| 欧美一区二区高清| 免费h精品视频在线播放| 亚洲视频导航| 久久久无码精品亚洲日韩按摩| 99av国产精品欲麻豆| 亚洲欧美久久久久一区二区三区| 亚洲福利视频免费观看| 一本一道久久综合狠狠老精东影业 | 亚洲七七久久综合桃花剧情介绍| 欧美日韩一区二区在线观看| 久久精品1区| 亚洲国产网站| 久久这里有精品视频| 美女视频黄 久久| 亚洲字幕一区二区| 久久综合综合久久综合| 亚洲一区成人| 美女精品一区| 久久国产日韩欧美| 欧美另类视频在线| 久久阴道视频| 国产精品日韩一区二区| 亚洲高清自拍| 狠狠色狠狠色综合日日五| 亚洲国产综合91精品麻豆| 国产欧美日韩中文字幕在线| 亚洲国产精品激情在线观看 | 久久国产精品亚洲77777| 乱码第一页成人| 久久成人人人人精品欧| 欧美日韩精品系列| 欧美电影电视剧在线观看| 国产欧美日韩一区二区三区在线| 亚洲老司机av| 亚洲精品视频在线播放| 久久国产日韩| 欧美在线播放一区| 欧美午夜寂寞影院| 亚洲精品韩国| 99国产精品私拍| 欧美福利一区二区三区| 欧美成人一区二区| 亚洲国产精品成人精品| 久久久福利视频| 久久久久久久久久看片| 国产日韩av在线播放| 亚洲一区二区三区三| 亚洲一区二区三区欧美| 欧美日韩亚洲一区三区| 亚洲精品国产精品久久清纯直播| 亚洲国产成人午夜在线一区| 久久久久久成人| 久久深夜福利免费观看| 国产一区二区剧情av在线| 午夜精品国产精品大乳美女| 香蕉久久精品日日躁夜夜躁| 国产精品99一区二区| 亚洲视频在线观看三级| 亚洲欧美日韩爽爽影院| 国产精品丝袜91| 香蕉久久久久久久av网站 | 久久精品午夜| 另类图片国产| 91久久精品国产91久久| 欧美电影免费观看高清| 亚洲毛片网站| 亚洲欧美中文另类| 国产欧美欧美| 久久婷婷人人澡人人喊人人爽| 欧美成人精精品一区二区频| 亚洲欧洲在线一区| 欧美日韩成人网| 亚洲一区在线直播| 久久综合久久久久88| 1769国内精品视频在线播放| 欧美黄色免费| 亚洲综合日韩中文字幕v在线| 欧美亚洲三区| 久久精品国产一区二区三区免费看 | 欧美aaaaaaaa牛牛影院| 欧美xart系列高清| 日韩天堂av| 国产精品视频xxx| 久久免费偷拍视频| 亚洲精品视频在线看| 性欧美videos另类喷潮| 一区二区三区在线免费播放| 欧美精品在线网站| 性娇小13――14欧美| 欧美福利网址| 午夜亚洲伦理| 亚洲高清一二三区| 欧美日韩在线看| 久久久99精品免费观看不卡| 亚洲精品永久免费精品| 久久久久久久欧美精品| 99成人精品| 激情综合久久| 欧美午夜片在线免费观看| 久久精品道一区二区三区| 亚洲黄色影院| 久久亚洲一区二区| 亚洲午夜精品视频| 91久久久亚洲精品| 国产乱码精品| 欧美另类高清视频在线| 久久久成人精品| 亚洲欧美国产77777| 亚洲欧洲在线一区| 久久久噜噜噜久久中文字幕色伊伊| 日韩午夜三级在线| 永久555www成人免费| 国产精品视频九色porn| 欧美人成在线视频| 麻豆九一精品爱看视频在线观看免费| 亚洲一区三区在线观看| 91久久一区二区| 久久午夜影视| 久久激情一区| 欧美一区二区三区婷婷月色 | 免费观看30秒视频久久| 久久国产日本精品| 亚洲欧美亚洲| 亚洲一二三级电影| 99精品热视频| 亚洲精品一区二| 亚洲精品黄网在线观看| 一区精品在线| 黄色成人在线网址| 国模精品一区二区三区| 国产欧美日韩综合一区在线播放 | 女人色偷偷aa久久天堂| 久久九九久久九九| 久久成人精品无人区| 欧美一级久久久| 先锋a资源在线看亚洲| 亚洲欧美日韩一区二区| 亚洲女同在线| 欧美在线播放视频| 久久成人综合网| 久久精品色图| 美女黄毛**国产精品啪啪| 免播放器亚洲| 欧美日韩高清在线播放| 免费观看成人www动漫视频| 六十路精品视频| 欧美成人69| 亚洲高清激情| 亚洲裸体视频| 亚洲自拍偷拍色片视频| 亚洲欧美一区二区三区在线| 亚洲欧美日本国产有色| 欧美伊人久久久久久午夜久久久久 | 国产精品久久久久影院色老大| 欧美亚洲成人免费| 国产精品午夜视频| 韩国三级电影一区二区| 亚洲国产精品久久久久婷婷老年| 亚洲精品一区二区三区樱花| 在线亚洲电影| 久久精品人人爽| 欧美黄色成人网|