菜鳥之驅動開發12

2021-08-26 04:02:17 字數 634 閱讀 1810

在本節中,我們學習在驅動中如何操作雙向鍊錶:鍊錶的建立,初始化,遍歷,刪除。驅動中有自己的鍊錶接構,也有相專用的操作鍊錶函式,也可以用c/c++中自已實現的鍊錶。

驅動中的鍊錶接構是:list_entry

操作鍊錶的主要api有:

initializelisthead 初始化鍊錶

islistempty 判斷鍊錶是否為空

insertheadlist 從頭部插入

inserttaillist從尾部插入

removeheadlist 從頭部刪除節點

removetaillist 從尾部刪除節點

下面一段**初始化乙個鍊錶並便利顯示:

pdata_link head;//=new(pagedpool) data_link; pdata_link pdata; void link_init() //從鍊錶中取出,並顯示 dbgprint("head=%x\n",head); pdata_link pnode=head; do //判斷 r遍歷完成否 while (!(pnode==head)); }

下面這段**,從頭部刪除乙個節點並便利顯示結果:

void link_delete() while (!(pnode==head)); }

具體參看完整原始碼。

菜鳥之驅動開發7

驅動是ring0的程式 我們ring3代的程式如果想控制ring0級的功能,那麼就需要學會ring0與ring3之間的通訊。今天就開始學習驅動與應用程式之間的通訊。我們需要在驅動產現乙個加法運算,然後我們在應用程式將兩個運算數傳入到驅動層,由驅動層計算了結果返回給應用程。我們向驅動傳輸命令需要用到 ...

菜鳥之驅動開發11

在本節中,我們將學習驅動層的記憶體管理,介紹記憶體管理中常用的api,並與應用層內管理api相對應。核心中常用的記憶體管理api與應用層記憶體管理api對應關係如下 核心api 應用層c api 說明rtlcopymemory memcpy 記憶體拷貝 rtlcopybytes memcpy 記憶體...

C 基礎學習之12 測試驅動開發

測試驅動開發,英文全稱 test driven development,簡稱tdd,是一種不同於傳統軟體開發流程的新型的開發方法。它要求在編寫某個功能的 之前先編寫測試 然後只編寫使測試通過的功能 通過測試來推動整個開發的進行。這有助於編寫簡潔可用和高質量的 並加速開發過程。測試驅動開發的基本過程如...