Windows核心程式設計之 分頁記憶體與非分頁記憶體

2021-07-08 11:43:52 字數 1046 閱讀 7563

windows

規定有些虛擬記憶體可以交換到檔案中,這類記憶體被稱為

分頁記憶體

有些虛擬記憶體

永遠不會交換到檔案中,這些記憶體叫

非分頁記憶體

#define pagedcode code_seg(「page」);//

分頁記憶體

#define lockedcode code_seg();//

非分頁的

#define initcode code_seg(「init」);

#define pageddatadata_seg(「page」);

#define lockeddatadata_seg();

#define initdatadata_seg(「init」); 例:

如果將某個函式載入到分頁記憶體中,可用下列的函式

#pragma pagedcode

void fun()

注意:paged_code()

是ddk

提供的巨集,只在

check

版本中生效,它會檢查這個函

數是否執行在低於

dispatch_leval

的中斷請求,如果等於或高於這個中斷

請求級,則產生乙個斷言。當程式執行在

dispatch_level

之上時(包括本

層),程式只能使用非分頁記憶體,否則將導致藍屏宕機  

如果將某個函式載入到非分頁記憶體中,可用下列的函式

#pragma lockedcode

void

fun()

某個例程需要在初始化的時候載入記憶體,然後可以從記憶體中解除安裝掉,比如

driverentry

情況下,

driverentry

會很大,佔據很大的空間,為了節省記憶體,需要及時地從記憶體中解除安裝

#pragma initcode

ntstatus driverentry(

in pdriver_object pdriverobject,

in punicode_string registerpath)

PHP程式設計之分頁技術

1 php分頁技術作為php開發中的乙個重要的部分,一項是乙個重點和難點,寫這篇文章,希望對剛接觸php沒多久的朋友有些幫助本文適合初學者閱讀,所有示例 均使用php編寫。需要說明的地方有兩個 這個類僅僅處理資料,並不負責處理顯示,因為我覺得將資料的處理和結果的顯示都放到乙個類裡邊實在是有些勉強。顯...

PHP程式設計之分頁技術

1 php分頁技術作為php開發中的乙個重要的部分,一項是乙個重點和難點,寫這篇文章,希望對剛接觸php沒多久的朋友有些幫助本文適合初學者閱讀,所有示例 均使用php編寫。需要說明的地方有兩個 這個類僅僅處理資料,並不負責處理顯示,因為我覺得將資料的處理和結果的顯示都放到乙個類裡邊實在是有些勉強。顯...

windows核心程式設計之核心物件

由於不是計算機科班出身,一直對於程序和執行緒沒有深入的了解,現開始看windows核心程式設計,將具體內容整理一下,以加深印象。1 核心物件,即作業系統維護的乙個資料結構,內部維護該物件的各種資料資訊,常見的核心物件有 用於建立程序的程序核心物件,用於建立執行緒的執行緒核心物件,建立檔案的檔案核心物...