共享內存 (也叫內存映射文件) 主要是通過映射機制實現的 , Windows 下進程的地址空間在邏輯上是相互隔離的 , 但在物理上卻是重疊的 ; 所謂的重疊是指同一塊內存區域可能被多個進程同時使用 ,
當調用 CreateFileMapping 創建命名的內存映射文件對象時 , Windows 即在物理內存申請一塊指定大小的內存區域 , 返回文件映射對象的句柄 hMap ;
為了能夠訪問這塊內存區域必須調用 MapViewOfFile 函數 , 促使 Windows 將此內存空間映射到進程的地址空間中 ;
當在其他進程訪問這塊內存區域時 , 則必須使用 OpenFileMapping 函數取得對象句柄 hMap , 並調用 MapViewOfFile 函數得到此內存空間的一個映射 , 這樣系統就把同一塊內存區域映射到了不同進程的地址空間中 , 從而達到共享內存的目的.
https://blog.csdn.net/tojohnonly/article/details/70246965
https://www.cnblogs.com/me115/archive/2013/01/07/2848567.html
https://www.jianshu.com/p/56efa9d1500a
booK