Partager via


structure WOW64_LDT_ENTRY (winnt.h)

Décrit une entrée dans la table de descripteur pour un thread 32 bits sur un système 64 bits. Cette structure est valide uniquement sur les systèmes 64 bits.

Syntaxe

typedef struct _WOW64_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;
} WOW64_LDT_ENTRY, *PWOW64_LDT_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 (Ko) ou 0 si le segment est inférieur ou égal à 64 Ko.

Si le segment est un segment de code, ce membre contient 1. Le segment s’exécute avec le jeu d’instructions par défaut (mode natif).

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 Wow64GetThreadSelectorEntry 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 .

La structure WOW64_LDT_ENTRY a la même disposition pour un processus 64 bits que la structure LDT_ENTRY pour un processus 32 bits.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau uniquement]
En-tête winnt.h (inclure Windows.h)

Voir aussi

Structures de débogage

Wow64GetThreadSelectorEntry