首页
社区
课程
招聘
未解决 一个奇怪的在线程中 RegOpenKey 失败,返回错误 87 的问题 2.00雪花
发表于: 2018-2-22 23:16 2454

未解决 一个奇怪的在线程中 RegOpenKey 失败,返回错误 87 的问题 2.00雪花

2018-2-22 23:16
2454
我自己写了一个 Dll,注入到 Winlogon.exe,Hook 了 ExitWindowEx 函数,在拦截到该函数后创建了自己的一个类。然后创建了几个线程分别去操作注册表。

问题出现在创建的线程中,去尝试打开注册表时失败,函数返回2,GetLastError = 87。
当我反复检查代码确认没有问题后,我又尝试在线程外面去调用 RegOpenKey 去打开注册表。奇怪的是这里竟然是可以打开成功的,并且当这里打开成功后,线程内调用的 RegOpenKey 也同时打开成功了。但如果创建线程前不去执行 RegOpenKey 去打开注册表,那么线程中始终一直是无法打开注册表的。

麻烦大家帮忙看一下,可能是哪里的问题?



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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 5836
活跃值: (1913)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
2
权限够不够,以管理员权限运行试一下
2018-2-23 23:12
0
雪    币: 2107
活跃值: (1429)
能力值: ( LV8,RANK:126 )
在线值:
发帖
回帖
粉丝
3
https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx,  错误代码是参数不对的问题,自己再检查一下源码呗
2018-2-24 08:16
0
雪    币: 69
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
小迪xiaodi 权限够不够,以管理员权限运行试一下
返回错误并不是权限问题,而且在线程外面调用是可以正常打开注册表的。您指的是线程中权限问题吗?如果是线程的权限问题要如何处理呢?
2018-2-24 16:06
0
雪    币: 69
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
binlmmhc https://msdn.microsoft.com/en-us/library/windows/desktop/ms681382(v=vs.85).aspx, 错误代码是参数不对的问题,自己再检查一 ...
同样的代码在线程外调用是没有问题的,参数都一模一样。
2018-2-24 16:07
0
游客
登录 | 注册 方可回帖
返回
//