我已经实现了所有必要的功能,当我从具有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);
答案 0 :(得分:1)
Is GENERIC_ALL equivalent to GENERIC_READ | GENERIC_WRITE | GENERIC_EXECUTE?
GENERIC_ALL
表示“所有可能的访问级别”(对于文件,名称为FILE_ALL_ACCESS
)。不只是GENERIC_EXECUTE
+ GENERIC_WRITE
+ GENERIC_READ
,GENERIC_ALL
还包含DELETE
,WRITE_DAC
(用于更改权限)和{{1 }}(更改所有者)。您可以检查File Security and Access Rights来访问WRITE_OWNER
。
您可以尝试从GENERIC_READ + WRITE + EXECUTE逐个添加权限,以查看导致该问题的权限。 但是,您应该仅请求实际需要的访问级别。