Ring0 鍊錶

2022-07-25 05:18:08 字數 1066 閱讀 5165

//一般驅動層不使用資料結構,一般ring3層

雙向鍊錶可以將鍊錶形成乙個環.blink指標指向前乙個元素,flink指標指向下乙個元素.

typedef struct _list_entry list_entry, *plist_entry, *restricted_pointer prlist_entry;

初始化雙向鍊錶都是以乙個煉表頭作為鍊錶的第乙個元素.初始化煉表頭就是把flink和blink都指向自己,此時就是空鏈.使用initializelisthead函式.

1 #include 2

3 typedef struct

_item_4u;

10ulong itemdata;

11 }item,*pitem;

1213

14void singlelisttest();//

單鏈表15

void listtest();//

雙鏈表16

17void driverunload(pdriver_object driverobject);

1819

2021

2223

2425 #include "

list.h"26

27//

bp list!driverentry

28ntstatus driverentry(pdriver_object driverobject, punicode_string registerpath)

2943

4445

void

listtest()

4662

63while (!islistempty(&listhead))

6470}71

72void

singlelisttest()

7387

88while (!islistempty(&listhead))

899596}

9798

99100

void driverunload(pdriver_object driverobject)

101

ring0 程序隱藏實現

最近在學習核心程式設計,記錄一下最近的學習筆記。原理 將當前程序從eprocess結構的鍊錶中刪除 無法被 process 0 0 看見 include hideprocess.h ifdef win64 define activeprocesslinks eprocess 0x188 define...

ring0和ring3的區別

現在 核心程式和應用程式之間的本質區別。除了能用wdk編寫核心程式和閱讀一部分windows的核心 之外,我們還需要了解它們的本質是什麼,它們和我們熟悉的應用程式有什麼區別。intel的x86處理器是通過ring級別來進行訪問控制的,級別共分4層,從ring0到ring3 後面簡稱r0 r1 r2 ...

Ring0建立事件Ring3設定事件

同步事件 synchronizationevent 當事件物件為激發時,如遇到kewaitforxx等核心函式,事件物件則自動變回未激發態 通知事件 notificationevent 當事件物件為激發時,如遇到kewaitforxx等核心函式,事件物件則不會自動變回未激發態 ring0 建立事件 ...