windows驱动程序中的预处理含义
? #pragma? code_seg(“PAGE”) 转自:http://www.voidcn.com/article/p-bbgefxhm-k.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? } 转自:http://blog.chinaunix.net/uid-24504987-id-161192.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Windows上的TensorFlow:ImportError:没有名为’_pywrap_t
- 窗口 – 允许在资源管理器样式的列表视图中选择从第一列开始
- windows-server-2008 – 除非链接到计算机和用户OU(服务器2
- Windows上的msysGit’git clone’无法正常工作
- windows cmd管道即使用/ U开关也不是unicode
- Windows Phone 7 – 您可以在Windows 7手机上安装自己的应用
- 同一台服务器装MSFTP和Serv-U冲突的解决办法
- 在Windows中使用Python设置文件夹权限
- Safari中的window.onerror(Javascript)
- windows-7 – 在OpenFiler上使用iSCSI LUN的VMotion