摘要:
此版本较0.01预览版已经有了脱胎换骨的变化,主要表现在以下几个方面: 1.对程序的结构进行了调整,将原来的ntutils.dcu分成fcall.dcu、halfcall.dcu和macros.dcu三个单元,分别对应ntoskrnl.exe、hal.dll以及DDK中的宏定义,虽然麻烦了点儿,不过结构应该更清晰了; 2.新增加winioctrl.dcu和native.dcu两个单... 阅读全文
摘要:
上篇教程我们介绍了驱动开发中如何使用系统内存堆,这一节让我们看看后备列表的使用。堆管理器管理着系统和用户堆,它把堆空间分为相同尺寸的块(block)。堆管理器会根据堆分配请求,去选择一个合适尺寸的未使用的块。显然,这个过程需要点时间。如果你需要固定尺寸的内存块,但是你事先并不知道它的大小和使用频率,这样的话为了性能的原因,你还是使用后备列表(Lookaside Lists)吧,后备列表是只有内核模... 阅读全文
摘要:
通过对前面几篇教程的学习,相信大家已经掌握了一些用Delphi开发Windows驱动程序的基础知识,从现在开始我们来了解一些必要的底层技术,首先我们要了解的就是内存管理方面的知识。 内存管理器给用户进程提供了大量的API。这些API可以分为三类:虚拟内存函数、内存映射文件函数和堆函数。内核的成员(包括驱动程序)有很多高级的工具。例如:驱动程序能够在物理地址空间里分配一个连续的内存。... 阅读全文