gpt4 book ai didi

c++ - OpenFileById 失败并显示 ERROR_ACCESS_DENIED

转载 作者:可可西里 更新时间:2023-11-01 10:34:20 24 4
gpt4 key购买 nike

我正在开发一个产品,其中 OpenFileById() 在文件和文件夹上以 ERROR_ACCESS_DENIED 失败,否则可以访问(意味着 CreateFile() 在具有相同访问级别/共享模式等的路径指定的相同文件或文件夹上成功)。

我正在使用备份语义,这样我也可以获得文件夹的句柄; SE_BACKUP_NAMESE_RESTORE_NAME 权限已启用。除了这台机器 (Windows 8.1),此代码在其他任何地方都有效。

该进程在本地系统下作为服务运行,我尝试让他们将其更改为具有管理员权限的不同帐户,但也没有用。有问题的文件/文件夹尚未打开以供删除(根据文档,这是此功能将失败并显示 ERROR_ACCESS_DENIED 的一种情况)。

我没有物理访问这台机器的权限,所以不能进行内核调试或类似的操作。有没有人遇到过这个?

简而言之,这是我要尝试做的事情:

hRoot = ::CreateFileA(szRootPath, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);

if (hRoot != INVALID_HANDLE_VALUE)
{
FILE_ID_DESCRIPTOR fileId;

fileId.dwSize = sizeof(fileId);
fileId.Type = FileIdType;
fileId.FileId.QuadPart = nId;

hFile = ::OpenFileById(hRoot, &fileId, SYNCHRONIZE | FILE_READ_ATTRIBUTES, FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE, NULL, FILE_FLAG_BACKUP_SEMANTICS);
if (hFile != INVALID_HANDLE_VALUE)
{
...
::CloseHandle(hFile);
}
::CloseHandle(hRoot);
}

最佳答案

显然这是由第三方软件产品的内核组件引起的(无法具体说明)

关于c++ - OpenFileById 失败并显示 ERROR_ACCESS_DENIED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35563158/

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