指明代码加载内存位置的几种方式
来源:互联网 发布:风险矩阵分析法应用 编辑:程序博客网 时间:2024/06/05 20:27
//第一种方法
//
// demo.h
//
#pragma once
#ifdef __cplusplus
extern "C"
{
#endif
#include <NTDDK.h>
#ifdef __cplusplus
}
#endif
#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")
//
// demo.cpp
//
#include "demo.h"
#pragma INITCODE
extern "C" NTSTATUS DriverEntry(....)
{
}
#pragma PAGEDCODE
NTSTATUS DispatchRoutine(IN PDEVICE_OBJECT pDevObj,
IN PIRP pIrp)
{
}
#pragma PAGEDCODE
VOID DriverUnload (IN PDRIVER_OBJECT pDriverObject)
{
}
------------------------------------------------
//
//第二种方法
//使编译器把代码放到特定段的传统方法是使用alloc_text编译指示。但不是每种编译器都支持这个编译指示,
//判断是否定义了ALLOC_PRAGMA可以帮助决定能否使用alloc_text编译指示,这个编译指示可以把驱动程
//序的单独例程放到特定段中
#ifdef ALLOC_PRAGMA
#pragma alloc_text(INIT, DriverEntry)
#pragma alloc_text(INIT, StartHook)
#pragma alloc_text(PAGE, DispatchIoCtrl)
#pragma alloc_text(PAGE, RemoveHook)
#pragma alloc_text(PAGE, UnloadDriver)
#endif
- 指明代码加载内存位置的几种方式
- 驱动复习总结--指明代码加载内存位置的几种方式
- Flex加载图片的几种方式
- comboBox 加载数据的几种方式
- Spring的几种加载方式
- java 加载文件的几种方式
- Jquery加载的几种方式
- spring加载配置文件的几种方式
- jquery预加载的几种方式
- JS页面加载的几种方式
- UIImage加载图片的几种方式
- ImageView加载图片的几种方式
- UIimage的几种加载方式
- 几种adapter的加载优化方式
- Sciter:加载资源的几种方式
- js的几种加载方式
- Fresco加载图片的几种方式
- js延迟加载的几种方式
- 十六进制表示颜色和透明度
- VS版本记录、_MSC_VER记录
- 当我们谈论监控时,我们在谈论什么?
- Block简介及写法
- 为什么TCP是三次握手
- 指明代码加载内存位置的几种方式
- myeclipse中weblogic开启debug跳到class文件问题
- java多线程经典题目
- 怎样在DropDownList控件中响应OnSelectedIndexChanged事件
- 系统工程师的自我修炼之SQL Server(一):安装SQL Server
- android graphic(6)—surfaceflinger和MessageQueue
- Qt之自定义界面(QMessageBox)
- fft的一些知识准备
- HorizontalScrollView,Fragment,FragmentStatePagerAdapter打造网易新闻Tab及滑动页面效果(三十六)