Структура LDT_ENTRY характеризует запись в таблице дескрипторов. Эта структура допустима только в системах, базирующихся на x86.
Синтаксис
|
Члены структуры
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 |
Нет |
|
| Замечания по платформе |
Не имеется |
|