Syscall reference
Browse documented Nt*/Zw* syscalls across Windows versions.
- NtAllocateVirtualMemoryntoskrnl.exeT1055T1055.002
Reserves, commits or both a region of virtual memory in a target process.
- NtAllocateVirtualMemoryExntoskrnl.exeT1055T1620
Reserves or commits virtual memory with extended parameters (preferred NUMA node, CFG, address requirements).
- NtProtectVirtualMemoryntoskrnl.exeT1055T1055.002
Changes the protection on a region of committed virtual memory in a target process.
- NtWriteVirtualMemoryntoskrnl.exeT1055T1055.002
Writes a buffer from the caller into the virtual address space of a target process.
- NtReadVirtualMemoryntoskrnl.exeT1003.001T1057
Reads bytes from the virtual address space of a target process into a caller-supplied buffer.
- NtFreeVirtualMemoryntoskrnl.exeT1055T1027.009
Decommits or releases a region of virtual memory in a target process.
- NtQueryVirtualMemoryntoskrnl.exeT1057T1622
Retrieves information about pages in a target process's virtual address space.
- NtOpenProcessntoskrnl.exeT1057T1003.001
Opens a handle to an existing process with a requested access mask.
- NtCreateSectionntoskrnl.exeT1055T1055.012
Creates a section object backed by a file or the system pagefile for shared memory mapping.
- NtMapViewOfSectionntoskrnl.exeT1055T1055.012
Maps a view of a section object into the virtual address space of a target process.
- NtUnmapViewOfSectionntoskrnl.exeT1055.012T1055
Unmaps a previously mapped section view from a process's virtual address space.
- NtCreateThreadntoskrnl.exeT1055T1106
Legacy thread-creation syscall requiring a manually-built INITIAL_TEB; superseded by NtCreateThreadEx.
- NtCreateThreadExntoskrnl.exeT1055T1055.002
Creates a new thread in a target process, optionally suspended, with rich attribute list support.
- NtQueueApcThreadntoskrnl.exeT1055.004T1055
Queues a user-mode asynchronous procedure call (APC) to a target thread.
- NtQueueApcThreadExntoskrnl.exeT1055.004T1055
Queues a user APC to a thread with optional reserve object or special-user-APC flag for forced delivery.
- NtCreateUserProcessntoskrnl.exeT1134.004T1106
Creates a new user-mode process and its initial thread from an executable image.
- NtCreateProcessExntoskrnl.exeT1055.012T1134.004
Creates a new process from a section handle without running ntdll process initialization — building block of process hollowing.
- NtTerminateProcessntoskrnl.exeT1562.001T1489
Terminates a target process and all of its threads with a given exit status.
- NtSuspendProcessntoskrnl.exeT1055T1562.001
Suspends every thread in a target process by incrementing each thread's suspend count.
- NtResumeProcessntoskrnl.exeT1055.012T1055
Decrements every thread's suspend count in a target process, resuming threads that reach zero.
- NtOpenThreadntoskrnl.exeT1055.003T1057
Opens a handle to an existing thread identified by CLIENT_ID with requested access rights.
- NtSuspendThreadntoskrnl.exeT1055.003T1003.001
Increments the suspend count of a target thread, halting its execution.
- NtResumeThreadntoskrnl.exeT1055T1055.012
Decrements the suspend count of a thread, resuming execution when the count reaches zero.
- NtAlertResumeThreadntoskrnl.exeT1055T1055.004
Resumes a suspended thread and simultaneously alerts it so any pending APCs are delivered.
- NtTerminateThreadntoskrnl.exeT1562.001T1055.003
Terminates the specified thread with the supplied exit status. NULL handle terminates the current thread.
- NtGetContextThreadntoskrnl.exeT1622T1055.003
Retrieves the CPU register context (CONTEXT structure) of a suspended thread.
- NtSetContextThreadntoskrnl.exeT1055.003T1055.004
Sets the CPU register context of a thread — the kernel primitive behind thread hijacking and shellcode redirection.
- NtOpenProcessTokenntoskrnl.exeT1134T1134.001
Opens the access token associated with a process and returns a handle to it.
- NtOpenProcessTokenExntoskrnl.exeT1134T1134.001
Opens the access token of a process and lets the caller specify handle attributes such as OBJ_INHERIT.
- NtAdjustPrivilegesTokenntoskrnl.exeT1134T1134.001
Enables or disables privileges in a specified access token.
- NtQueryInformationTokenntoskrnl.exeT1134T1033
Retrieves a specified class of information about an access token.
- NtDuplicateTokenntoskrnl.exeT1134T1134.001
Creates a new access token that duplicates an existing token, optionally changing its type and impersonation level.
- NtFilterTokenntoskrnl.exeT1134T1134.002
Creates a restricted (filtered) copy of an existing access token by disabling SIDs, deleting privileges, or adding restricted SIDs.
- NtImpersonateAnonymousTokenntoskrnl.exeT1134T1134.001
Assigns the well-known ANONYMOUS LOGON token to the specified thread.
- NtImpersonateThreadntoskrnl.exeT1134T1134.001
Causes the server thread to impersonate the security context of the client thread.
- NtAccessCheckntoskrnl.exeT1106T1087
Performs a security access check of a security descriptor against an impersonation token, returning the granted access mask.
- NtPrivilegeCheckntoskrnl.exeT1106T1033
Tests whether the privileges named in a PRIVILEGE_SET are enabled in an impersonation token.
- NtQueryInformationProcessntoskrnl.exeT1622T1057
Retrieves a class of information about a process — the universal back-end of GetProcessInformation and the workhorse of anti-debug checks.
- NtSetInformationProcessntoskrnl.exeT1622T1562.001
Modifies a class of process-level state — anti-debug self-cleansing, CET range registration, ACG/CIG policy installation, instrumentation callbacks.
- NtSetInformationThreadntoskrnl.exeT1622T1106
Sets a property on a thread via the THREADINFOCLASS enum — most famously ThreadHideFromDebugger.
- NtQuerySystemInformationntoskrnl.exeT1057T1014
Retrieves a class of system-wide information — process list, kernel handle table, loaded driver list, code-integrity status, and more.
- NtRaiseHardErrorntoskrnl.exeT1485T1529
Raises a 'hard error' that the kernel routes to CSRSS for UI prompting — or, with SeShutdownPrivilege and FATAL severity, triggers an immediate bugcheck (BSOD).
- NtCreateEventntoskrnl.exeT1106T1027.011
Creates a named or unnamed event synchronization object and returns a handle to it.
- NtOpenEventntoskrnl.exeT1106T1497
Opens a handle to an existing named event object.
- NtSetEventntoskrnl.exeT1106T1027.011
Sets an event object to the signaled state, releasing waiting threads.
- NtWaitForSingleObjectntoskrnl.exeT1055.004T1497
Waits until a dispatcher object becomes signaled or the optional timeout expires.
- NtWaitForMultipleObjectsntoskrnl.exeT1055.004T1497
Waits on up to MAXIMUM_WAIT_OBJECTS dispatcher objects with either WaitAny or WaitAll semantics.
- NtCreateMutantntoskrnl.exeT1480T1106
Creates or opens a named or unnamed mutant (mutex) object and optionally takes initial ownership.
- NtCreateTimerntoskrnl.exeT1027.011T1106
Creates a kernel timer object that can be armed later with NtSetTimer.
- NtSetTimerntoskrnl.exeT1027.011T1055.004
Arms a timer object with a due time, optional period and an optional APC routine fired on expiry.
- NtDelayExecutionntoskrnl.exeT1497T1497.003
Suspends the calling thread for a specified interval, optionally in an alertable state.
- NtQuerySystemTimentoskrnl.exeT1497T1497.003
Returns the current system time as a 64-bit count of 100-ns intervals since 1601-01-01 UTC.
- NtTestAlertntoskrnl.exeT1055T1055.004
Tests whether the calling thread has a pending alert and, if so, delivers any queued user-mode APCs.
- NtContinuentoskrnl.exeT1027.011T1620
Restores a CPU CONTEXT into the current thread and resumes execution at CONTEXT.Rip.
- NtCreateNamedPipeFilentoskrnl.exeT1571T1090
Creates the server end of a named pipe in the \Device\NamedPipe device namespace.
- NtAlpcCreatePortntoskrnl.exeT1068T1559
Creates a server-side ALPC connection port that clients can reach with NtAlpcConnectPort.
- NtAlpcConnectPortntoskrnl.exeT1068T1559
Establishes a client ALPC connection to a named server port and exchanges an initial message.
- NtAlpcSendWaitReceivePortntoskrnl.exeT1068T1559
Sends an ALPC message on a port and optionally waits for a reply or the next inbound message.
- NtCreateJobObjectntoskrnl.exeT1106T1564
Creates a job object — the kernel container used to apply limits, accounting and termination policy to a set of processes.
- NtAssignProcessToJobObjectntoskrnl.exeT1106T1564
Attaches a process to a job object so that the job's limits, accounting and termination policy apply to it.
- NtSetInformationJobObjectntoskrnl.exeT1106T1564
Sets a policy or limit on a job object via one of the JOBOBJECTINFOCLASS information classes.
- NtCreateKeyntoskrnl.exeT1547.001T1546.012
Creates or opens a registry key — the kernel-level primitive behind every persistence beacon written to the registry.
- NtOpenKeyntoskrnl.exeT1003.002T1003.004
Opens an existing registry key — the kernel entry behind RegOpenKeyEx, used to reach SAM, SECURITY and persistence hives.
- NtOpenKeyExntoskrnl.exeT1003.002T1003.004
Extended variant of NtOpenKey accepting OpenOptions — required for symlink-following and backup-semantics opens.
- NtDeleteKeyntoskrnl.exeT1112T1070.001
Deletes a registry key when the handle is closed — used to wipe persistence and audit-key artefacts post-execution.
- NtSetValueKeyntoskrnl.exeT1547.001T1546.012
Writes a named value into an open registry key — the workhorse for Run-key and IFEO persistence.
- NtQueryValueKeyntoskrnl.exeT1552.002T1555
Reads a value from a registry key — the targeted credential and config harvest primitive.
- NtEnumerateKeyntoskrnl.exeT1518T1012
Enumerates subkeys of a registry key — used to walk AutoRun, IFEO and Services for persistence discovery.
- NtClosentoskrnl.exeT1622T1106
Closes a kernel object handle (file, key, event, process, thread, section, etc.).
- NtCreateFilentoskrnl.exeT1564.001T1547.001
Creates or opens a file, directory, device, or named pipe — every dropper's first call to disk.
- NtReadFilentoskrnl.exeT1003.001T1555.003
Reads bytes from a file, device, named pipe or mapped section into a user buffer — the kernel primitive behind ReadFile.
- NtWriteFilentoskrnl.exeT1486T1561.001
Writes data to an open file, pipe, or device — the kernel companion to NtCreateFile for dropping payloads.
- NtSetInformationFilentoskrnl.exeT1486T1070.004
Sets file metadata via FILE_INFORMATION_CLASS — rename, dispose (delete), allocate, end-of-file, etc.
- NtQueryDirectoryFilentoskrnl.exeT1083T1014
Enumerates a directory at the IRP layer — used by rootkits to hide files by tampering with the returned list.
- NtDeviceIoControlFilentoskrnl.exeT1068T1562.001
Sends an IOCTL to a kernel driver — the user-mode entry point for every BYOVD primitive abuse.
- NtFsControlFilentoskrnl.exeT1564.004T1574.005
Sends FSCTL codes to a filesystem — used to plant reparse points, access ADS, and abuse junction traversal.
- NtSetSystemInformationntoskrnl.exeT1068T1014
Generic kernel setter selected by SYSTEM_INFORMATION_CLASS — gateway to SystemDebugControl, GDI driver loading and more.
- NtLoadDriverntoskrnl.exeT1068T1543.003
Loads a kernel-mode driver from a registry-described service entry — the BYOVD entry point.
- NtSystemDebugControlntoskrnl.exeT1014T1622
Routes kernel debugger-style requests (kernel R/W, control space, breakpoints, profiler) selected by the SysDbgCommand enum.