求教:关于File的dwShareMode

pf_ma 2005-09-23 11:56:06
如何改变1个CreateFile打开的File的dwShareMode?

比如,一开始hFile有如下的权限:
HANDLE hFile = CreateFile(
"xxxx",
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ,
......

然后,我想改变这个已经打开hFile的dwShareMode,让这个已经打开hFile有类似如下的权限:
CreateFile(
"xxxx",
GENERIC_READ | GENERIC_WRITE,
0,
......

这时如果已经有其他App以read方式打开着这个文件的话,操作可以失败,但需要维持hFile处于CreateFile时的状态

有没有设么办法?




...全文
181 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodboyws 2005-09-23
  • 打赏
  • 举报
回复
ShareMode在打开后是不可以改变的
但是象DentistryDoctor说的

共享方式取决于首先打开文件的那个进程。
你可以第一个用FILE_SHARE_READ,第二个不用
pf_ma 2005-09-23
  • 打赏
  • 举报
回复
先CloseHandle再CreateFile的话,

在CloseHandle后,CreateFile之前,无法阻止其他App以read,Write方式打开的这个文件
pf_ma 2005-09-23
  • 打赏
  • 举报
回复
我的意思是:

一开始,hFile有Read,Write权限,同时他允许其他App以read方式打开这个文件
然后,改变hFile的权限,hFile有Read,Write权限,但禁止其他App打开这个文件

goodboyws 2005-09-23
  • 打赏
  • 举报
回复
想改变这个已经打开hFile的dwShareMode是指什么,第一个FILE_SHARE_READ,第二个用0,是这个意思么
fairyprince 2005-09-23
  • 打赏
  • 举报
回复
你先关了,在改就行了
DentistryDoctor 2005-09-23
  • 打赏
  • 举报
回复
共享方式取决于首先打开文件的那个进程。
DentistryDoctor 2005-09-23
  • 打赏
  • 举报
回复
这要看其它程序是以什么共享方式打开此文件的了。
fairyprince 2005-09-23
  • 打赏
  • 举报
回复
你是说让其返回的是文件句柄,而不是INVALID_HANDLE_VALUE
好像做不到
pf_ma 2005-09-23
  • 打赏
  • 举报
回复
to goodboyws:

第1个handle创建时,已经禁止了write方式打开

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