Структура LDT_ENTRY


Структура LDT_ENTRY характеризует запись в таблице дескрипторов. Эта структура допустима только в системах, базирующихся на x86.

Синтаксис

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;

Члены структуры

LimitLow

Младшая часть адреса последнего байта в сегменте.

BaseLow

Младшая часть базового адреса сегмента.

HighWord

Старшая часть дескриптора. Этот член структуры может интерпретироваться как байты или как совокупности битов, в зависимости от уровня требуемой детализации.

Члены структуры Bits следуют ниже.

Член структуры Предназначение
BaseMid Средние биты (16-23) из базового адреса сегмента.
Type Битовая маска, которая обозначает тип сегмента. Этот член структуры может быть одним из следующих значений:
0
Только читаемый сегмент данных.
 1
Сегмент данных записи - чтения.
 2
Неиспользуемый сегмент
 3
Расширяемый вниз сегмент данных  записи - чтения.
 4
Только исполняемый сегмент кода
 5
Читаемый - исполняемый сегмент кода
 6
"Адаптированный" только для исполнения сегмент кода
 7
"Адаптированный" для чтения - исполнения  сегмент кода
Dpl Уровень привилегии дескриптора. Этот член структуры - целочисленное значение в интервале от 0  (привилегированный) до 3 (наименее привилегированный).
Pres Флажок присутствия. Этот член структуры - 1, если сегмент присутствует в физической памяти или 0 если это не так.
LimitHi Старшие биты (16-19) из адреса последнего байта в сегменте.
Sys Пространство, которое является доступным для системных программистов. Этот член структуры может использоваться для того, чтобы отмечать сегменты некоторым специальным для системы способом.
Reserved_0 Зарезервирован.
Default_Big Размер сегмента. Если сегмент - сегмент данных, этот член структуры содержит 1, если сегмент является большим, чем 64 килобайта (K) или 0, если сегмент является меньшим, чем или равным 64 КБ.

Если сегмент - сегмент кода, этот член структуры содержит 1, если сегмент - сегмент кода и выполняется с заданным по умолчанию (родной режим) набором инструкций. Этот член структуры содержит 0, если сегмент кода является сегментом кода 80286  и выполняется с 16-разрядными смещениями и 80286-совместимым набором инструкций.

Granularity Гранулярность (Степень дробления). Этот член структуры содержит 0, если сегмент - гранулированный байт, и 1, если сегмент - гранулированная страница.
BaseHi Старшие биты (24-31) из базового адреса сегмента.

Члены структуры Bytes следуют ниже.

Член структуры Предназначение
BaseMid Средние биты (16-23) из базового адреса сегмента.
Flags1 Значения членов Type, Dpl и Pres в структуре Bits.
Flags2 Значения членов LimitHi, Sys, Reserved_0, Default_Big и Granularity  в структуре Bits.
BaseHi Старшие биты (24-31) из базового адреса сегмента.

Замечания

Функция GetThreadSelectorEntry заполняет эту структуру информацией из записей в таблице дескрипторов. Вы можете использовать эту информацию, чтобы преобразовать адрес относительно начала сегмента в линейный виртуальный адрес.

Базовый адрес сегмента - это адрес с 0 смещением в сегменте. Чтобы вычислить это значение, объедините члены BaseLow, BaseMid и BaseHi.

Предельный размер сегмента - это адрес последнего байта, который может адресоваться  в сегменте. Чтобы вычислять это значение, объедините члены LimitLow и LimitHi.

Смотри также

Обзор Основы отладки, Структуры, используемые при отладкеGetThreadSelectorEntry

Размещение и совместимость LDT_ENTRY

К

Windows XP

Да 

л

Windows 2000 Professional

Да

и

Windows NT Workstation

Да

е

Windows Me

Да

н

Windows 98

Да

т

Windows 95

Да

 
С

Windows Server 2003

Да

е Windows 2000 Server Да
р Windows NT Server Да 
в    
е    
р    

Используемая библиотека

-

Используемая DLL -
 Заголовочный файл  

- объявлено в

Winnt.h

 - включено в

Windows.h

 Unicode

Нет

 Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz