#pragma code_seg("INIT")/code_seg("PAGE")
来源:互联网 发布:置信区间 知乎 编辑:程序博客网 时间:2024/06/06 01:49
转自:http://blog.chinaunix.net/uid-24504987-id-161192.html
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”);
例:
如果将某个函数载入到分页内存中,可用下列的函数
#pragma PAGEDCODE
VOID Fun()
{
PAGED_CODE(); //do something
}
注意: PAGED_CODE()是DDK提供的宏,只在check版本中生效,它会检查这个函 数是否运行在低于DISPATCH_LEVAL的中断请求,如果等于或高于这个中断请求级,则产生一个断言。当程序运行在DISPATCH_LEVEL之上时(包括本 层),程序只能使用非分页内存,否则将导致蓝屏死机
如果将某个函数载入到非分页内存中,可用下列的函数
#pragma LOCKEDCODE
VOID Fun()
{
}
某个例程需要在初始化的时候载入内存,然后可以从内存中卸载掉,比如DriverEntry 情况下,DriverEntry会很大,占据很大的空间,为了节省内存,需要及时地从内存中卸载
#pragma INITCODE
NTSTATUS DriverEntry(
IN PDRIVER_OBJECT pDriverObject,
IN PUNICODE_STRING RegisterPath)
{//do something }- #pragma code_seg("INIT")/code_seg("PAGE")
- #pragma code_seg
- pragma code_seg
- code_seg("INIT")
- code_seg("INIT")
- 关于#pragma code_seg
- 关于#pragma code_seg
- 关于#pragma code_seg
- #pragma CODE_SEG __NEAR_SEG NON_BANKED详解
- #pragma CODE_SEG NON_BANKED之中断讲解
- "#pragma CODE_SEG __NEAR_SEG NON_BANKED"这句有什么用?
- "#pragma CODE_SEG __NEAR_SEG NON_BANKED"这句有什么用?
- "#pragma CODE_SEG __NEAR_SEG NON_BANKED"这句有什么用?
- "#pragma CODE_SEG __NEAR_SEG NON_BANKED"这句有什么用?
- 有关#pragma warning,#pragma message,#pragma code_seg,#pragma comment
- 为什么在写中断函数时要写#pragma CODE_SEG __NEAR_SEG NON_BANKED这句话,是不是没什么实际作用的啊 '中断函数置于非分页区内'这是什么意思啊,非分页区是什么啊
- #pragma
- Pragma
- linux各颜色文件含义
- Window10刷入双系统
- Struts2下处理表单数据
- c++初级 之 函数的新特性
- Mybatis学习过程中的一些问题
- #pragma code_seg("INIT")/code_seg("PAGE")
- 构造函数中的this和prototype
- Android进阶#(4/12)HTTP网络请求_网络框架的设计与实现
- C# 面向对象三大特性:封装、继承、多态
- TASKCTL4.1怎么检测服务是否启动
- 【Java Opencv系列】3.2Mat的线性代数加减乘操作
- 互联网创业|你把网校平台研发好了,运营打算扔给谁?
- Educational Codeforces Round 27
- Redis--protocol(通信协议)