> Windows Syscalls
ntoskrnl.exeT1106

NtSerializeBoot

Dispara la serialización del búfer de trazas de arranque — finaliza los datos de rendimiento recolectados al inicio.

Prototipo

NTSTATUS NtSerializeBoot(VOID);

Argumentos

NameTypeDirDescription

IDs de syscalls por versión de Windows

Versión de WindowsID de syscallBuild
Win10 15070x16Bwin10-1507
Win10 16070x173win10-1607
Win10 17030x179win10-1703
Win10 17090x17Cwin10-1709
Win10 18030x17Ewin10-1803
Win10 18090x17Fwin10-1809
Win10 19030x180win10-1903
Win10 19090x180win10-1909
Win10 20040x186win10-2004
Win10 20H20x186win10-20h2
Win10 21H10x186win10-21h1
Win10 21H20x188win10-21h2
Win10 22H20x188win10-22h2
Win11 21H20x190win11-21h2
Win11 22H20x193win11-22h2
Win11 23H20x193win11-23h2
Win11 24H20x195win11-24h2
Server 20160x173winserver-2016
Server 20190x17Fwinserver-2019
Server 20220x18Ewinserver-2022
Server 20250x195winserver-2025

Módulo del kernel

ntoskrnl.exeNtSerializeBoot

APIs relacionadas

NtQuerySystemInformation (SystemPrefetcherInformation)PrefetchVirtualMemory

Stub del syscall

4C 8B D1            mov r10, rcx
B8 95 01 00 00      mov eax, 0x195
F6 04 25 08 03 FE 7F 01   test byte ptr [0x7FFE0308], 1
75 03               jne short +3
0F 05               syscall
C3                  ret
CD 2E               int 2Eh
C3                  ret

Notas no documentadas

Primitiva de diagnóstico de rendimiento: invocada una vez por el Session Manager (smss.exe) y la infraestructura prefetcher para señalar que la fase de arranque está completa y el kernel puede serializar la traza de arranque en memoria al disco (p. ej. para sesiones estilo `xperf -on Base+Boot` y el prefetcher de arranque SuperFetch). Sin argumentos, nada que falsificar. Invocarla fuera del contexto one-shot legítimo es efectivamente un no-op o devuelve STATUS_UNSUCCESSFUL. La documentación de Microsoft es mínima porque la rutina forma parte del contrato prefetcher, no de una superficie Win32 pública.

Uso común por malware

Valor ofensivo mínimo. No hay primitiva de elevación de privilegio aquí, ni divulgación de información más allá de lo que el prefetcher ya escribe en %SystemRoot%\Prefetch, ni cambio de comportamiento. Ocasionalmente referenciada como curiosidad en herramientas de tabla syscall, pero no forma parte de las TTPs de ninguna familia de malware documentada.

Oportunidades de detección

Tratar como curiosidad de baseline. El proveedor ETW Microsoft-Windows-Kernel-Prefetch registra transiciones de estado del prefetcher; si NtSerializeBoot se invoca desde algo distinto de smss.exe (o el servicio prefetcher) es anómalo, pero el coste práctico en falsos positivos es bajo porque el conteo de invocadores legítimos es uno. Los defensores generalmente no necesitan rastrearla — enfocar el presupuesto de telemetría en otra parte.

Ejemplos de syscalls directos

asmx64 direct stub (Win11 24H2)

; Direct syscall stub for NtSerializeBoot (SSN 0x195, Win11 24H2)
NtSerializeBoot PROC
    mov  r10, rcx
    mov  eax, 195h
    syscall
    ret
NtSerializeBoot ENDP

cSmss-style finalize call

// This is what smss.exe does once the boot phase completes. Calling it again from
// a user-mode process is a no-op in practice.
extern NTSTATUS NTAPI NtSerializeBoot(VOID);

NTSTATUS s = NtSerializeBoot();
// s == STATUS_SUCCESS only inside the one legitimate caller's lifetime.

Mapeos MITRE ATT&CK

Last verified: 2026-05-20