The Windows operating system is made up of a large assortment of files and programs. Some of these run all the time, while others are called by the operating system only occasionally.

Nearly all of the core Windows operating system files are stored in the folders C:\Windows\System and C:\Windows\System32 (on your computer, the drive letter could be different). The Windows folder itself also holds a number of essential files.

Table of Contents

    All of the programs that are installed on your computer typically have executable and related files stored in C:\Program Files or C:\Program Files (x86).

    In general, you never want to modify, delete, or move any of the Windows system files that are located in any of these directories. However, there are a few files that are core to the function of the operating system. If these files get deleted or otherwise corrupted, you’ll need to restore your Windows operating system.

    Ntoskrnl.exe

    This executable is the kernel image. This means it’s essentially the core code (the executive) that makes the operating system work properly. 

    This code handles management of hardware, system processes, and memory management. It’s also the code that schedules what applications have access to the system processor and how much memory (and memory addresses) they’re allocated to use.

    This executable shows up in Task Manager with the name System and Registry. It is a heavily protected file, so it’s difficult for any application like malware to corrupt or delete the file.

    In older versions of Windows, if you opened up a large number of applications, Ntoskrnl.exe would start consuming a large amount of memory. Starting with Windows 10, the Ntoskrnl.exe now compresses unused pages rather than storing them to memory. This reduces memory consumption, but can increase CPU usage if you run a lot of applications at once.

    Ntkrnlpa.exe

    This process is a core software component of the Microsoft Windows kernel and system code. The name stands for New Technology Kernel Process Allocator. Alongside Ntoskrnl.exe, it controls scheduling and memory management.

    It also prevents non-core applications and services from accessing the core areas of the operating system, which keeps the OS safely running in a protected area of system memory.

    Since Ntkrnlpa.exe is responsible for blocking applications from accessing protected system memory, many users often think it’s Ntkrnlpa.exe that’s causing a Windows system failure. This is because Ntkrnlpa.exe is the process that returns the error.

    Usually the cause of this is actually some form of malware attempting to cause protected system memory, kicking off the Ntkrnlpa.exe errors.

    Hal.dll

    Another core file related to the system kernel and core system is Hal.dll. The name of this DLL file stands for Hardware Abstraction Layer.

    This file contains core code that allows applications to interact with computer hardware using simple program functions rather than complicated machine code. 

    Aptly named, it removes the abstraction from communicating with and controlling computer hardware.

    This executable runs inside RAM memory and is located in the System32 directory.

    Hal.dll typically doesn’t cause any issues with the computer, however some malware applications attempt to cloak their executables by giving them the same name. However, you can identify it as a counterfeit application when it’s located in a different folder than System32.

    Never stop the Hal.dll task as this will make your system non-functional and could force you to have to restore the Windows operating system.

    Win32k.sys

    This file is what’s known as the Multi-User Win32 driver file, originally released as part of the Windows XP operating system. It’s been upgraded through each new Windows release, including Windows 10.

    It’s a graphics driver interface that manages sending graphics to monitors and other output devices. The code is executed by gdi32.dll on Windows 10. 

    Unfortunately, because Win32k.sys has been such a long-time core piece of the Windows operating system, and because it resides in a folder (Program Files) that isn’t usually as well protected as the System32 folder, malware often targets this file for corruption.

    Additionally, it’s also a common name chosen by malware for its own files, so that users don’t suspect the file as part of a computer infection.

    Ntdll.dll

    This file is located in the System and System32 system directories. The description of the file is NT Layer DLL. It’s essentially a DLL file that contains core NT kernel functions.

    This means it contains the machine code that allows the core operating system to function properly. The core kernel program accesses functions contained by Ntdll.dll, and this file processes those machine level functions.

    If you see any error messages coming from the Ntdll.dll process, this is usually caused by either a corrupt Ntdll.dll file, or hardware problems on your computer that are causing the process to crash.

    Usually, reinstalling the hardware driver causing the error usually resolves the error. If the issue is a corrupt Ntdll.dll file, antivirus software is capable of repairing the issue. If it can’t, a Windows restore may be required.

    Kernel32.dll

    This DLL file is another found as part of the Windows operating system kernel. It manages memory, including memory interrupts. It also manages all input and output operations.

    Kernel32.dll is another file that gets loaded into protected memory space where regular user applications can’t operate.

    If you ever see an error related to Kernel32.dll, it’s usually due to either malware or corrupt hardware drivers (or faulty hardware) attempting to write to the protected memory where Kernel32.dll resides. Usually reinstalling hardware drivers or new hardware resolves these errors.

    Advapi32.dll

    This DLL file is another core component of the Windows operating system. Its name stands for Advanced Application Programming Interface, or Advanced API. It handles system security calls and calls against the system registry.

    This DLL manages starting and shutting down Windows, manages the Windows registry, handling user accounts and account security, and the management of Windows services.

    While this file isn’t required for Windows to boot properly, it is required for the proper operation of most applications and hardware. If this Windows system file is deleted or corrupted, any application API calls to access the system registry or security will fail and you’ll see a number of error messages.

    User32.dll

    Another core DLL, this Windows system file contains most of the core Windows API for user applications to communicate with the operating system. It handles most of the native windows and controls that are displayed by Windows applications.

    Any application that has a graphical user interface typically uses components offered by the User32.dll file. 

    However, in most cases, Windows applications utilize libraries built into the Windows .NET framework, which in turn manages communication with the User32.dll. 

    In either case, the User32.dll translates common, easy-to-understand application code into the machine level commands that are required by the Windows operating system.

    Gdi32.dll

    Much like User32.dll, Gdi32.dll contains functions that allow applications to create graphical user interfaces on the monitor.

    Gdi32.dll contains functions that let applications create 2-dimensional objects on the screen. It accepts code either from a Windows application or service and executes the required machine code to display the visual objects on the monitor.

    While a Windows operating system may boot even when this DLL is corrupt or deleted, the operating system display won’t work properly.

    Other Important Windows System Files

    While those are the core Windows system files and executables required for the proper functioning of the Windows operating system, there are a few additional files required for non-critical functions of the computer system to work properly.

    • Pagefile.sys: Helps the operating system manage RAM memory space and improve system performance.
    • Swapfile.sys: This is a newer system file that helps with moving modern Windows apps to the hard drive when they’re in a hibernation state.
    • Crss.exe: This is a client server runtime process that handles console windows and the Windows shutdown process.
    • Shell32.dll: Contains Windows shell API functions that allow web browsers and other applications to display elements of the operating system like the taskbar, desktop, and Start menu properly.
    • Smss.exe: The session manager subsystem handles user sessions, including Windows logon and user system settings.
    • Sxs.dll: This is an important component of the Windows operating system that handles manifest files. These are files that tell Windows how to handle a software application when it’s launched.

    While there are many more less critical system files as part of the Windows operating system, those listed above are some of the most common. Because of this they often are targeted by malware to trick users into thinking malware files are legitimate.

    Most antivirus applications are capable of identifying a counterfeit Windows system file and will typically clean those from your system before you ever know they exist.