Windows NT体系结构

核心态

Windows NT的核心态能访问所有硬件资源，在保护内存区上执行代码。 控制了调度、线程优先级、内存管理、硬件交互；禁止了用户态的程序与服务访问关键资源，用户态进程必须请求核心态执行这类操作。 
x86硬件体系结构支持四种CPU优先级：0到3。仅有0与3这两种优先级被Windows操作系统使用。用户态程序运行在优先级3，核心态运行在优先级0（特权级别）。也分别称作“ring 3”与“ring 0”。这使得具有了只有2个优先级的RISC平台的可移植性。但是打破了OS/2应用程序包含的I/O特权段的兼容性
核心态的操作系统包含了由许多功能模块组成的执行体服务、内核驱动程序、一个（微）内核及一个硬件抽象层（HAL）。

内核

内核（kernel）在HAL与执行体之间，实际上是“微内核”的理念下设计实现出来的。负责多处理器同步，线程与中断的调度与分派，自陷处理，异常分派，在启动时初始化设备驱动程序等。

核心态驱动

Windows NT使用核心态的设备驱动程序与硬件交互。用户态下的程序看到的设备都是I/O管理器下的文件对象；而I/O管理器自身看到的设备是设备对象。核心态驱动程序分为3个层次： 最高层驱动程序，中层驱动程序，低层驱动程序。最高层驱动程序，如FAT或NTFS的文件系统驱动程序，依赖于中层驱动程序。中层驱动程序由功能驱动（function driver）组成。功能驱动依赖于总线驱动，即服务于总线控制器、适配器（adapter）、桥（bridge）的驱动。Windows Driver Model (WDM)存在于中层。低层驱动直接控制硬件，不依赖于任何其他驱动程序。

硬件抽象层（HAL）

硬件抽象是一套软件子程序（routine），模拟了特定平台有关细节，使得程序不必直接访问硬件资源。因而可以写独立于设备的、高性能代码，通过操作系统访问硬件。 例如，编译器屏蔽了CPU指令集的细节，应用程序作者无需考虑与CPU相关的指令。操作系统的硬件抽象使得程序只需调用操作系统级的操作，而屏蔽了硬件具体细节，使得程序具有了可移植性。 
操作系统的硬件抽象层位于硬件与软件之间。对操作系统内核隐藏了硬件的大部分差异，使得核心态代码基本不需要改变即可运行于不同硬件配置的计算机上。硬件抽象大都是硬件驱动程序。被屏蔽的硬件信息包括I/O界面、中断设置、多处理器通信机制等。