2012-05-17 37 views
0

我正在使用的系統有很多進程正在運行。在共享內存的情況下,一些是服務器,一些是客戶端。確定哪個進程在Windows中創建共享內存

他們通過CreateFileMappingMapViewOfFile創建/訪問共享內存。

我最近更改了其中一個客戶端的結構,導致客戶端嘗試映射共享內存區域,該區域比服務器進程創建的區域大。結果是拒絕訪問。

我的問題是,我不知道哪個修補程序首先創建了內存。有沒有辦法訪問這些有關共享內存的元信息以確定哪些服務器程序需要重新編譯?

確認,它是MapViewOfFile這是失敗的,錯誤代碼爲5:拒絕訪問。

回答

0

存在兩種類型的共享內存:動態(使用CreateFileMapping ...您的場景)和靜態(在PE部分特性中聲明的內存映射)。可以在文件和進程級別測試具有共享內存特徵的PE部分的存在。

在另一邊,爲什麼MapViewOfFile失敗可能比大小不同映射內存的其它(如證書,內存偏移,....)

+0

也看看HTTP的原因://計算器.COM /問題/ 10622750 /如何找到的,如果-的地址,屬於到的代碼,或數據截面 – mox