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