1

我有一个问题,我有一个文件打开了其他进程,并且这个进程在CreateFile非文件共享中定义,然后我有其他应用程序,我想同时从这个文件中读取数据,但是该怎么做。

我无法在第一个应用程序中更改文件共享。我可以达到计算机管理员的权限,我可以对系统进行更改,但如果可以通过代码完成,“代码”解决方案可能会更好地解决这个问题。

谁能帮我?

4

3 回答 3

1

一种选择是使用我们的RawDisk产品,它可以让您绕过系统安全限制并打开已以独占方式打开或您没有访问权限的文件。请注意,安装 RawDisk 本身需要管理员权限,因此 RawDisk 不能用于入侵他人的计算机。

另一种选择是使用备份 API,即上面提到的 BackupRead() Windows API 函数。谷歌搜索 BackupAPI 不仅会给你这个功能的描述,还有用户关于使用这个备份 API 所涉及的一些评论

于 2010-09-26T07:54:07.487 回答
1

如何使用EasyHook并在 API 中挂钩CreateFile例程,实际上,您的代码将拦截 API 并可能更改dwShareMode参数以使其按位 FILE_SHARE_READ 或 FILE_SHARE_WRITE 即 (FILE_SHARE_READ|FILE_SHARE_WRITE) 并调用原始挂钩以允许 CreateFile正常工作...

于 2010-09-26T01:26:01.157 回答
1

如果您有足够的权限,请使用备份 API。否则,请注意这些标志的存在是有原因的。如果有人禁用共享,它就会被禁用。

您想拨打BackupRead,MSDN 说明以下内容:

备份应用程序必须有权访问系统级访问控制设置,必须在传递给 CreateFile 的 dwDesiredAccess 参数值中指定 ACCESS_SYSTEM_SECURITY 标志。传递给 CreateFile 的值。

传递给 CreateFile 的参数值。

于 2010-09-26T01:40:12.833 回答