Поделиться через


структура 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)

См. также раздел

Структуры отладки

Wow64GetThreadSelectorEntry