Содержит дополнительную информацию, которая необходима Windows для потоков, а именно:
· указатель на каталог страниц процесса.
· базовый приоритет по умолчанию: в ОС Windows имеются четыре класса приоритета.
IDLE
NORMAL
REAL_TIME
В Windows 95 всем процессам выделяется квант времени процессора 20 мс. В этом блоке ука-зывается суммарное время работы потока в режиме ядра и пользовательского времени.
Расположен в пользовательском адресном пространстве.
В Windows 2000 находится по адресу 7FFDF000h. Содержит следующую информацию, необходимую для работы:
· Адрес кучи процесса по умолчанию.
· Указатель на структуры, описывающий загруженные модули.
· IMTE – описывает все загруженные модули всеми процессами.
· MODREF – содержит список всех модулей, используемых данным процессом.
· Содержит указатель на список файлов, отображённых в памяти, которые используются данным процессом.
· Указатель на базу данных среды, которая содержит текущий каталог, область окружения процесса, командную строку.
· Указатель на заголовок списка свободного пространства в куче по умолчанию.
· Указатель на заголовок связанного списка куч процесса.
В DOS List OF List – это основная управляющая структура, адрес которой можно получить с помощью соотвествующих прерываний.
Int 52h
Int 21h
MCB
LOL
Информация о всех открытых файлах содержится в системной таблице файлов. В простейшем случае системная таблица файлов состоит из пяти записей. В этой таблице содержится информация об устройствах:
CON
AUX
PRN
FILES
В общем случае SFT имеет следующую структуру.
SFT содержит список всех открытых файлов.
PSP
JFT
Программный код и данные
Каждая запись представляет собой номер
строки в таблице SFT
Job File Table SFT
набор однобайтных
записей
В SFT нельзя создавать больше 255 файлов. Структура записей меняется 53h – 58h.
Таблица дескрипторов содержит не только дескрипторы файлов, но и объектов ядра. Структу-ра таблицы дескрипторов имеет следующий вид.
Количество записей
4байта
Флаг 1
8 байт
Объект 1
…
Флаг N
8 байт
Объект N
Первые 4 байта определяют количество записей в таблице дескрипторов (30h). Если таблица заполнена, то Windows создаёт кучу, делая прибавление 10h и так далее, то есть для Windows ограничения в 255 дескрипторов не существует. После количества записей идёт массив 8 байтных структур. Каждая структура состоит из двух полей.
1 поле. Флаг управления доступом к объекту. Назначение флагов различно для различных типов объекта. Например объект – процесс. Флаг – процесс завершён. Следующее DWORD – указатель базы данных соответствующего объекта.
PsActiveProcessHead. Заголовок списка блоков PDB. CreateProcess(…) открывет ехе файл, который будет выполняться в процессе, то есть PDB. Создаёт первичный поток, то есть стек потока, контекст потока (содержимое всех регистров) и объект поток, то есть TDB.
Уведомляет подсистему Win32 о создании нового процесса и потока. Начинает выполнение первичного потока, если в том случае не указан флаг Create_Suspend.
В контексте нового процесса и потока инициализируется адресное пространство, то есть загружаются необходимые dll и начинается выполнение программы.