winnt.h) (LDT_ENTRY 结构
描述描述符表中的条目。 此结构仅在基于 x86 的系统上有效。
语法
typedef struct _LDT_ENTRY {
WORD LimitLow;
WORD BaseLow;
union {
struct {
BYTE BaseMid;
BYTE Flags1;
BYTE Flags2;
BYTE BaseHi;
} Bytes;
struct {
DWORD BaseMid : 8;
DWORD Type : 5;
DWORD Dpl : 2;
DWORD Pres : 1;
DWORD LimitHi : 4;
DWORD Sys : 1;
DWORD Reserved_0 : 1;
DWORD Default_Big : 1;
DWORD Granularity : 1;
DWORD BaseHi : 8;
} Bits;
} HighWord;
} LDT_ENTRY, *PLDT_ENTRY;
成员
LimitLow
段中最后一个字节地址的低序部分。
BaseLow
段基址的低序部分。
HighWord
描述符的高阶部分。 此成员可以解释为字节或位集合,具体取决于所需的详细级别。
HighWord.Bytes
HighWord.Bytes.BaseMid
中间位 (段基址的 16-23) 。
HighWord.Bytes.Flags1
位结构中 Type、 Dpl 和 Pres 成员 的值 。
HighWord.Bytes.Flags2
Bits 结构中 LimitHi、Sys、Reserved_0、Default_Big 和 Granularity 成员的值。
HighWord.Bytes.BaseHi
高位 (段基址的 24-31) 。
HighWord.Bits
HighWord.Bits.BaseMid
中间位 (段基址的 16-23) 。
HighWord.Bits.Type
段的类型。 此成员可以是以下值之一:
HighWord.Bits.Dpl
描述符的特权级别。 此成员是一个整数值,范围为 0 (最高特权) 到 3 (最低特权) 。
HighWord.Bits.Pres
当前标志。 如果段存在于物理内存中,则此成员为 1;如果不存在,则此成员为 0。
HighWord.Bits.LimitHi
高位 (段中最后一个字节的地址的 16-19) 。
HighWord.Bits.Sys
可供系统程序员使用的空间。 此成员可用于以某种特定于系统的方式标记段。
HighWord.Bits.Reserved_0
保留。
HighWord.Bits.Default_Big
段的大小。 如果段是数据段,则如果段大于 64 KB (K) ,则此成员包含 1;如果段小于或等于 64K,则此成员包含 0。
如果段是代码段,则此成员包含 1(如果该段是代码段),并且使用默认 (本机模式) 指令集运行。 如果代码段是 80286 代码段,并且以 16 位偏移量和 80286 兼容指令集运行,则此成员包含 0。
HighWord.Bits.Granularity
粒度。 如果段为字节粒度,则此成员包含 0;如果段为页粒度,则为 1。
HighWord.Bits.BaseHi
高位 (段基址的 24-31) 。
注解
GetThreadSelectorEntry 函数使用描述符表中条目中的信息填充此结构。 可以使用此信息将段相对地址转换为线性虚拟地址。
段的基址是段中偏移量为 0 的地址。 若要计算此值,请组合 BaseLow、 BaseMid 和 BaseHi 成员。
段的限制是可在段中寻址的最后一个字节的地址。 若要计算此值,请将 LimitLow 和 LimitHi 成员组合在一起。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
标头 | winnt.h (包括 Windows.h) |