WOW64_LDT_ENTRY-Struktur (winnt.h)
Beschreibt einen Eintrag in der Deskriptortabelle für einen 32-Bit-Thread auf einem 64-Bit-System. Diese Struktur ist nur auf 64-Bit-Systemen gültig.
Syntax
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;
Member
LimitLow
Der teil der niedrigen Reihenfolge der Adresse des letzten Byte im Segment.
BaseLow
Der Teil der Basisadresse des Segments mit niedriger Reihenfolge.
HighWord
Der hochgeordnete Teil des Deskriptors. Dieser Member kann je nach erforderlicher Detailebene als Bytes oder Bitsammlungen 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 Berechtigungsstufe des Deskriptors. Dieser Member ist ein ganzzahliger Wert im Bereich von 0 (am meisten privilegierte) bis 3 (am wenigsten privilegierte).
HighWord.Bits.Pres
Das vorhandene Flag. Dieser Member ist 1, wenn das Segment im physischen Speicher vorhanden ist, oder 0, wenn dies nicht der Fall ist.
HighWord.Bits.LimitHi
Die hohen Bits (16–19) der Adresse des letzten Byte im Segment.
HighWord.Bits.Sys
Der Für Systemprogrammierer verfügbare Speicherplatz. Dieser Member 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 das Segment ein Datensegment ist, enthält dieses Element 1, wenn das Segment größer als 64 KB ist, oder 0, wenn das Segment kleiner oder gleich 64 KB ist.
Wenn das Segment ein Codesegment ist, enthält dieses Element 1. Das Segment wird mit dem Standardanweisungssatz (einheitlicher Modus) ausgeführt.
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 Wow64GetThreadSelectorEntry-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 .
Die Grenze 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 .
Die WOW64_LDT_ENTRY-Struktur hat das gleiche Layout für einen 64-Bit-Prozess wie die LDT_ENTRY-Struktur für einen 32-Bit-Prozess.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 7 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 R2 [nur Desktop-Apps] |
Kopfzeile | winnt.h (windows.h einschließen) |