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)

Voir aussi

Structures de débogage

GetThreadSelectorEntry