code_seg("INIT")

来源:互联网 发布:特效字体制作软件 编辑:程序博客网 时间:2024/06/06 17:06


Windows规定有些虚拟内存可以交换到文件中,这类内存被称为分页内存
有些虚拟内存 永远不会交换到文件中,这些内存叫非分页内存


定义分页标记

#define PAGEDCODE   code_seg("PAGE"); // 分页内存,可以交换到文件中


定义非分页标记

#define LOCKEDCODE  code_seg(); // 非分页内存,禁止交换到文件中


定义初始化内存块
#define INITCODE    code_seg("INIT");// 初始化的时候载入内存,然后可以从内存中卸载掉


#define PAGEDDATA   data_seg("PAGE");
#define LOCKEDDATA  data_seg();
#define INITDATA    data_seg("INIT");

注:有一个特殊的函数DriverEntry需要放在INIT标志的内存中。INIT标志指明该函数只是在加载的需要载入内存,而当驱动程序成功加载后,该函数可以从内存中卸载掉。

--------------------------------------------------------

// 一般驱动入口都是 code_seg("INIT")

#pragma INITCODE
NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject, IN PUNICODE_STRING  RegistryPath)
{
DriverObject->DriverUnload = DriverUnload;
KdPrint(("hello DriverEntry \r\n"));


return STATUS_SUCCESS;
}


0 0
原创粉丝点击