以下内容全部来自《Windows驱动开发技术详解》,作者张帆、史彩成等,属摘抄型笔记。
///
1.深刻理解驱动程序的各个细节,涉及Windows操作系统内核的各个方面,因为驱动程序都加载在Windows内和模式下,学习Windows驱动不可避免的需要了解Windows操作系统的底层,籍此也能写出更高效、性能更好的驱动程序。
2.可移植性是指只需要少量修改,操作系统既能够在尽可能多的平台上运行。为了实现可移植性,Windows被设计成为软件分层的体系结构,和硬件相关的只有硬件抽象层(HAL)。
3.兼容性是指让应用程序尽可能多的在各个版本上运行。为了实现兼容性,Win32 API保持着一致的接口;并且引入子系统的概念,尽可能兼容更多应用程序。
4.Windows健壮性和可靠性主要源于用户模式和内核模式的划分;并使用分层的思想,将不安全的问题都放在上层,不会引起下层的问题。
5.Windows是一个完全支持异步操作的操作系统,在编写驱动时也需要支持异步特性,提高I/O吞吐能力。
6.CPU有Ring0和Ring3的概念;操作系统有内核模式和用户模式的概念。这两个概念一个基于CPU一个基于操作系统。
7.Windows操作系统总体架构
8.对于常常被提到的USER32.DLL,GDI32.DLL,KERNNEL32.DLL其实在当前的操作系统只是作为一层代理,所有API的实现细节全部移入内核模式。
PS:这章的前半部分内容,基本来自《深入解析Windows操作系统》,可以直接看那本能理解的更加透彻。