#include"basetsd.h"
/*
*IDT寄存器结构
*IDTR寄存器共有48位,高32位是IDT表的基地址,低16位是IDT表的长度(Limit)
*IDT表示一张位于物理内存中的线性表,共有256个表项。
*/
typedef struct _IDT_INFO{
UINT16 uIdtLimit;
UINT16 uLowIdtBase;
UINT16 uHighIdBase;
}IDT_INFO,*PIDT_INFO;
/* ----------------选择子-----------------------
| 1 | 0 | 字节
|7654321076543 2 10| 比特
|-------------|-|--| 占位
| INDEX |T|R | 含义
| |I|P |
| | |L |
*Index : 在GDT数组或LDT数组的索引号
*TI:Table Indicator ,这个值为0表示查找GDT,1表示查找LDT
*RPL:请求特权级,以什么样的权限去访问段。
*/
typedef struct _SELECTOR{
int PRL:2;
int TI:1;
int Index:13;
}SELECTOR,*PSELECTOR;
/*----------------------段描述符结构--------------------
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | 字节
|76543210|7 6 5 4 3210 |7 65 4 3210|76543210|76543210|76543210|76543210|76543210| 比特
|--------|-|-|-|-|---- |-|--|-|----|--------|--------|--------|-----
遍历IDT表和分析GDT表结构
最新推荐文章于 2025-05-20 23:23:14 发布