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

位结构中 TypeDplPres 成员 的值

HighWord.Bytes.Flags2

Bits 结构中 LimitHiSysReserved_0Default_BigGranularity 成员的值。

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 的地址。 若要计算此值,请组合 BaseLowBaseMidBaseHi 成员。

段的限制是可在段中寻址的最后一个字节的地址。 若要计算此值,请将 LimitLowLimitHi 成员组合在一起。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 winnt.h (包括 Windows.h)

请参阅

调试结构

GetThreadSelectorEntry