gpt4 book ai didi

c - 如何通过管理代码使用 Windows native dll?

转载 作者:行者123 更新时间:2023-11-30 15:42:13 25 4
gpt4 key购买 nike

我制作了一个Windows native DLL(用C编写),当使用CreateFile函数打开卷时,它会尝试获取对卷的独占访问权限。这大多数时候都需要管理权限,因为我的 dll 也会在某个时间点尝试锁定卷并卸载卷。在将我的 dll 项目引用到解决方案后,我从 Visual studio 2010 以管理员身份启动我的可执行项目。到目前为止,它工作正常,我的进程能够获得该卷的独占访问权限。

现在,当我释放我的 dll 并将其与使用 QT 构建的 GUI 程序(也以管理员身份启动)一起使用时,它无法打开卷并给我带来共享冲突错误。我假设我的 dll 无法获得管理权限。我应该如何使用我的 dll 才能获得对该卷的独占访问权限?

如有任何帮助,我们将不胜感激。

最佳答案

您的问题出在其他地方。提升是由进程启动时执行的。如果托管 DLL 的进程已提升,则 DLL 中的代码将以提升的权限执行。

您报告的错误消息是共享违规,可能是ERROR_SHARING_VIOLATION。这表明其他方已以阻止共享的方式打开该卷。如果您在没有海拔的情况下运行,则不会收到此错误。如果您尝试在没有足够权限的情况下打开卷,您将看到 ERROR_ACCESS_DENIEDERROR_ELEVATION_NEEDED

关于c - 如何通过管理代码使用 Windows native dll?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20265658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com