Compartir a través de


estructura LDT_ENTRY (winnt.h)

Describe una entrada en la tabla descriptor. Esta estructura solo es válida en sistemas basados en x86.

Sintaxis

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;

Miembros

LimitLow

Parte de orden inferior de la dirección del último byte del segmento.

BaseLow

Parte de orden inferior de la dirección base del segmento.

HighWord

Parte de orden superior del descriptor. Este miembro se puede interpretar como bytes o colecciones de bits, según el nivel de detalle necesario.

HighWord.Bytes

HighWord.Bytes.BaseMid

Bits intermedios (16–23) de la dirección base del segmento.

HighWord.Bytes.Flags1

Valores de los miembros Type, Dpl y Pres de la estructura Bits .

HighWord.Bytes.Flags2

Valores de los miembros LimitHi, Sys, Reserved_0, Default_Big y Granularidad en la estructura Bits .

HighWord.Bytes.BaseHi

Bits altos (24–31) de la dirección base del segmento.

HighWord.Bits

HighWord.Bits.BaseMid

Los bits intermedios (16–23) de la dirección base del segmento.

HighWord.Bits.Type

Tipo de segmento. Este miembro puede ser uno de los siguientes valores:

HighWord.Bits.Dpl

Nivel de privilegio del descriptor. Este miembro es un valor entero en el intervalo 0 (con más privilegios) a 3 (con privilegios mínimos).

HighWord.Bits.Pres

Marca actual. Este miembro es 1 si el segmento está presente en memoria física o 0 si no lo está.

HighWord.Bits.LimitHi

Bits altos (16–19) de la dirección del último byte del segmento.

HighWord.Bits.Sys

Espacio que está disponible para los programadores del sistema. Este miembro puede usarse para marcar segmentos de alguna manera específica del sistema.

HighWord.Bits.Reserved_0

Reservado.

HighWord.Bits.Default_Big

Tamaño del segmento. Si el segmento es un segmento de datos, este miembro contiene 1 si el segmento es mayor que 64 kilobytes (K) o 0 si el segmento es menor o igual que 64 K.

Si el segmento es un segmento de código, este miembro contiene 1 si el segmento es un segmento de código y se ejecuta con el conjunto de instrucciones predeterminado (modo nativo). Este miembro contiene 0 si el segmento de código es un segmento de código 80286 y se ejecuta con desplazamientos de 16 bits y el conjunto de instrucciones compatibles con 80286.

HighWord.Bits.Granularity

Granularidad. Este miembro contiene 0 si el segmento es granular de bytes, 1 si el segmento es granular de página.

HighWord.Bits.BaseHi

Bits altos (24–31) de la dirección base del segmento.

Comentarios

La función GetThreadSelectorEntry rellena esta estructura con información de una entrada de la tabla descriptor. Puede usar esta información para convertir una dirección relativa al segmento en una dirección virtual lineal.

La dirección base de un segmento es la dirección de desplazamiento 0 del segmento. Para calcular este valor, combine los miembros BaseLow, BaseMid y BaseHi .

El límite de un segmento es la dirección del último byte que se puede abordar en el segmento. Para calcular este valor, combine los miembros LimitLow y LimitHi .

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Encabezado winnt.h (incluye Windows.h)

Consulte también

Estructuras de depuración

GetThreadSelectorEntry