Создание эффективных WIN32-приложений с учетом специфики 64-разрядной версии Windows


Таблица описателей объектов ядра


При инициализации процесса система создает в нем таблицу описатслсй, используемую только для объектов ядра. Сведения о структуре этой таблицы и управлении ею незадокументированы Вообще-то я воздерживаюсь от рассмотрения недокументиро ванных частей операционных систем. Но в данном случае стоит сделать исключение, — квалифицированный Windows-программист, на мой взгляд, должен понимать, как устроена таблица описателей в процессе. Поскольку информация о таблице описателей незадокументирована, я не ручаюсь за ее стопроцентную достоверность и к тому же эта таблица по-разному реализуется в Windows 2000, Windows 98 и Windows СЕ. Таким образом, следующие разделы помогут понять, что представляет собой таблица описателей, но вот что система действительно делает с ней — этот вопрос я оставляю открытым.

В таблице 3-1 показано, как выглядит таблица описателей, принадлежащая про цессу Как видите, это просто массив структур данных Каждая структура содержит указатель на какой-нибудь объект ядра, маску доступа и некоторые флаги

Индекс Указатель на блок памяти объекта ядра Маска доступа (DWORD с набором битовых флагов) Флаги (DWORD с набором битовых флагов)
1 0х???????? 0х???????? 0x????????
2 0х???????? 0x???????? 0x????????

Таблица 3-1. Структура таблицы описателей, принадлежащей процессу




Начало  Назад  Вперед