Windows核心常見資料結構 基本型別)

2021-06-08 02:29:37 字數 2535 閱讀 4091

學核心從基本資料結構開始吧,就像學c語言時從學習int,char開始一樣.

只列出目前見到和用到的,其它後面再補充~

常用資料結構:

數字:lkd> dt _ularge_integer

ntdll!_ularge_integer

+0x000 lowpart          : uint4b

+0x004 highpart         : uint4b

+0x000 u                : __unnamed

+0x000 quadpart         : uint8b

lkd> dt _large_integer

ntdll!_large_integer

+0x000 lowpart          : uint4b

+0x004 highpart         : int4b

+0x000 u                : __unnamed

+0x000 quadpart         : int8b

字串:

lkd> dt _string

nt!_string

+0x000 length           : uint2b

+0x002 maximumlength    : uint2b

+0x004 buffer           : ptr32 char

lkd> dt _unicode_string

ntdll!_unicode_string

+0x000 length           : uint2b

+0x002 maximumlength    : uint2b

+0x004 buffer           : ptr32 uint2b

單鏈表頭(看來資料結構要學好啊)::

lkd> dt _slist_header

ntdll!_slist_header

+0x000 alignment        : uint8b

+0x000 next             : _single_list_entry

+0x004 depth            : uint2b

+0x006 sequence         : uint2b

鍊錶結點:

lkd> dt _knode

ntdll!_knode

+0x000 processormask    : uint4b

+0x004 color            : uint4b

+0x008 mmshiftedcolor   : uint4b

+0x00c freecount        : [2] uint4b

+0x018 deadstacklist    : _slist_header          //煉表頭

+0x020 pfndereferenceslisthead : _slist_header

+0x028 pfndeferredlist : ptr32 _single_list_entry

+0x02c seed             : uchar

+0x02d flags            : _flags

單鏈表的指標:

lkd> dt _single_list_entry

ntdll!_single_list_entry

+0x000 next             : ptr32 _single_list_entry

雙向鍊錶指標:

lkd> dt _list_entry

ntdll!_list_entry

+0x000 flink            : ptr32 _list_entry

+0x004 blink            : ptr32 _list_entry

核心佇列:

lkd> dt _kqueue

ntdll!_kqueue

+0x000 header           : _dispatcher_header

+0x010 entrylisthead    : _list_entry

+0x018 currentcount     : uint4b

+0x01c maximumcount     : uint4b

+0x020 threadlisthead   : _list_entry

乙個很多地方用到的頭部結構:

lkd> dt _dispatcher_header

ntdll!_dispatcher_header

+0x000 type             : uchar

+0x001 absolute         : uchar

+0x002 size             : uchar

+0x003 inserted         : uchar

+0x004 signalstate      : int4b

+0x008 waitlisthead     : _list_entry

Windows核心常見資料結構 程序相關

程序的相關結構非常重要,重點學習 有一些內容參考自 程序控制塊位於每個程序eprocess的開頭,因此它的位址也就是eprocess的位址 lkd dt kprocess nt kprocess 0x000 header dispatcher header 0x010 profilelisthead...

常見資料結構

陣列 array 在程式設計中,為了處理方便,把具有相同型別的若干變數按有序的形式組織起來。這些按序排列的同類資料元素的集合稱為陣列。在c語言中,陣列屬於構造資料型別。乙個陣列可以分解為多個陣列元素,這些陣列元素可以是基本資料型別或是構造型別。因此按陣列元素的型別不同,陣列又可分為數值陣列 字元陣列...

常見資料結構對比

最近看一本講程式設計藝術的書,裡面提了個問題 常見資料結構有哪些?以前都是用到什麼資料結構,去查相應資料,一直沒仔細想過這個問題,一時心血來潮,決定做個 總結下幾種資料結構的特點。如果哪位大神發現了錯誤,請通知小弟一聲,小弟馬上修改,謝謝。名稱 描述隨機訪問時間複雜度 特點優點 缺點陣列 資料型別的...