windows – 如何使用FILE_SHARE_READ使CreateFile失败并使用FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE成功?

前端之家收集整理的这篇文章主要介绍了windows – 如何使用FILE_SHARE_READ使CreateFile失败并使用FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE成功?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
亲自尝试一下:

创建一个XLS文件,在Excel中打开它.

打开sysinternals Process Monitor,观察在资源管理器中复制XLS文件时发生的情况(只需点击ctrl-c ctrl-v).

连续两次调用:: CreateProcess.第一次调用请求读取权限,并拒绝访问.第二次调用要求读取加写入加删除和传递.

这是正常的吗?

如果您使用FILE_SHARE_READ打开文件,则表示您愿意共享对此文件的访问权限,但仅限于读取.

如果您打开所有标志,您也愿意共享写入/删除访问权限.

FILE_SHARE_READ比FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE更具限制性

如果某个其他进程(excel)已打开此文件,例如write(并且它设置了共享标志),你可以访问它的唯一方法是接受共享它以进行写入.

猜你在找的Windows相关文章