Энциклопедия архитектуры и структур ядра Windows NT
Справочник по ключевым низкоуровневым концепциям, структурам данных, регистрам CPU, таблицам дескрипторов и подсистемам ядра Windows NT.
Физический адрес (0xFFFFFFF0), с которого любой x86/x64 процессор начинает исполнение первой машинной инструкции после подачи питания или сигнала RESET.
CS:EIP = 0xF000:0xFFF0 (Base 0xFFFF0000)Находится ровно на 16 байт ниже границы 4 ГБ физического адресного пространства. Содержит 16-байтную инструкцию безусловного перехода (JMP) в основной блок прошивки UEFI/BIOS. Запросы по этому адресу аппаратно направляются чипсетом в микросхему SPI Flash ROM, так как DRAM ещё не инициализирована.
Базовый 16-битный режим совместимости с процессором Intel 8086, в котором любой x86/x64 процессор начинает работу после сброса.
CR0.PE = 0Ограничен 1 МБ адресуемой памяти (20-битная сегментная адресация: Сегмент * 16 + Смещение). Полностью отсутствует аппаратная защита памяти и кольца привилегий: любой код может перезаписать память любого другого компонента. Фаза SEC в UEFI практически мгновенно переводит процессор из Real Mode в 32-битный Protected Mode.
32-битный режим процессора x86 с аппаратной изоляцией памяти, кольцами привилегий (Rings 0–3), таблицами GDT/IDT и поддержкой виртуальной страничной памяти (Paging).
CR0.PE = 1Включается установкой бита PE (Protection Enable, бит 0) в регистре управления CR0. Позволяет адресовать до 4 ГБ плоской памяти, разграничивать доступ ядра (Ring 0) и приложений (Ring 3) и генерировать аппаратные исключения (#GP) при несанкционированном доступе.
Основной 64-битный режим работы современных операционных систем (Windows NT x64), расширяющий регистры до 64 бит и поддерживающий до 256 ТБ адресного пространства.
IA32_EFER.LME / CR4.PAEАктивируется установкой бита EFER.LME (Long Mode Enable) в MSR 0xC0000080 и включением страниц памяти (CR0.PG=1, CR4.PAE=1). Использует 4-уровневую (PML4) или 5-уровневую (PML5) трансляцию страниц, NX-бит защиты от выполнения и 16 регистров общего назначения (RAX-R15).
Ключевой системный регистр процессора x86/x64, управляющий режимами работы процессора (Real Mode / Protected Mode), страничной памятью и кэшированием.
CR0 (Bits: PE, MP, EM, TS, NE, WP, AM, NW, CD, PG)Бит 0 (Protection Enable) переключает процессор в защищенный режим. Бит 31 (Paging) включает трансляцию виртуальных страниц. Бит 16 (Write Protect) запрещает ядру Ring 0 запись в страницы, помеченные как read-only.
Таблица указателей на функции ядра (syscalls), вызываемые через инструкцию syscall (x64) или sysenter (x86).
KSERVICE_TABLE_DESCRIPTOR (_KSERVICE_TABLE_DESCRIPTOR)Windows использует массив KeServiceDescriptorTable. В x64 таблица содержит 32-битные относительные смещения (сдвинутые вправо на 4 бита) относительно базы KiServiceTable, что защищает указатели от простого хукинга. Также существует KeServiceDescriptorTableShadow для вызовов win32k.sys (GDI/USER).
Аппаратная таблица ЦП x86/x64, содержащая шлюзы прерываний, исключений (Page Fault, Double Fault) и аппаратных векторов IRQ.
IDTR / KIDTENTRY64Регистр IDTR загружается инструкцией LIDT (в функции KiInitializeIdt / KiSystemStartup). Содержит 256 дескрипторов (по 16 байт в x64), указывающих на обработчики исключений (например, KiPageFault, KiBreakpointTrap, KiDoubleFaultAbort).
Таблица процессора, определяющая сегменты памяти (CS, DS, SS, GS, FS) и дескрипторы TSS в защищенном и Long Mode режимах.
GDTR / KGDTENTRY64В x64 сегментация сведена к минимуму (базовый адрес 0 для большинства сегментов), однако GDT по-прежнему критически необходима для переключения уровней привилегий (CPL: Ring 0 <-> Ring 3) и загрузки селектора TSS (Task State Segment). Загружается через LGDT.
Структура x86/x64, используемая процессором для хранения указателей стеков разных колец привилегий (RSP0, RSP1, RSP2) и таблицы IST.
KTSS64 / Task Register (TR)В 64-битном режиме Windows TSS используется для хранения стека ядра (RSP0), на который ЦП переключается при переходе Ring 3 -> Ring 0, а также таблицы IST (Interrupt Stack Table) из 7 выделенных стеков для критических исключений (Double Fault, NMI, Machine Check).
Специфичная для каждого логического ядра процессора структура, описывающая состояние CPU, базы GDT/IDT/TSS и указатель на KPRCB.
_KPCR (gs:[0x0])В архитектуре x64 доступ к KPCR осуществляется через сегментный регистр GS (базовый адрес MSR 0xC0000101). Структура KeGetPcr() возвращает адрес KPCR текущего логического процессора. Включает в себя KPRCB (Processor Control Block).
Внутренняя структура ядра, содержащая состояние планировщика потоков (CurrentThread, NextThread, IdleThread), очереди DPC, очереди ожидания и статистику CPU.
_KPRCB (gs:[0x180])Располагается сразу внутри или за KPCR (доступ через gs:[0x180] или KeGetCurrentPrcb()). Содержит очереди очередей готовности (ReadyListHead), текущий поток (CurrentThread), маску аффинитета, счетчики прерываний и таймеров.
Регистр процессора, содержащий физический адрес корневой таблицы трансляции страниц памяти (PML4 в 4-уровневой или PML5 в 5-уровневой подсистеме).
CR3 / EPROCESS.Pcb.DirectoryTableBaseКаждый процесс в Windows имеет собственное значение DirectoryTableBase (CR3). При переключении контекста потока (KiSwapContext / KiSwapProcess) ядро загружает новый адрес CR3, мгновенно переключая виртуальное адресное пространство на таблицы страниц целевого процесса.
Основная структура подсистемы I/O Manager в Windows, представляющая асинхронный запрос на операцию ввода-вывода к драйверам устройств.
_IRP / _IO_STACK_LOCATIONДрайверы обрабатывают IRP через стек слоев (Driver Stack / Device Objects). IRP содержит заголовок и стек параметров IO_STACK_LOCATION для каждого драйвера в цепочке. Создается через IoAllocateIrp / IoBuildAsynchronousFsdRequest.
Структура, описывающая физические страницы оперативной памяти (массив PFN), занятые виртуальным буфером.
_MDL (MappedSystemVa, ByteCount, ByteOffset)Используется для прямого доступа к памяти (DMA) и безопасной передачи буферов между пользовательским пространством и ядром/драйверами без двойного копирования. Управляется функциями MmProbeAndLockPages, MmMapLockedPagesSpecifyCache, MmUnlockPages.
Механизм выполнения функций в контексте конкретного целевого потока (на уровне Kernel APC или User APC).
_KAPC / KiDeliverApcСпециальные ядерные APC (Special Kernel APC) используются менеджером памяти и подсистемой I/O для завершения операций ввода-вывода. Доставляются функцией KiDeliverApc при понижении IRQL ниже APC_LEVEL (IRQL 1).
Механизм отложенного выполнения низкоприоритетной части обработки прерываний на уровне IRQL DISPATCH_LEVEL (IRQL 2).
_KDPC / KiRetireDpcListКогда ISR (Interrupt Service Routine) драйвера завершает критические действия с железом на высоком DIRQL, он ставит DPC в очередь (через KeInsertQueueDpc). Процессор обрабатывает очередь DPC (KiRetireDpcList) на уровне DISPATCH_LEVEL, освобождая шину прерываний.
Низкоуровневая динамическая библиотека (hal.dll / halacpi.dll), изолирующая ядро Windows от архитектурных различий материнских плат, чипсетов и контроллеров прерываний (APIC/IOAPIC).
hal.dll / HalInitSystemИнициализируется в 2 фазы: HalInitSystem(0) на фазе 0 (ранняя настройка таймеров и базового APIC) и HalInitSystem(1) на фазе 1 (настройка шин PCI/ACPI, IOMMU и контроллеров питания).
Специальный тип драйверов безопасности, загружаемый загрузчиком winload.efi до инициализации всех остальных драйверов сторонних производителей.
SERVICE_BOOT_START (ELAM Hive Classification)ELAM-драйверы получают управление первыми и классифицируют остальные загрузочные драйверы на Good, Bad, Unknown. Если драйвер помечен как вредоносный, ядро блокирует его инициализацию на раннем этапе загрузки.
Технология изоляции Windows, использующая гипервизор Hyper-V для создания защищенных виртуальных уровней доверия (VTL 0 и VTL 1).
Hyper-V / VTL0 vs VTL1 / SLAT (EPT/NPT)Обычная Windows (ядро и приложения) работает в VTL 0. Изолированное защищенное ядро (Secure Kernel, securekernel.exe) и изолированный процесс LSA (Credential Guard) работают в VTL 1, полностью защищенные даже при компрометации Ring 0 в VTL 0.
Функция безопасности VBS, запрещающая исполнение неподписанного или измененного кода в пространстве ядра Windows с помощью аппаратной виртуализации (SLAT / Second Level Address Translation).
SLAT Page Tables / CI.dll / VTL1Гипервизор контролирует биты прав доступа на страницах памяти ядра (Write XOR Execute). Страница не может быть одновременно доступна на запись и исполнение, что предотвращает инъекцию шеллкода в Ring 0.
Иерархическая база данных параметров загрузки Windows (в формате куста реестра), заменившая устаревший файл boot.ini.
BCD Registry Hive / BmOpenBootConfigurationDataStoreХранится в файле `\EFI\Microsoft\Boot\BCD` (на EFI-разделе) или `\Boot\BCD` (на MBR). Содержит GUID-записи для Boot Manager, Winload, тестов памяти и параметров ядра (safeboot, testsigning, debug, noexecute).
Пользовательская структура в памяти каждого процесса, содержащая параметры запуска, список загруженных DLL (Ldr), кучи и флаги отладки.
_PEB (gs:[0x60] in x64 / fs:[0x30] in x86)Доступна из пользовательского режима (в x64 через gs:[0x60]). Содержит структуру PEB_LDR_DATA со списками модулей (InLoadOrderModuleList, InMemoryOrderModuleList), переменные окружения ProcessParameters и флаг BeingDebugged.
Пользовательская структура для каждого потока, содержащая указатель на PEB, фреймы исключений (SEH), локальное хранилище потока (TLS) и код последней ошибки (LastErrorValue).
_TEB (gs:[0x30] in x64)Доступна в пользовательском режиме x64 через регистр сегмента gs:[0x30]. Содержит ClientId (UniqueProcess, UniqueThread) и стек вызовов.
Системный процесс services.exe в Сессии 0, отвечающий за запуск, остановку и управление системными службами и загрузку драйверов автозапуска.
services.exe / ScStartServiceЗапускается процессом wininit.exe. Читает ветку реестра HKLM\SYSTEM\CurrentControlSet\Services и запускает службы типов SERVICE_SYSTEM_START и SERVICE_AUTO_START, взаимодействуя с ними по протоколу RPC (Advapi32 / Scm RPC).
Высокопроизводительный механизм межпроцессного взаимодействия (IPC) в ядре Windows для обмена сообщениями между процессами на одном хосте.
_ALPC_PORT / NtAlpcCreatePort / NtAlpcSendWaitReceivePortИспользуется для связи подсистем: Winlogon <-> LSASS, приложения <-> CSRSS, клиенты RPC <-> Services.exe. Поддерживает передачу коротких сообщений через стек, передачу больших буферов через разделяемые секции (Section View) и прямой маппинг страниц.
Номер 4-килобайтного физического блока памяти и соответствующая запись в глобальной базе данных ядра PFN Database.
_MMPFN / MmPfnDatabaseМенеджер памяти Windows отслеживает состояние каждой физической страницы через массив `_MMPFN` (база MmPfnDatabase). Фрейм может находиться в одном из 8 состояний: Active, Standby, Modified, ModifiedNoWrite, Free, Zeroed, Bad, Transition.
64-битный дескриптор в таблице страниц процессора x64, сопоставляющий виртуальную страницу памяти с физическим адресом PFN и задающий флаги доступа (Valid, Writable, User/Supervisor, NX).
_MMPTE / HARDWARE_PTEВ x64 архитектуре трансляция проходит через 4 уровня: PML4E -> PDPTE -> PDE -> PTE. В PTE младшие биты хранят права: бит 0 (Valid/Present), бит 1 (Read/Write), бит 2 (User/Kernel), бит 63 (No-Execute / NX).
Сбалансированное двоичное дерево (AVL-дерево) в структуре EPROCESS, описывающее выделенные диапазоны виртуальной памяти процесса (VirtualAlloc, mmap).
_MMVAD / _MM_AVL_TABLEКогда поток обращается к адресу памяти, вызывая Page Fault (KiPageFault), диспетчер памяти обходит VAD-дерево процесса (`EPROCESS.VadRoot`), чтобы проверить, выделен ли данный диапазон и каковы права доступа (PAGE_READWRITE, PAGE_EXECUTE_READ и т.д.).
Режим ранней инициализации, при котором L2/L3 кэш процессора настраивается как временная RAM до подъёма контроллера памяти (DRAM).
MTRR (Memory Type Range Registers) / MSR 0x2FFНа фазе SEC прошивки оперативная память ещё физически недоступна. ЦП переводит кэш в режим No-Eviction Mode (NEM) с помощью регистров MTRR, создавая стек для выполнения C-кода фазы PEI.
Современный стандартизированный интерфейс между микропрограммой материнской платы и операционной системой, заменивший Legacy BIOS.
EFI_SYSTEM_TABLE / EFI_BOOT_SERVICES / EFI_RUNTIME_SERVICESПредоставляет Boot Services (управление памятью, протоколы устройств) и Runtime Services (доступ к переменным NVRAM, капсульное обновление, RTC). Поддерживает GPT, Secure Boot и 64-битный режим процессора с первых миллисекунд.
Первая фаза исполнения UEFI после аппаратного сброса процессора по вектору 0xFFFFFFF0.
Reset Vector (0xFFFFFFF0) / SEC CoreПереключает CPU из 16-битного Real Mode в Flat Protected Mode, настраивает CAR (Cache-as-RAM) и передаёт корень доверия (Root of Trust) диспетчеру фазы PEI.
Фаза прошивки, поднимающая контроллер оперативной памяти (DRAM) и базовую системную логику.
PEI Foundation / PEIM / HOB ListИсполняет легковесные модули PEIM (PEI Modules). После обнаружения и настройки планок RAM формирует структуры HOB (Hand-Off Blocks) и передаёт управление фазе DXE.
Специализированный драйвер фазы PEI для опроса SPD памяти, чипсета и передачи данных фазе DXE.
EFI_PEI_SERVICES / PPI (PEI-to-PEI Interface)Модули PEIM работают в условиях ограниченной памяти CAR, инициализируют шины SMBus/I2C и поднимают DRAM.
Основная фаза UEFI, загружающая драйверы устройств (NVMe, PCIe, USB, FAT32/ESP, видео) и создающая таблицы сервисов.
DXE Dispatcher / EFI Protocols / EFI_HANDLEДиспетчер DXE считывает HOB-список из PEI, строит карту системной памяти и загружает протоколы драйверов в память для последующего использования загрузчиком Windows.
Финальная фаза прошивки, считывающая порядок загрузки из NVRAM, проверяющая Secure Boot и запускающая bootmgfw.efi.
BdsEntry / NVRAM BootOrder / EFI_LOADED_IMAGEАнализирует переменные BootOrder и Boot####. При включенном Secure Boot проверяет цифровую подпись загрузочного EFI-приложения и запускает его через gBS->StartImage().
Структура данных, через которую фаза PEI передает информацию об обнаруженной физической памяти и железе фазе DXE.
EFI_HOB_MEMORY_ALLOCATION / HOB List PointerПредставляет собой связный список дескрипторов (EFI_HOB_GENERIC_HEADER), описывающих диапазоны RAM, статус загрузки и адреса прошивки.
Первый сектор накопителя (LBA 0, 512 байт) в устаревшей схеме разбиения BIOS, содержащий начальный код загрузки и таблицу из 4 разделов.
LBA 0 (Offset 0x01BE: Partition Table, Signature 0xAA55)Код MBR загружается по фиксированному физическому адресу 0x7C00. Он находит активный раздел и передаёт управление сектору VBR (Volume Boot Record).
Современный стандарт схемы размещения таблиц разделов на физическом накопителе, использующий 64-битные LBA-адреса и GUID-идентификаторы.
_GPT_HEADER (LBA 1, Signature "EFI PART")Заголовок GPT располагается в LBA 1 (резервная копия в конце диска), защищен контрольной суммой CRC32 и содержит массив до 128 дескрипторов разделов.
Первый сектор активного дискового раздела, содержащий код загрузки конкретного менеджера (например, bootmgr).
Boot Sector (BPB - BIOS Parameter Block)Вызывается кодом MBR после проверки сигнатуры 0xAA55, считывает файл bootmgr в память и переходит на него в 16-битном Real Mode.
Аппаратный или микропрограммный чип безопасности для криптографического хранения ключей BitLocker, замеров загрузки (PCR) и аттестации платформы.
TPM 2.0 / PCR (0-23) / TIS (TPM Interface Specification)Каждый этап загрузки (UEFI, Bootmgr, Winload, Kernel) измеряет хеши последующих модулей и расширяет регистры PCR (Platform Configuration Registers). Ключ BitLocker расшифровывается только при совпадении PCR.
Технология прозрачного аппаратного/программного шифрования томов Windows алгоритмами XTS-AES 128/256.
fvevol.sys / FVE Metadata Block / VMK / FVKУправляется библиотекой fveapi.dll и драйвером fvevol.sys. Во время загрузки Bootmgr разблокирует том через TPM (BmFveOpenVolume), передавая мастер-ключ VMK в winload.efi.
Аппаратный/программный приоритет выполнения потока или обработчика прерываний в ядре Windows (от PASSIVE_LEVEL=0 до HIGH_LEVEL=15 в x64; в устаревшем 32-битном x86 верхний предел составлял 31).
CR8 (Task Priority Register / TPR в x64) / KeGetCurrentIrqlОпределяет, какие прерывания замаскированы. При IRQL >= DISPATCH_LEVEL (2) запрещено обращение к выгружаемой (paged) памяти и блокирующие ожидания (KeWaitForSingleObject).
Первый пользовательский процесс Windows, создающий файлы подкачки, переменные среды и изолированные сессии (Session 0 и Session 1).
smss.exe / SmpInit / SmpCreateSessionЗапускается ядром через StartFirstUserProcess. Работает в нативном режиме NT Native API (ntdll.dll без Win32) и порождает дочерние экземпляры smss.exe для каждой сессии.
Критический системный процесс пользовательского режима, отвечающий за консольные окна (conhost), создание процессов и нитей в Win32-подсистеме.
csrss.exe / CsrServerCore / ALPC PortЗапускается для каждой сессии. При аварийном завершении csrss.exe ядро немедленно генерирует Blue Screen (BSOD CRITICAL_PROCESS_DIED). Взаимодействует с приложениями через ALPC.
Процесс безопасности Windows, отвечающий за аутентификацию пользователей, токены доступа, Kerberos, NTLM и применение политик безопасности.
lsass.exe / LsaInitSystem / Secur32.dllСоздает токены безопасности (Access Tokens) при входе через LogonUI/Winlogon. В системах с VBS изолируется в VTL 1 как LSAIso (Credential Guard) для защиты хешей паролей от извлечения (Mimikatz).
Ядерная и пользовательская подсистема проверки подлинности, аудита и генерации маркеров доступа (Access Tokens).
LsaRegisterLogonProcess / TOKEN (_TOKEN)Интегрирована в lsass.exe и se.dll/ntoskrnl.exe. Обеспечивает проверку прав доступа к объектам ядра (Security Descriptors, DACL, SACL).
Процесс управления интерактивной сессией пользователя в Сессии 1, обрабатывающий Secure Attention Sequence (SAS, Ctrl+Alt+Del) и загружающий профиль пользователя.
winlogon.exe / WlInitialize / WlxLoggedOnSASЗапускает LogonUI.exe для ввода пароля/PIN/биометрии, аутентифицирует учетные данные через LSASS, монтирует реестр NTUSER.DAT и стартует userinit.exe.
Системный процесс-инициализатор неинтерактивной Сессии 0, запускающий диспетчер служб (services.exe), LSASS и диспетчер сессий (lsm.exe).
wininit.exe / WinMainСоздает оконную станцию WinSta0 и десктопы для системных служб. Является критическим процессом Сессии 0.
Главный процесс пользовательской графической оболочки Windows, создающий Рабочий стол, Панель задач, меню Пуск и трей.
explorer.exe / ExplorerWinMain / Shell_TrayWndЗапускается процессом userinit.exe после успешного монтирования профиля HKCU. Предоставляет пользователю графический рабочий стол и хостит COM-серверы расширений оболочки.
Подсистема ядра, выполняющая перечисление аппаратных устройств на шинах (PCI, ACPI, USB), сопоставление драйверов и распределение ресурсов (IRQ, I/O, MMIO).
_DEVICE_NODE / IopInitializePlugPlayServicesИнициализируется на фазе 1 (IopInitializeBootDrivers / PipEnumerateDeviceTree). Строит дерево узлов устройств (Device Node Tree) и отправляет драйверам IRP-запросы IRP_MJ_PNP (IRP_MN_START_DEVICE и др.).
Встроенный графический драйвер ядра для отображения логотипа загрузки Windows, кольца прогресса и синего экрана смерти (BSOD).
InbvEnableBootDriver / InbvDisplayString / InbvBitBltРаботает с линейным видеобуфером Framebuffer, переданным из UEFI (через структуру LOADER_PARAMETER_BLOCK), до загрузки полноценного WDDM-драйвера видеокарты.
Стандарт описания конфигурации материнской платы, таблиц питания (DSDT, SSDT, MADT, FADT) и управления спящими режимами (S0-S5).
RSDP / RSDT / XSDT / MADT / acpi.sysДрайвер acpi.sys парсит байткод AML (ACPI Machine Language), строит дерево устройств материнской платы и настраивает маршрутизацию прерываний через таблицу MADT.
Аппаратный контроллер прерываний x86/x64, состоящий из Local APIC (в каждом ядре ЦП) и I/O APIC (в чипсете материнской платы).
LAPIC Base MSR (0x1B / 0x800-0x83F в x2APIC) / I/O APICОбеспечивает доставку аппаратных IRQ, межпроцессорных прерываний (IPI / Inter-Processor Interrupts) для синхронизации ядер CPU и локальных таймеров.
Аппаратный механизм, позволяющий периферийным контроллерам (NVMe, сетевые карты, GPU) передавать данные напрямую в/из RAM без участия CPU.
DMA_ADAPTER / AllocateAdapterChannel / IOMMUВ Windows настраивается через объекты DMA_ADAPTER и списки дескрипторов MDL. Защищается с помощью IOMMU / DMA Remapping для предотвращения атак DMA-перехвата.
Аппаратный блок процессора/чипсета (Intel VT-d, AMD-Vi), транслирующий адреса DMA и изолирующий устройства от несанкционированного доступа к системной памяти.
Intel VT-d / AMD-Vi / HalpIommuInterfaceИспользуется подсистемами безопасности Windows (Kernel DMA Protection, HVCI, VBS) для изоляции памяти ядра от вредоносных PCIe-устройств (Thunderbolt/USB4 DMA Protection).
Главный исполняемый бинарный файл ядра Windows x64, содержащий микроядро (Ke), исполнительную систему (Ex), менеджер памяти (Mm), диспетчер процессов (Ps) и подсистему безопасности (Se).
ntoskrnl.exe / KiSystemStartup / Phase1InitializationЗагружается winload.efi в виртуальную память ядра. Запускается с функции KiSystemStartup, организует планирование потоков, системные вызовы и управление всеми системными объектами.
Низкоуровневая прошивка материнской платы, хранящаяся в SPI Flash чипе и выполняющая начальный запуск аппаратных узлов компьютера.
SPI Flash ROM / UEFI SpecificationsВключает фазы SEC, PEI, DXE, BDS. Проверяет цифровую подпись Boot Manager и передаёт управление загрузчику bootmgfw.efi.
Микросхема EEPROM на модуле оперативной памяти, хранящая профили JEDEC/XMP, тайминги, напряжение и поддерживаемую частоту.
SMBus / I2C EEPROM (JEDEC SPD / Intel XMP / AMD EXPO)Модули фазы PEI опрашивают чипы SPD по шине SMBus/I2C, чтобы правильно настроить контроллер памяти (DRAM Controller) и применить стабильные тайминги CL-tRCD-tRP-tRAS.
Специальный раздел диска (FAT32), помеченный GUID c12a7328-f81f-11d2-ba4b-00a0c93ec93b, где хранятся загрузчики bootmgfw.efi и BCD.
FAT32 Partition / \EFI\Microsoft\Boot\bootmgfw.efiПрошивка UEFI монтирует раздел ESP с помощью встроенного FAT-драйвера, считывает файл конфигурации BCD и исполняет загрузочный образ операционной системы.
Высокоскоростной протокол прямого доступа к SSD-накопителям через шину PCIe с аппаратными очередями команд (до 64K очередей по 64K команд).
PCIe NVMe Controller / Submission & Completion Queues / stornvme.sysПоддерживает низкие задержки за счёт прямого DMA-доступа к памяти хоста и параллельной обработки запросов без блокировок.
Основная системная высокоскоростная шина последовательной передачи данных (Point-to-Point) для видеокарт, NVMe-накопителей и сетевых адаптеров.
PCIe ECAM / pci.sys / Root ComplexКонфигурационное пространство PCIe (ECAM / Enhanced Configuration Access Mechanism) мапится в память (MMIO) и перечисляется драйвером pci.sys на фазе 1 ядра.
Аппаратный механизм взаимодействия контроллеров накопителей Serial ATA (SATA) с операционной системой с поддержкой Native Command Queuing (NCQ).
storahci.sys / PCI Configuration SpaceИнициализируется DXE-драйвером на этапе прошивки и драйвером storahci.sys в ядре Windows.
Схема адресации секторов накопителя от LBA 0 (первый сектор диска) до конца объёма, пришедшая на замену CHS (Cylinder-Head-Sector).
LBA 0 (MBR), LBA 1 (GPT Header), LBA 2-33 (Partition Entries)В MBR LBA ограничена 32 битами (максимум 2 ТБ), в таблицах GPT используются 64-битные LBA-адреса, снимающие ограничения на объём дисков.
Алгоритм вычисления 32-битной контрольной суммы для проверки целостности структур данных (в заголовках GPT, BCD, PE-файлах).
_GPT_HEADER.HeaderCRC32Заголовок GPT содержит поле HeaderCRC32. Если вычисленный CRC32 не совпадает, прошивка и загрузчик отклоняют заголовок и читают резервную копию GPT из конца диска.
128-битный уникальный идентификатор (UUID/GUID), используемый в UEFI, BCD, реестре Windows, COM-объектах и разделах дисков GPT.
typedef struct _GUID { ULONG Data1; USHORT Data2; USHORT Data3; UCHAR Data4[8]; } GUID;Структура GUID состоит из полей Data1 (32 бит), Data2 (16 бит), Data3 (16 бит) и Data4 (массив из 8 байт). В BCD идентифицирует записи загрузки (например, {default}, {bootmgr}, {memdiag}).
Формат бинарных файлов (EXE, DLL, SYS, EFI) в архитектуре Windows и стандарте UEFI.
IMAGE_NT_HEADERS64 / IMAGE_SECTION_HEADERСостоит из заголовка DOS (MZ), заголовка PE (PE\0\0), опционального заголовка IMAGE_OPTIONAL_HEADER64, таблицы секций (.text, .data, .rdata, .pdata, .reloc) и каталога директорий данных.
Статическая библиотека ядра загрузки Microsoft (bootlib.lib), на базе которой построены bootmgr.efi, winload.efi и winresume.efi.
BlInitializeLibrary / BlMmAllocatePages / BlImgLoadPEImageExПредоставляет абстракции управления памятью (BlMm), графики (BlDisplay), файловых систем (BlFile), криптографии и работы с TPM (BlTpm).
Энергонезависимые регистры TPM (0-23), хранящие криптографические хеши (SHA-256) измерений каждого этапа загрузки платформы.
TPM2_PCR_Extend / PCR 0-23Регистры расширяются операцией TPM_Extend (PCR_new = SHA256(PCR_old || measurement)). Пакет BitLocker запечатывает ключ шифрования под конкретные значения PCR (0: Firmware, 2: Option ROMs, 4: Boot Manager, 7: Secure Boot, 11: BitLocker Access Control).
Стандарт криптографической верификации авторства и целостности исполняемых файлов на основе сертификатов X.509 и алгоритмов SHA-256 / RSA.
IMAGE_DIRECTORY_ENTRY_SECURITY / WIN_CERTIFICATEПодпись встраивается в секцию сертификатов PE-файла (WIN_CERTIFICATE). Проверяется загрузчиками UEFI, winload.efi и модулем CI.dll ядра.
Единственное физическое/логическое ядро CPU, выбираемое аппаратной логикой платформы при старте для выполнения инициализации UEFI и Phase 0 ядра.
IA32_APIC_BASE_MSR (0x1B, Bit 8: BSP Flag)Остальные ядра процессора (AP) находятся в состоянии ожидания (Wait-for-SIPI) и запускаются загрузчиком Phase 1 только после поднятия базовых структур ядра.
Дополнительные вычислительные ядра ЦП, инициализируемые на фазе Phase 1 через межпроцессорные прерывания INIT-SIPI-SIPI.
INIT-SIPI Sequence / HalStartDynamicProcessorПосле получения вектора SIPI ядро AP настраивает собственный KPCR, регистр CR3, стек, IDT и подключается к общему планировщику потоков ядра.
Аппаратный механизм, позволяющий одному ядру CPU посылать прерывание другим ядрам через локальный контроллер прерываний APIC.
LAPIC ICR (Interrupt Command Register) / KiIpiSendИспользуется ядром Windows для синхронизации TLB (TLB Shootdown), переключения контекста, запуска DPC на целевых ядрах и остановки CPU при BSOD/отладке.
Корневая 4-килобайтная таблица трансляции виртуальных адресов памяти в 64-битном режиме процессора (адресуется регистром CR3).
CR3 / PML4E / PDPTEСодержит 512 64-битных записей PML4E, каждая из которых адресует 512 ГБ виртуальной памяти (всего покрывая 256 ТБ).
Бит 63 в записях таблиц страниц памяти (PTE), аппаратно блокирующий выполнение кода из сегментов данных (стек, куча, буферы).
IA32_EFER.NXE (MSR 0xC0000080, Bit 11) / PTE Bit 63Активируется битом EFER.NXE в процессоре. Предотвращает эксплойты переполнения буфера (Buffer Overflow / Shellcode Injection).
Высокопривилегированный режим процессора x86, исполняющий закрытый код прошивки при получении прерывания SMI (System Management Interrupt).
SMI / SMRAM / RSM InstructionКод SMM изолирован в защищенной памяти SMRAM. Используется для аппаратного термоконтроля, обновления BIOS и эмуляции оборудования.
Защищенный куст реестра Windows (HKLM\SAM), хранящий локальные учетные записи пользователей, группы и NTLM-хеши паролей.
HKLM\SAM / samlib.dll / samsrv.dllМонтируется процессом lsass.exe. Прямой доступ к файлу C:\Windows\System32\config\SAM заблокирован монопольной блокировкой ядра.
Основная файловая система Windows, поддерживающая списки управления доступом (ACL), шифрование EFS, сжатие, теневые копии и транзакции.
ntfs.sys / $MFT / $LogFileУправляется драйвером ntfs.sys. Структура Master File Table ($MFT) хранит метаданные и дескрипторы безопасности каждого файла на диске.
Набор централизованных конфигурационных правил и политик безопасности Windows (реестр, права пользователей, аудит, автозапуск).
Group Policy Client (gpsvc.dll) / Registry.polПрименяется процессом userinit.exe и службой gpsvc во время входа пользователя в интерактивную сессию.
Аппаратная комбинация клавиш (Ctrl+Alt+Delete), перехватываемая исключительно доверенным процессом winlogon.exe.
winlogon.exe / WlxLoggedOnSAS / GINA / Credential ProviderГарантирует, что диалоговое окно ввода пароля (LogonUI.exe) не может быть подделано вредоносными пользовательскими приложениями.
Уникальная структура переменной длины (например, S-1-5-21-...), идентифицирующая пользователя, группу или компьютер в Windows.
_SID / RtlEqualSid / RtlAllocateAndInitializeSidВстраивается в маркеры доступа (Access Tokens) и дескрипторы безопасности для разграничения прав доступа к объектам ядра (файлам, процессам, ключам реестра).
Список записей управления доступом (ACE), определяющий, каким пользователям и группам (SID) разрешён или запрещён доступ к объекту.
_ACL / _ACE / SECURITY_DESCRIPTORЯвляется частью структуры SECURITY_DESCRIPTOR. Диспетчер безопасности ядра SeAccessCheck сверяет маркер доступа потока с DACL объекта.
Протокол межпроцессного и сетевого взаимодействия в Windows, позволяющий вызывать функции в других процессах так же прозрачно, как локальные.
rpcrt4.dll / RpcServerRegisterIf / RpcBindingFromStringBindingИспользуется для управления службами (SCM RPC), подсистемой DCOM, диспетчером сессий и политиками безопасности.
Архитектура графических драйверов Windows (dxgkrnl.sys), обеспечивающая аппаратное ускорение рабочего стола (DWM), многозадачность GPU и виртуализацию видеопамяти.
dxgkrnl.sys / KMD (Kernel Mode Driver) / UMD (User Mode Driver)Сменяет базовый драйвер INBV после инициализации диспетчера сессий и запуска подсистемы win32k.sys.
Аварийный экран останова системы, отображаемый ядром при возникновении неустранимой критической ошибки (KeBugCheckEx).
KeBugCheckEx / InbvDisplayString / Crashdump.sysЯдро останавливает все процессоры через IPI, сохраняет дамп физической памяти на диск (MEMORY.DMP) и выводит код ошибки (KMODE_EXCEPTION_NOT_HANDLED, CRITICAL_PROCESS_DIED и т.д.) через драйвер INBV.
Криптографическая основа безопасности платформы, зашитая в неизменяемую память процессора/чипсета (Boot Guard / AMD PSB / TPM).
Intel Boot Guard / AMD Platform Secure Boot / TPM Root KeyПроверяет подпись первого исполняемого блока кода прошивки до старта CPU, защищая систему от компрометации на уровне аппаратных атак.
Протокол безопасности UEFI, запрещающий запуск загрузчиков и драйверов без действительной цифровой подписи доверенного центра сертификации.
NVRAM SecureBoot / PK / KEK / db / dbxПрошивка сверяет подпись каждого EFI-файла с базами ключей PK (Platform Key), KEK (Key Exchange Key) и db (Authorized Signatures).
Протокол безопасности UEFI, запрещающий запуск загрузчиков и драйверов без действительной цифровой подписи доверенного центра сертификации.
NVRAM SecureBoot / PK / KEK / db / dbxПрошивка сверяет подпись каждого EFI-файла с базами ключей PK (Platform Key), KEK (Key Exchange Key) и db (Authorized Signatures).
Встроенная система полнодискового шифрования разделов Windows алгоритмом AES-XTS с аппаратной защитой ключей через TPM.
fvevol.sys / BmFveOpenVolume / TPMКлюч тома VMK освобождается чипом TPM только при неизменности замеров хешей загрузки в регистрах PCR.
Специализированный 64-битный загрузчик UEFI, восстанавливающий снимок состояния памяти из файла hiberfil.sys при выходе из спящего режима (S4 / Fast Startup).
winresume.efi / C:\hiberfil.sys / BmLaunchResumeApplicationЗапускается процессом bootmgr.efi, распаковывает сжатые страницы памяти ядра и мгновенно восстанавливает контекст всех процессоров без полной фазы инициализации.
Системный скрытый файл на диске (C:\pagefile.sys), куда диспетчер памяти сбрасывает неиспользуемые страницы оперативной памяти (Modified Page List).
C:\pagefile.sys / SmpCreatePagingFiles / MmPfnDatabaseСоздаётся процессом smss.exe через вызов SmpCreatePagingFiles и обслуживается драйвером файловой системы и менеджером памяти Mm.
Основная физическая оперативная память компьютера (DDR4 / DDR5), требующая периодической регенерации заряда ячеек.
Memory Controller / DDR PHY / JEDEC SPDИнициализируется на фазе PEI модулями PEIM после считывания профилей и таймингов из микросхем SPD. До инициализации DRAM процессор использует свой кэш в качестве временного стека памяти (CAR / Cache-as-RAM).