Freigeben über


LDT_ENTRY Struktur (winnt.h)

Beschreibt einen Eintrag in der Deskriptortabelle. Diese Struktur ist nur für x86-basierte Systeme gültig.

Syntax

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;

Member

LimitLow

Der niedrig sortierte Teil der Adresse des letzten Byte im Segment.

BaseLow

Der niedrigwertige Teil der Basisadresse des Segments.

HighWord

Der hochgeordnete Teil des Deskriptors. Dieses Element kann abhängig vom erforderlichen Detailgrad als Bytes oder Sammlungen von Bits interpretiert werden.

HighWord.Bytes

HighWord.Bytes.BaseMid

Mittlere Bits (16–23) der Basisadresse des Segments.

HighWord.Bytes.Flags1

Werte der Member Type, Dpl und Pres in der Bits-Struktur .

HighWord.Bytes.Flags2

Werte der Elemente LimitHi, Sys, Reserved_0, Default_Big und Granularität in der Bits-Struktur .

HighWord.Bytes.BaseHi

Hohe Bits (24–31) der Basisadresse des Segments.

HighWord.Bits

HighWord.Bits.BaseMid

Die mittleren Bits (16–23) der Basisadresse des Segments.

HighWord.Bits.Type

Der Typ des Segments. Dieser Member kann einer der folgenden Werte sein:

HighWord.Bits.Dpl

Die Berechtigungsebene des Deskriptors. Dieser Member ist ein ganzzahliger Wert im Bereich 0 (am meisten privilegierte) bis 3 (am wenigsten privilegierte).

HighWord.Bits.Pres

Das vorliegende Flag. Dieser Member ist 1, wenn das Segment im physischen Speicher vorhanden ist, oder 0, wenn es nicht ist.

HighWord.Bits.LimitHi

Die hohen Bits (16–19) der Adresse des letzten Byte im Segment.

HighWord.Bits.Sys

Der Speicherplatz, der Systemprogrammierern zur Verfügung steht. Dieses Element kann zum Markieren von Segmenten auf eine systemspezifische Weise verwendet werden.

HighWord.Bits.Reserved_0

Reserviert.

HighWord.Bits.Default_Big

Die Größe des Segments. Wenn es sich bei dem Segment um ein Datensegment handelt, enthält dieses Element 1, wenn das Segment größer als 64 KB (K) ist, oder 0, wenn das Segment kleiner oder gleich 64K ist.

Wenn das Segment ein Codesegment ist, enthält dieses Element 1, wenn das Segment ein Codesegment ist und mit dem Standardanweisungssatz (nativer Modus) ausgeführt wird. Dieses Element enthält 0, wenn das Codesegment ein 80286-Codesegment ist und mit 16-Bit-Offsets und dem 80286-kompatiblen Befehlssatz ausgeführt wird.

HighWord.Bits.Granularity

Die Granularität. Dieses Element enthält 0, wenn das Segment bytegranular ist, 1, wenn das Segment seitengranular ist.

HighWord.Bits.BaseHi

Die hohen Bits (24–31) der Basisadresse des Segments.

Hinweise

Die GetThreadSelectorEntry-Funktion füllt diese Struktur mit Informationen aus einem Eintrag in der Deskriptortabelle. Sie können diese Informationen verwenden, um eine segmentrelative Adresse in eine lineare virtuelle Adresse zu konvertieren.

Die Basisadresse eines Segments ist die Adresse des Offsets 0 im Segment. Um diesen Wert zu berechnen, kombinieren Sie die Elemente BaseLow, BaseMid und BaseHi .

Das Limit eines Segments ist die Adresse des letzten Byte, das im Segment adressiert werden kann. Um diesen Wert zu berechnen, kombinieren Sie die Elemente LimitLow und LimitHi .

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Kopfzeile winnt.h (Einschließen von Windows.h)

Weitere Informationen

Debuggen von Strukturen

GetThreadSelectorEntry