структура WOW64_LDT_ENTRY (winnt.h)
Описывает запись в таблице дескрипторов для 32-разрядного потока в 64-разрядной системе. Эта структура действительна только в 64-разрядных системах.
Синтаксис
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;
Члены
LimitLow
Часть адреса последнего байта в сегменте в нижнем порядке.
BaseLow
Часть базового адреса сегмента в нижнем порядке.
HighWord
Часть дескриптора в высоком порядке. Этот элемент может интерпретироваться как байты или коллекции битов в зависимости от требуемого уровня детализации.
HighWord.Bytes
HighWord.Bytes.BaseMid
Средние биты (16–23) базового адреса сегмента.
HighWord.Bytes.Flags1
Значения элементов Type, Dpl и Pres в структуре Bits .
HighWord.Bytes.Flags2
Значения элементов LimitHi, Sys, Reserved_0, Default_Big и Granularity в структуре Bits .
HighWord.Bytes.BaseHi
Высокие биты (24–31) базового адреса сегмента.
HighWord.Bits
HighWord.Bits.BaseMid
Средние биты (16–23) базового адреса сегмента.
HighWord.Bits.Type
Тип сегмента. Этот элемент может иметь одно из следующих значений:
HighWord.Bits.Dpl
Уровень привилегий дескриптора. Этот член представляет собой целочисленное значение в диапазоне от 0 (наиболее привилегированный) до 3 (наименее привилегированный).
HighWord.Bits.Pres
Настоящий флаг. Этот элемент имеет значение 1, если сегмент присутствует в физической памяти, или 0, если это не так.
HighWord.Bits.LimitHi
Высокие биты (16–19) адреса последнего байта в сегменте.
HighWord.Bits.Sys
Пространство, доступное системным программистам. Этот элемент может использоваться для маркировки сегментов определенным системным способом.
HighWord.Bits.Reserved_0
Зарезервировано.
HighWord.Bits.Default_Big
Размер сегмента. Если сегмент является сегментом данных, этот элемент содержит 1, если сегмент больше 64 КБ, или 0, если сегмент меньше или равен 64 КБ.
Если сегмент является сегментом кода, этот элемент содержит 1. Сегмент выполняется с набором инструкций по умолчанию (собственный режим).
HighWord.Bits.Granularity
Степень детализации. Этот элемент содержит 0, если сегмент является детализированным по байтам, 1, если сегмент является детализированным на странице.
HighWord.Bits.BaseHi
Высокие биты (24–31) базового адреса сегмента.
Комментарии
Функция Wow64GetThreadSelectorEntry заполняет эту структуру сведениями из записи в таблице дескрипторов. Эти сведения можно использовать для преобразования относительного сегмента адреса в линейный виртуальный адрес.
Базовый адрес сегмента — это адрес смещения 0 в сегменте. Чтобы вычислить это значение, объедините элементы BaseLow, BaseMid и BaseHi .
Предел сегмента — это адрес последнего байта, который может быть адресован в сегменте. Чтобы вычислить это значение, объедините члены LimitLow и LimitHi .
Структура WOW64_LDT_ENTRY имеет тот же макет для 64-разрядного процесса, что и структура LDT_ENTRY для 32-разрядного процесса.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 7 [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
Верхняя часть | winnt.h (включая Windows.h) |