首页
社区
课程
招聘
[求助]wdk8.1的问题
发表于: 2014-3-6 16:14 9267

[求助]wdk8.1的问题

2014-3-6 16:14
9267
最近把vs生成2013了,wdk也装了wdk8.1.信心满满的调出以前代码测试,
哪晓得测试傻眼了。
具体:
#define HOOK_SYSCALL(_Function, _Hook, _Orig )    _Orig = (PVOID) InterlockedExchange( (PLONG) &m_Mapped[SYSCALL_INDEX(_Function)], (LONG) _Hook)

这个东西,hook用,大家都知道,然后,与注册表相关的:
typedef NTSTATUS (*ZWSETVALUEKEY)(IN HANDLE KeyHandle,
                                                              IN PUNICODE_STRING ValueName,
                                                              IN ULONG TitleIndex OPTIONAL,
                                                              IN ULONG Type,
                                                              IN PVOID Data,
                                                              IN ULONG DataSize);

.....

具体调用不说了,编译工程出现:
错误        1        error C2440: “=”: 无法从“PVOID”转换为“ZWSETVALUEKEY”        D:\exam\driver\RegMon\RegMon\RegMon.cpp        66        1        RegMon

        3        IntelliSense:  不能将 "PVOID" 类型的值分配到 "ZWSETVALUEKEY" 类型的实体        d:\exam\driver\RegMon\RegMon\RegMon.cpp        66        2        RegMon

-------------------------
晕了,这个在我虚拟机的wdk7.0是可以正常编译的啊,求高手指点。
-----------------------------------------------------------------------




[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 31
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
强制转化不就得了
2014-3-6 16:52
0
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
强制转换
2014-3-6 21:20
0
雪    币: 3761
活跃值: (505)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
强制转换下。楼上答案,楼主可以结贴了
2014-3-7 08:52
0
雪    币: 140
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我晕啊,哥哥些,_Orig = (PVOID) InterlockedExchange(  这不是已经转换成PVOID类型的撒,
后面hook用的ZWSETVALUEKEY,你如何再次转换, 不会喊我这样写吧:
_Orig = (ZWSETVALUEKEY) InterlockedExchange(

那这样的话没有通用性了。
2014-3-18 15:16
0
雪    币: 25
活跃值: (68)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
WX3 WX1
2014-3-18 16:33
0
雪    币: 140
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这是个虾米意思?
2014-3-18 16:54
0
雪    币: 7
活跃值: (76)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这是设置警告级别的意思
2014-4-3 15:00
0
雪    币: 140
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
亲,这次报的不是警告,是错误,我添加了 WX3 WX1 还是不行啊
2014-4-3 23:50
0
雪    币: 952
活跃值: (1821)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
变通一下就行了  这个是c语言标准有变化

#define HOOK_SYSCALL(_Function, _Hook, _Orig ) *(PVOID *)&_Orig = (PVOID) InterlockedExchange( (PLONG) &m_Mapped[SYSCALL_INDEX(_Function)], (LONG) _Hook)

如果是c++也可以这样
#define HOOK_SYSCALL(_Function, _Hook, _Orig ) (PVOID &)_Orig = (PVOID) InterlockedExchange( (PLONG) &m_Mapped[SYSCALL_INDEX(_Function)], (LONG) _Hook)
2014-4-4 10:29
0
雪    币: 140
活跃值: (70)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
[QUOTE=loqich;1272832]变通一下就行了  这个是c语言标准有变化

#define HOOK_SYSCALL(_Function, _Hook, _Orig ) *(PVOID *)&_Orig = (PVOID) InterlockedExchange( (PLONG) &m_Mapped[SYSCALL_I...[/QUOTE]

呵呵,是的啊,变通,已经更改了,呵呵,还是谢谢!
2014-4-22 16:33
0
游客
登录 | 注册 方可回帖
返回
//