日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

Windows核心编程 第十四章 虚拟内存

發布時間:2025/6/17 windows 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Windows核心编程 第十四章 虚拟内存 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1?4章?虛?擬?內?存

<這一章沒啥,是說的幾個內存相關的函數?>

14.1?系統信息

????許多操作系統的值是根據主機而定的,比如頁面的大小,分配粒度的大小等。這些值決不應該用硬編碼的形式放入你的源代碼。相反,你始終都應該在進程初始化的時候檢索這些值,并在你的源代碼中使用檢索到的值。G?e?t?S?y?s?t?e?m?I?n?f?o函數將用于檢索與主機相關的值:VOID?WINAPI?GetSystemInfo(_Out_?LPSYSTEM_INFO?lpSystemInfo);

必須傳遞S?Y?S?T?E?M?_?I?N?F?O結構的地址給這個函數。這個函數將初始化所有的結構成員然后返回。下面是S?Y?S?T?E?M?_?I?N?F?O數據結構的樣子。


? ? 當系統引導時,它要確定這些成員的值是什么。對于任何既定的系統來說,這些值總是相同的,因此決不需要為任何既定的進程多次調用該函數。由于有了?G?e?t?S?y?s?t?e?m?I?n?f?o函數,因此應用程序能夠在運行的時候查詢這些值。在該結構的所有成員中,只有?4個成員與內存有關。表1?4?-?1對這4個成員作了描述。


14.2?虛擬內存的狀態

Wi?n?d?o?w?s函數G?l?o?b?a?l?M?e?m?o?r?y?S?t?a?t?u?s可用于檢索關于當前內存狀態的動態信息:

?

MEMORYSTATUS?mst?=?{sizeof(mst)};

GlobalMemoryStatus(&mst);

我本機是16G內存,用上面的那個函數會出問題,得到的數據溢出了,超過4G內存的需要用下面的函數來獲取內存狀態信息。

MEMORYSTATUSEX?mst2?=?{sizeof(mst2)};

GlobalMemoryStatusEx(&mst2);

大致可以獲取的內容是CPU使用率,計算機內存大小,虛擬內存大小等相關信息。

14.3?確定地址空間的狀態

Wi?n?d?o?w?s提供了一個函數,可以用來查詢地址空間中內存地址的某些信息(如大小,存儲器類型和保護屬性等)。實際上本章后面顯示的V?M?M?a?p示例應用程序就使用這個函數來生成第1?3章所附的虛擬內存表交換信息。這個函數稱為Vi?r?t?u?a?l?Q?u?e?r?y


Wi?n?d?o?w?s還提供了另一個函數,它使一個進程能夠查詢另一個進程的內存信息:


? ? 這兩個函數基本相同,差別在于使用?Vi?r?t?u?a?l?Q?u?e?r?y?E?x時,可以傳遞你想要查詢的地址空間信息的進程的句柄。調試程序和其他實用程序使用這個函數最多,幾乎所有的應用程序都只需要調用Vi?r?t?u?a?l?Q?u?e?r?y函數。當調用Vi?r?t?u?a?l?Q?u?e?r?yE?x)函數時,p?v?A?d?d?r?e?s?s參數必須包含你想要查詢其信息的虛擬內存地址。?P?m?b?i參數是你必須分配的M?E?M?O?RY?_?B?A?S?I?C?_?I?N?F?O?R?M?AT?I?O?N結構的地址。該結構在Wi?n?N?T.?h文件中定義為下面的形式:


? ? 最后一個參數是?d?w?L?e?n?g?t?h,用于設定?M?E?M?O?RY?_?B?A?S?I?C?_?I?N?F?O?R?M?AT?I?O?N結構的大小。Vi?r?t?u?a?l?Q?u?e?r?yE?x)函數返回拷貝到緩存中的字節的數量。

? ? 根據在p?v?A?d?d?r?e?s?s參數中傳遞的地址,Vi?r?t?u?a?l?Q?u?e?r?yE?x)函數將關于共享相同狀態、保護屬性和類型的相鄰頁面的范圍信息填入?M?E?M?O?RY?_?B?A?S?I?C?_?I?N?F?O?R?M?AT?I?O?N結構中。表1?4?-?3描述了該結構的成員。


本章的剩余部分就是在說作者自己封裝的一個函數VMQuery,可以更詳細的獲取內存信息。
????該結構的其他成員與內存管理毫無關系,為了完整起見,下面也對它們進行了介紹(見表1?4?-?2)。



總結

以上是生活随笔為你收集整理的Windows核心编程 第十四章 虚拟内存的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。