> Windows Syscalls
ntoskrnl.exeT1106

NtSerializeBoot

Déclenche la sérialisation du tampon de trace de démarrage — finalise les données de performance collectées au démarrage.

Prototype

NTSTATUS NtSerializeBoot(VOID);

Arguments

NameTypeDirDescription

IDs de syscalls par version de Windows

Version 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

Module noyau

ntoskrnl.exeNtSerializeBoot

APIs liées

NtQuerySystemInformation (SystemPrefetcherInformation)PrefetchVirtualMemory

Stub du 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

Notes non documentées

Primitif de diagnostic performance : appelé une fois par le Session Manager (smss.exe) et l'infrastructure prefetcher pour signaler que la phase de démarrage est complète et que le noyau peut sérialiser la trace de boot en mémoire sur disque (ex. pour les sessions style `xperf -on Base+Boot` et le prefetcher de boot SuperFetch). Aucun argument, rien à forger. L'appeler en dehors du contexte légitime one-shot est effectivement un no-op ou retourne STATUS_UNSUCCESSFUL. La documentation Microsoft est minimale car la routine fait partie du contrat prefetcher et non d'une surface Win32 publique.

Usage courant par les malwares

Valeur offensive minimale. Pas de primitif d'élévation de privilège ici, pas de divulgation d'information au-delà de ce que le prefetcher écrit déjà dans %SystemRoot%\Prefetch, pas de changement comportemental. Occasionnellement référencé comme curiosité dans l'outillage de table syscall mais ne fait partie des TTPs d'aucune famille de malware documentée.

Opportunités de détection

À traiter comme une curiosité de référence. Le fournisseur ETW Microsoft-Windows-Kernel-Prefetch enregistre les transitions d'état du prefetcher ; si NtSerializeBoot est invoqué depuis autre chose que smss.exe (ou le service prefetcher) c'est anormal, mais le coût pratique en faux positifs est faible car le nombre d'appelants légitimes est un. Les défenseurs n'ont généralement pas besoin de suivre cela — concentrer le budget télémétrie ailleurs.

Exemples de syscalls directs

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.

Mappings MITRE ATT&CK

Last verified: 2026-05-20