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) |