(三)、windows内存管理
一、内存管理概念
我们的进程基本都是又system进程调用,由system进程卸载
下面检验
KdPrint(("%s", PsGetProcessImageFileName(PsGetCurrentProcess()) ));
PCHAR PsGetProcessImageFileName(IN PEPROCESS Process);是PCHAR类型的,用于获取进程名
可以看到驱动是又System进程加载,System进程卸载的
System的PID一般是4
二、分页内存与非分页内存
分页内存可以实现物理内存与磁盘的交换
非分页内存只能存在物理页中
我们编写的驱动代码一般在非分页内存中
我们可以改变
#pragma code_seg() 表示代码段为非分页
#pragma code_seg("PAGE") 表示为分页
#pragma code_seg("INIT") 将代码段加载到INIT内存区域,成功加载后,可被释放
三、分配内核内存
比较常见的是ExAllocatePoolWith,他不需要标识