在具有 GENERIC_ALL 访问权限的 ProjectedFS 中打开文件(投影文件系统)
Open a file in ProjectedFS with GENERIC_ALL access (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_READ
,GENERIC_ALL
还包含 DELETE
、WRITE_DAC
(更改权限)和 WRITE_OWNER
(更改所有者)。您可以检查 File Security and Access Rights 以获得 FILE_GENERIC_*
.
的访问权限
您可以尝试从GENERIC_READ+WRITE+EXECUTE中逐一添加权限,看看是哪些权限导致了问题。
但是,您应该只请求实际需要的访问级别。
我已经实现了所有必要的功能,当我使用 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_READ
,GENERIC_ALL
还包含 DELETE
、WRITE_DAC
(更改权限)和 WRITE_OWNER
(更改所有者)。您可以检查 File Security and Access Rights 以获得 FILE_GENERIC_*
.
您可以尝试从GENERIC_READ+WRITE+EXECUTE中逐一添加权限,看看是哪些权限导致了问题。 但是,您应该只请求实际需要的访问级别。