SEH原理剖析

2021-08-10 09:12:39 字數 772 閱讀 6175

使用者層資料結構 teb

teb 第乙個欄位是nttib,nttib的第乙個欄位exceptionlist是乙個鍊錶的頭結點的首

位址.

當產生異常,系統會通過fs:[0]找到這個鍊錶,依次呼叫處理異常.

typedef struct _exception_registration_recordexception_registration_record

seh函式原型

long ntapi sehexcept(

_inout_struct_exception_record* exceptionrecord; //異常資訊

_in_pvoid establisherframe;

_inout_struct_context* contextrecord; //暫存器狀態資訊

_in_pvoid dispatchercontext);

//手工註冊seh

//**實現

long ntapi sehexcept(

_inout_struct_exception_record* exceptionrecord; //異常資訊

_in_pvoid establisherframe;

_inout_struct_context* contextrecord; //暫存器狀態資訊

_in_pvoid dispatchercontext)

void fun()

int main()

__except(1) }

epoll原理剖析

首先我們來定義流的概念,乙個流可以是檔案,socket,pipe等等可以進行i o操作的核心物件。不管是檔案,還是套接字,還是管道,我們都可以把他們看作流。之後我們來討論i o的操作,通過read,我們可以從流中讀入資料 通過write,我們可以往流寫入資料。現在假定乙個情形,我們需要從流中讀資料,...

NGINX原理剖析

nginx之所以能夠支援高併發,是由於它採用非同步 事件驅動的方式處理連線。nginx有乙個master process,負責載入配置檔案,繫結埠等特權操作 有cache manage process和cache loader process兩個程序負責硬碟快取的處理,在nginx啟動時,將硬碟的快...

next permutation原理剖析

最近刷leetcode的時候遇見next permutation這道題,感覺挺有意思的乙個題目,遞迴的方法是較簡單並且容易想到的,在網上搜了其餘的解法,就是std next permutation非遞迴解法,但是讓人不是很舒服的就是關於原理的部分,千篇一律的都是摘抄 stl原始碼剖析 也就是這樣的。...