Это упрощено, но часть режима ядра операционной системы Windows разбита на три части: HAL, ядро и исполнительные подсистемы. Исполнительные подсистемы имеют дело с общей политикой и эксплуатацией O / S. Ядро имеет дело с особенностями архитектуры процесса для операций низкого уровня (например, спин-блокировки, переключения потоков), а также планирования. HAL имеет дело с различиями, которые возникают в конкретных реализациях архитектуры процессора (например, как прерывания маршрутизируются в этой реализации x86). Все это более подробно объясняется в книге Windows Internals.
Когда вы создаете новый процесс Win32, и ядро, и исполнительная подсистема хотят отслеживать его. Например, ядро хочет знать приоритет и сходство потоков в процессе, потому что это повлияет на планирование. Исполнительные подсистемы хотят отслеживать процесс, потому что, например, Исполнительная подсистема безопасности хочет связать токен с процессом, чтобы мы могли выполнить проверку безопасности позже.
Структура, которую ядро использует для отслеживания процесса, - это KPROCESS. Структура, которую исполнительные подсистемы используют для отслеживания, это EPROCESS. В качестве детали реализации, KPROCESS является первым полем EPROCESS, поэтому исполнительные подсистемы распределяют структуру EPROCESS и затем вызывают ядро для инициализации ее части KPROCESS. В конце концов, обе структуры являются частью объекта процесса, который представляет экземпляр пользовательского процесса. Это также должно быть рассмотрено в книге Windows Internals.
-Скотт