在具有 GENERIC_ALL 访问权限的 ProjectedFS 中打开文件(投影文件系统)

Open a file in ProjectedFS with GENERIC_ALL access (Projected File System)

我使用 Projected File System

创建了示例应用程序

我已经实现了所有必要的功能,当我使用 GENERIC_READ 或 GENERIC_WRITE 访问权限从预计的 FS 打开文件时它运行良好,但是当我尝试使用 GENERIC_ALL 我收到拒绝访问错误。

出现 access denied 错误的可能原因是什么? 当文件已复制到投影文件系统时出现错误。

代码:

HANDLE fHandle = CreateFile(path_to_file_in_projected_fs, GENERIC_ALL, 0, 0, OPEN_EXISTING, 0, 0);

预期结果:有效的文件句柄。

实际结果:句柄无效,访问被拒绝错误(通过 GetLastError())

P.S。 GENERIC_READ_WRITE_EXECUTE 工作正常

HANDLE fHandle = CreateFile(path_to_file_in_projected_fs, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0);

Is GENERIC_ALL equivalent to GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE? GENERIC_ALL 表示 "every possible level of access"(对于文件,其名称为 FILE_ALL_ACCESS)。它不仅仅是 GENERIC_EXECUTE + GENERIC_WRITE + GENERIC_READGENERIC_ALL 还包含 DELETEWRITE_DAC(更改权限)和 WRITE_OWNER(更改所有者)。您可以检查 File Security and Access Rights 以获得 FILE_GENERIC_*.

的访问权限

您可以尝试从GENERIC_READ+WRITE+EXECUTE中逐一添加权限,看看是哪些权限导致了问题。 但是,您应该只请求实际需要的访问级别