structure LDT_ENTRY (winnt.h)
Décrit une entrée dans la table de descripteur. Cette structure est valide uniquement sur les systèmes x86.
Syntaxe
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;
Membres
LimitLow
Partie d’ordre bas de l’adresse du dernier octet dans le segment.
BaseLow
Partie de bas ordre de l’adresse de base du segment.
HighWord
Partie d’ordre élevé du descripteur. Ce membre peut être interprété comme des octets ou des collections de bits, selon le niveau de détail requis.
HighWord.Bytes
HighWord.Bytes.BaseMid
Bits du milieu (16 à 23) de l’adresse de base du segment.
HighWord.Bytes.Flags1
Valeurs des membres Type, Dpl et Pres dans la structure Bits .
HighWord.Bytes.Flags2
Valeurs des membres LimitHi, Sys, Reserved_0, Default_Big et Granularité dans la structure Bits .
HighWord.Bytes.BaseHi
Bits élevés (24 à 31) de l’adresse de base du segment.
HighWord.Bits
HighWord.Bits.BaseMid
Bits du milieu (16 à 23) de l’adresse de base du segment.
HighWord.Bits.Type
Type de segment. Ce membre peut être l’une des valeurs suivantes :
HighWord.Bits.Dpl
Niveau de privilège du descripteur. Ce membre est une valeur entière comprise entre 0 (le plus privilégié) et 3 (privilèges les moins privilégiés).
HighWord.Bits.Pres
Indicateur présent. Ce membre est 1 si le segment est présent dans la mémoire physique ou 0 s’il ne l’est pas.
HighWord.Bits.LimitHi
Bits élevés (16 à 19) de l’adresse du dernier octet du segment.
HighWord.Bits.Sys
Espace disponible pour les programmeurs système. Ce membre peut être utilisé pour marquer des segments d’une manière spécifique au système.
HighWord.Bits.Reserved_0
Réservé.
HighWord.Bits.Default_Big
Taille du segment. Si le segment est un segment de données, ce membre contient 1 si le segment est supérieur à 64 kilo-octets (K) ou 0 si le segment est inférieur ou égal à 64 Ko.
Si le segment est un segment de code, ce membre contient 1 si le segment est un segment de code et s’exécute avec le jeu d’instructions par défaut (mode natif). Ce membre contient 0 si le segment de code est un segment de code 80286 et s’exécute avec des décalages 16 bits et le jeu d’instructions compatible 80286.
HighWord.Bits.Granularity
Granularité. Ce membre contient 0 si le segment est granulaire d’octet, 1 si le segment est granulaire de page.
HighWord.Bits.BaseHi
Bits élevés (24 à 31) de l’adresse de base du segment.
Remarques
La fonction GetThreadSelectorEntry remplit cette structure avec des informations provenant d’une entrée dans la table de descripteur. Vous pouvez utiliser ces informations pour convertir une adresse relative de segment en adresse virtuelle linéaire.
L’adresse de base d’un segment est l’adresse du décalage 0 dans le segment. Pour calculer cette valeur, combinez les membres BaseLow, BaseMid et BaseHi .
La limite d’un segment est l’adresse du dernier octet qui peut être traité dans le segment. Pour calculer cette valeur, combinez les membres LimitLow et LimitHi .
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
En-tête | winnt.h (inclure Windows.h) |