硬件抽象层(HAL)
HAL是支持可移植性的关键部分,它提供硬件平台的低层接口,隐藏了与硬件相关的细节。
Windows内部组件及用户编写的设备驱动程序并不直接访问硬件;它们通过调用HAL例程来保持可移植性。
Windows自带了几个不同的HAL,在安装时选择与硬件匹配的HAL拷贝到系统盘上,名为上Hal.dll。因此,如果把安装了Windows的硬盘直接插在另一台机器上启动,必须保证HAL的兼容性。
/Windows/Driver Cache/i386/Driver.cab里存有Windows自带的几种HAL文件。
设备驱动程序
设备驱动程序是可加载的内核模块,它们在I/O管理器和硬件之间建立起连接。
设备驱动程序的三种执行环境:
l 在发起I/O功能的用户线程环境中
l 在内核模式系统线程的环境中
l 作为一中断的结果,不在任何特定的进程或线程的执行环境中
设备驱动程序的类型:
l 硬件设备驱动程序
l 文件系统驱动程序
l 文件系统过滤器驱动程序
l 网络重定向器和服务器