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

CreateFileMapping 函數

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

與虛擬內存類似,保護方式可以是PAGE_READONLY或是PAGE_READWRITE。如果多進程都對同一共享內存進行寫訪問,則必須保持相互間同步。映射文件還可以指定PAGE_WRITECOPY標志,可以保證其原始數據不會遭到破壞,同時允許其他進程在必要時自由的操作數據的拷貝。

在創建文件映射對象后使用可以調用MapViewOfFile函數映射到本進程的地址空間內。

下面說明創建一個名為MySharedMem的長度為4096字節的有名映射文件:
HANDLE hMySharedMapFile=CreateFileMapping((HANDLE)0xFFFFFFFF),
NULL,PAGE_READWRITE,0,0x1000,"MySharedMem");
并映射緩存區視圖:
LPSTR pszMySharedMapView=(LPSTR)MapViewOfFile(hMySharedMapFile,
FILE_MAP_READ|FILE_MAP_WRITE,0,0,0);

其他進程訪問共享對象,需要獲得對象名并調用OpenFileMapping函數。
HANDLE hMySharedMapFile=OpenFileMapping(FILE_MAP_WRITE,
FALSE,"MySharedMem");

一旦其他進程獲得映射對象的句柄,可以象創建進程那樣調用MapViewOfFile函數來映射對象視圖。用戶可以使用該對象視圖來進行數據讀寫操作,以達到數據通訊的目的。

當用戶進程結束使用共享內存后,調用UnmapViewOfFile函數以取消其地址空間內的視圖:
if (!UnmapViewOfFile(pszMySharedMapView))
{

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

 }

//=================================================================================
//                  CreateFileMapping的MSDN翻譯和使用心得
//=================================================================================
測試創建和打開文件映射的時候老是得到"句柄無效"的錯誤, 仔細看了MSDN以后才發覺是函數認識不透, 這里把相關的解釋翻譯出來

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

1) 物理文件句柄
   任何可以獲得的物理文件句柄, 如果你需要創建一個物理文件無關的內存映射也無妨, 將它設置成為 0xFFFFFFFF(INVALID_HANDLE_VALUE)就可以了.

   如果需要和物理文件關聯, 要確保你的物理文件創建的時候的訪問模式和"保護設置"匹配, 比如: 物理文件只讀, 內存映射需要讀寫就會發生錯誤. 推薦你的物理文件使用獨占方式創建.

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

2) 保護設置
   就是安全設置, 不過一般設置NULL就可以了, 使用默認的安全配置. 在win2k下如果需要進行限制, 這是針對那些將內存文件映射共享給整個網絡上面的應用進程使用是, 可以考慮進行限制.

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

5) 共享內存名稱
   這個就是我今天測試的時候碰壁的禍根, 因為為了對于內存進行互斥訪問, 我設置了一個互斥句柄, 而名稱我選擇和命名共享內存同名, 之下就是因為他們使用共同的namespace導致了錯誤, 呵呵.

7) 調用CreateFileMapping的時候GetLastError的對應錯誤
   ERROR_FILE_INVALID     如果企圖創建一個零長度的文件映射, 應有此報
   ERROR_INVALID_HANDLE   如果發現你的命名內存空間和現有的內存映射, 互斥量, 信號量, 臨界區同名就麻煩了
   ERROR_ALREADY_EXISTS   表示內存空間命名已經存在

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

   Windows 2000 or later:
   如果 Terminal Services 沒有運行 "Global" 和 "Local" 前綴的特殊含義就被忽略了

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

導航

<2008年5月>
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567

統計

常用鏈接

留言簿(19)

隨筆檔案

文章檔案

