Winapi RmGetList始终返回0x5错误\u访问\u DNIED

Winapi RmGetList始终返回0x5错误\u访问\u DNIED,winapi,Winapi,我从RmGetList得到的返回值始终为5,有什么可能的原因吗 我将学习本教程: 我的RmStartSession和RmRegstierResources都返回0,这意味着成功。不过需要注意的是,在RmStartSession之后,dwSession始终为0,并且我的szSessionKey保持一个以0ea790d06656a54f84645b5755f7b6d6 null结尾的字符串。这是个问题吗 我的代码是js ctypes,因此我不愿意在winapi中共享它,但我会共享它: 编辑:我了解到

我从RmGetList得到的返回值始终为5,有什么可能的原因吗

我将学习本教程:

我的RmStartSession和RmRegstierResources都返回0,这意味着成功。不过需要注意的是,在RmStartSession之后,dwSession始终为0,并且我的szSessionKey保持一个以0ea790d06656a54f84645b5755f7b6d6 null结尾的字符串。这是个问题吗

我的代码是js ctypes,因此我不愿意在winapi中共享它,但我会共享它:


编辑:我了解到0的dwSession是有效的。但是,我仍然无法理解为什么我在RmGetList上被拒绝访问,有人有什么想法吗?

我了解到重启管理器不支持文件夹,当您尝试传递文件夹时返回错误5:

更新:以下是一些如何使用重启管理器API的示例代码:

RmGetList将返回错误5,如果任何更高级别的东西(如文件系统填充器)阻塞文件 驱动程序筛选器拒绝任何进程和函数访问文件xxx,无论windows内核或用户代码是否尝试访问该文件 重启管理器也是如此,重启管理器尝试访问该文件,驱动程序抛出错误5,重启管理器不知道如何处理它,并将其返回调用函数,因此您将获得拒绝访问的权限

如果您正在对windows卷中的所有文件进行尝试,将有许多文件出现抛出错误5,包括第三奇偶校验防病毒文件或ms defender或

只需使用一个try-catch并忽略它们,因为即使您知道什么是pid锁定它们,您也不能做任何事情,除了观看


如果您甚至没有对锁定文件的读取权限,也会发生这种情况,在这种情况下,请尝试修复安全性置换并重试

您的进程令牌没有足够的权限?它需要什么?它有什么?@DavidHeffernan谢谢,实际上我弄错了,我的szSessionKey成功地以类似0ea790d06656a54f84645b5755f7b6d6的字符串形式返回,我无法解释它。如何测试我的进程令牌权限?我确信我的进程令牌就是权限,因为相同的RstrMgr技术是由我的软件Firefox的核心完成的,我是通过插件完成的。这是做同样事情的核心:@Noitidart你有没有想过?也许您需要提升调用API的流程?错误5被拒绝访问。嘿@KirillOsenkov是的,我发现了,这是我在js ctypes中的工作——我不记得是什么问题,但它起作用了。啊,非常有趣。我正在传递一个文件,我想不起是什么原因导致了它,但我知道我在这里的代码中修复了它--尽管最后,我使用了NtQuerySystemInformation和NtQueryFileInformtion,重启管理器对我来说不太好,而且有很多WinXP用户。谢谢!你有使用NtQuerySystemInformation的代码吗?是的,我会把它挖出来,如果我24小时内没有给你回复,请提醒我。@jnm2我也有一些关于这方面的信息:1 2 3@KirillOsenkov请原谅延迟,但是你可以看到上面的信息。