找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
楼主: Tesla.Angela

冷知识:根据WDK编译器的版本编译不同的代码

  [复制链接]

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
发表于 2016-6-27 18:56:17 | 显示全部楼层 |阅读模式
今天群里的一个网友问到这个问题,特地整理出来记录一下。

有些时候一个功能在NT5和NT6系统上实现的方法不同,比如在NT5上通过HOOK的方式实现拦截进程保护,而在NT6上则通过“进程对象回调”的方式实现。那么代码可以这么写:
  1. #if (NTDDI_VERSION >= NTDDI_VISTA)
  2.         DbgPrint("CODE-FOR-NT6!\n");
  3. #else
  4.         DbgPrint("CODE-FOR-NT5!\n");
  5. #endif
复制代码
每个不同的系统都有不同的NTDDI_XXXX。具体可以在这里查询:
游客,如果您要查看本帖隐藏内容请回复
编译时,如果用XP的BUILD环境,不会把CODE-FOR-NT6这坨代码编译出来;当使用WIN7的BUILD环境时,则不会把CODE-FOR-NT5这坨代码编译出来。到了具体安装的时候,根据系统环境的不同,选择安装不同的驱动即可。
也许有人说可以直接用if(*NtBuildNumber==XXXX)的方式进行动态判定,然后直接用XP的BUILD环境编译。其实这么说就大错特错了,因为XP的BUILD环境无法编译使用了新API(XP系统没有的API)的驱动代码,即使编译成功了,在XP上也会加载失败,因为XP的内核没有导出这个函数,所以驱动无法完成加载过程。

2

主题

165

回帖

0

精华

金牌会员

积分
944
发表于 2016-6-27 21:32:19 | 显示全部楼层
来看看,学习一下

2

主题

165

回帖

0

精华

金牌会员

积分
944
发表于 2016-6-27 22:19:23 | 显示全部楼层
"根据系统环境的不同,选择安装不同的驱动即可"--------话说全系统兼容还是用编译4份驱动的,BeforeVista32.sys  AfterVista32.sys  BeforeVista64.sys  AfterVista64.sys 然后加载器根据环境加载,但是源码工程只要两份就行了,是这样子的吗?

0

主题

65

回帖

0

精华

金牌会员

积分
1011
发表于 2016-6-27 23:03:16 | 显示全部楼层
来看看,学习一下

857

主题

2632

回帖

2

精华

管理员

此生无悔入华夏,  长居日耳曼尼亚。  

积分
36130
 楼主| 发表于 2016-6-28 18:25:03 | 显示全部楼层
284406022 发表于 2016-6-27 22:19
"根据系统环境的不同,选择安装不同的驱动即可"--------话说全系统兼容还是用编译4份驱动的,BeforeVista32. ...

一份源码,编译N个BIN。

0

主题

9

回帖

0

精华

铜牌会员

积分
138
发表于 2016-6-28 19:47:26 | 显示全部楼层
来看看,学习一下,非常感谢楼主的分享

0

主题

21

回帖

0

精华

铜牌会员

积分
62
发表于 2016-6-30 21:06:55 | 显示全部楼层
这个有点6,学习中

1

主题

82

回帖

0

精华

铜牌会员

积分
156
发表于 2016-7-3 23:39:42 | 显示全部楼层
厉害,学习了

0

主题

63

回帖

0

精华

铜牌会员

积分
169
发表于 2016-7-12 13:08:57 | 显示全部楼层
谢谢分享,最近在学习,学习下

1

主题

80

回帖

1

精华

铂金会员

积分
1818
发表于 2017-1-4 22:09:42 | 显示全部楼层
学习一下.

6

主题

123

回帖

0

精华

初来乍到

积分
5392
发表于 2017-1-23 12:57:09 | 显示全部楼层
学习一下

78

主题

190

回帖

9

精华

贵宾会员

积分
15605
发表于 2017-2-23 01:05:55 | 显示全部楼层
看看。。。

0

主题

12

回帖

0

精华

铜牌会员

积分
36
发表于 2017-11-8 14:18:07 | 显示全部楼层
看看,学习一下

0

主题

74

回帖

0

精华

铜牌会员

积分
105
发表于 2020-1-17 11:59:34 | 显示全部楼层
谢谢楼主

0

主题

9

回帖

0

精华

初来乍到

积分
9
发表于 2020-1-18 10:04:48 | 显示全部楼层
谢谢分享

0

主题

53

回帖

0

精华

铜牌会员

积分
73
发表于 2021-9-10 19:27:38 | 显示全部楼层
感谢楼主分享

0

主题

51

回帖

0

精华

银牌会员

积分
579
发表于 2021-9-14 16:10:48 | 显示全部楼层
来看看,学习一下
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表