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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

异常处理 VEH

發布時間:2024/8/26 综合教程 28 生活家
生活随笔 收集整理的這篇文章主要介紹了 异常处理 VEH 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

不算新的東西,也都不小了,

VEH的結構處理,平行于SEH,但是略有區別,

相關函數有四個

 1 PVOID WINAPI AddVectoredExceptionHandler(
 2   _In_ ULONG                       FirstHandler,
 3   _In_ PVECTORED_EXCEPTION_HANDLER VectoredHandler
 4 );
 5 
 6 ULONG WINAPI RemoveVectoredExceptionHandler(
 7   _In_ PVOID Handler
 8 );
 9 
10 PVOID WINAPI AddVectoredContinueHandler(
11   _In_ ULONG                       FirstHandler,
12   _In_ PVECTORED_EXCEPTION_HANDLER VectoredHandler
13 );
14 
15 ULONG WINAPI RemoveVectoredContinueHandler(
16   _In_ PVOID Handler
17 );

第一個函數

1 PVOID WINAPI AddVectoredExceptionHandler(
2   _In_ ULONG                       FirstHandler,
3   _In_ PVECTORED_EXCEPTION_HANDLER VectoredHandler
4 );

用來向VEH鏈注冊一個異常處理函數,

參數1的意思是,是否插入到VEH鏈首部,

  如果參數1為非0,則此注冊的函數會在出現異常之后優先被觸發(僅僅是優先,是否First還要看是否有其他人也注冊了函數)

  如果參數1為0,則此注冊寒暑會在出現異常之后滯后被觸發(理由同上)

參數2是一個要注冊的異常處理回調函數

第二個函數

1 ULONG WINAPI RemoveVectoredExceptionHandler(
2   _In_ PVOID Handler
3 );

從VEH鏈移除一個異常處理函數

參數是用前一個函數注冊之后返回的指針

第三個函數

1 PVOID WINAPI AddVectoredContinueHandler(
2   _In_ ULONG                       FirstHandler,
3   _In_ PVECTORED_EXCEPTION_HANDLER VectoredHandler
4 );

與第一個函數類似,但有細微區別

第四個函數

1 ULONG WINAPI RemoveVectoredContinueHandler(
2   _In_ PVOID Handler
3 );

與第二個函數類似,但有細微區別

四個函數,

第一個函數和第二個函數可以分為一組,

第三個函數和第四個函數可以分為一組,

兩組函數有細微區別,

區別就是:

  第一組函數注冊、移除的VEH異常處理回調函數,會在SEH鏈里面的異常處理函數執行之前執行

  第二組函數注冊、移除的VEH異常處理回調函數,會在SEH鏈里面的異常處理函數執后執行

對于VEH的使用,微軟給了一段DEMO

https://msdn.microsoft.com/en-us/library/ms681411(v=vs.85).aspx

總結

以上是生活随笔為你收集整理的异常处理 VEH的全部內容,希望文章能夠幫你解決所遇到的問題。

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