收藏夾

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲激情国产| 性娇小13――14欧美| 一区二区三区日韩| 亚洲欧洲午夜| 免费观看成人www动漫视频| 久久青草久久| 国产亚洲精品综合一区91| 亚洲午夜在线观看| 亚洲欧美成人网| 国产精品美女诱惑| 亚洲欧美精品在线观看| 午夜精品婷婷| 国产精品永久在线| 香蕉久久夜色精品国产| 久久精品国产综合| 国产亚洲免费的视频看| 久久精品国产96久久久香蕉| 久久中文字幕导航| 亚洲黄一区二区| 欧美精品一区二区三区在线看午夜| 亚洲高清免费视频| 亚洲精品永久免费| 欧美视频一区在线观看| 亚洲午夜久久久久久久久电影院 | 一区二区亚洲欧洲国产日韩| 久久国内精品自在自线400部| 久久综合中文| 亚洲精品在线观| 欧美午夜国产| 香蕉国产精品偷在线观看不卡| 久久先锋资源| 日韩网站在线| 国产老肥熟一区二区三区| 久久国产一区二区| 亚洲黄色影院| 欧美一区二区免费观在线| 国产亚洲精品高潮| 欧美福利视频网站| 亚洲自拍偷拍网址| 欧美岛国在线观看| 亚洲一区二区精品视频| 国内精品久久久久久久影视蜜臀 | 欧美一区午夜视频在线观看| 久久综合亚州| 一区二区三区免费看| 国产欧美日韩精品在线| 另类av一区二区| 亚洲午夜精品一区二区| 欧美a级理论片| 亚洲一区免费网站| 亚洲二区视频在线| 国产精品手机在线| 欧美丰满少妇xxxbbb| 亚洲欧美国产精品桃花 | 亚洲小说欧美另类社区| 国产情人节一区| 久久av一区| 国产精品日韩专区| 亚洲乱码国产乱码精品精天堂 | 国产欧美一区二区色老头| 99精品国产福利在线观看免费| 亚洲网站在线观看| 亚洲国产日韩欧美在线图片| 亚洲免费中文字幕| 一区二区三区视频观看| 久久深夜福利| 久久国产日韩| 国产精品户外野外| 亚洲国产日韩欧美在线99| 韩国自拍一区| 亚洲欧美日韩一区二区三区在线 | 一区二区三区日韩精品| 一区福利视频| 性欧美暴力猛交69hd| 亚洲欧美999| 欧美日韩国产一中文字不卡| 亚洲丶国产丶欧美一区二区三区| 国产精品自拍在线| 亚洲一区二区三区四区五区午夜| 日韩午夜在线电影| 欧美不卡高清| 欧美大片第1页| 在线成人欧美| 快射av在线播放一区| 老色批av在线精品| 激情综合久久| 久久青青草综合| 欧美国产亚洲视频| 亚洲黄色尤物视频| 欧美成人免费全部观看天天性色| 欧美+日本+国产+在线a∨观看| 狠狠色综合网| 免费不卡在线视频| 亚洲国产视频一区| 一本色道久久综合亚洲精品按摩| 裸体一区二区三区| 亚洲国产小视频| 一区二区欧美日韩视频| 欧美三级视频| 亚洲一区二区三区免费视频| 午夜日韩av| 韩日欧美一区| 另类欧美日韩国产在线| 欧美激情成人在线| 一本一本久久a久久精品综合麻豆| 欧美韩日高清| 在线视频一区观看| 久久久青草青青国产亚洲免观| 极品裸体白嫩激情啪啪国产精品| 久久人人97超碰国产公开结果| 欧美高清视频免费观看| 一本久道久久综合中文字幕| 国产精品国产自产拍高清av王其| 亚洲一区二区三区高清不卡| 久久精品国产久精国产思思| 激情五月***国产精品| 免费观看久久久4p| 亚洲天堂av综合网| 老色鬼精品视频在线观看播放| 亚洲精品乱码久久久久久久久 | 欧美在线播放一区二区| 国产精品网站在线观看| 欧美在线高清| 亚洲国产一区二区在线| 亚洲欧美日韩在线综合| 国外成人在线视频| 欧美精品久久久久久久久久| 亚洲四色影视在线观看| 久久一区精品| 宅男精品导航| 国产一区二区三区在线观看视频| 牛人盗摄一区二区三区视频| 亚洲精选中文字幕| 久久在线免费观看| 亚洲一区www| 亚洲国产成人一区| 国产精品亚洲欧美| 欧美国产激情| 久久精品99无色码中文字幕| 99re8这里有精品热视频免费| 久久婷婷国产综合国色天香| 一区二区久久| 亚洲电影免费观看高清| 国产美女诱惑一区二区| 欧美福利视频在线观看| 欧美一区二区三区电影在线观看| 亚洲精品在线看| 欧美成人精品在线播放| 欧美一区二区| 夜夜夜久久久| 亚洲黄色尤物视频| 国内精品视频一区| 国产精品美女久久久久久免费| 男女激情视频一区| 久久精品欧美日韩| 午夜免费日韩视频| 亚洲天堂黄色| 一区二区三区高清在线观看| 亚洲国产另类久久久精品极度| 久久久免费av| 久久久91精品国产| 久久精品欧美日韩精品| 欧美一区二区三区播放老司机| 亚洲一二三四区| 99国产精品久久久久久久久久| 尤物九九久久国产精品的特点 | 亚洲免费观看高清完整版在线观看熊 | 久久综合999| 久久久久久9999| 久久国产精品99久久久久久老狼| 亚洲免费影视| 亚洲欧美一区二区激情| 亚洲一级黄色| 亚洲一区精彩视频| 亚洲欧美综合| 久久国产精品一区二区三区| 欧美在线观看网站| 久久久久青草大香线综合精品| 久久精品国产999大香线蕉| 欧美一区日韩一区| 久久精品一区二区三区不卡牛牛 | 欧美二区不卡| 亚洲国产精品精华液2区45| 欧美大片免费观看| 亚洲高清色综合| 中文精品99久久国产香蕉| 欧美精品一区二区三区久久久竹菊 | 亚洲国产精品一区二区久| 欧美a级大片| 亚洲高清不卡| 99re热这里只有精品视频| 亚洲视频免费看| 午夜精品久久一牛影视| 午夜免费电影一区在线观看| 久久久久免费| 欧美日韩高清区| 国产伦精品一区二区| 在线看日韩av| 亚洲手机在线| 久久在线播放|