Наверх Системное программирование
Предыдущий раздел Оглавление Следующий раздел

2.3.3.1. Дескрипторы

Рис

Рис. 2.8. Структуры данных
таблицы описателей(для
минимальной таблицы для
одной страницы с не
более чем 512 описателями)

Ссылки пользовательского режима на объекты режима ядра не могут использовать указатели, поскольку их трудно проверить. Для ссылки на объекты режима ядра Windows использует описатели(handles, часто также называемые дескрипторами).

Описатели — это неявные значения, которые конвертируются диспетчером объектов в ссылки на представляющие объект специфические структуры данных режима ядра.

На рис. 2.8 показана структура данных таблицы дескрипторов, используемой для трансляции описателей в указатели на объекты.

На рис. 2.9 показана таблица описателей с двумя дополнительными уровнями косвенного обращения. Для выполняющегося в режиме ядра кода иногда бывает удобно иметь возможность использовать описатели (а не указатели со ссылками).

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

Рис

Рис. 2.9. Структуры данных таблицы описателей (для
максимальной таблицы размером до
16 млн. описателей)

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











Предыдущий раздел Оглавление Следующий раздел