【问题标题】:FileCreate without OPLOCK / Opportunistic LockingFileCreate 没有 OPLOCK / 机会锁定
【发布时间】:2014-07-30 12:24:26
【问题描述】:

我正在寻找一种无需请求 oplock (SMB2_OPLOCK_LEVEL_LEASE) 即可在 SMB2 Windows share 上打开/创建文件的方法。 FileCreate() 带有标志 FILE_FLAG_NO_BUFFERING 不会影响行为。

禁用重定向器中的机会锁定是没有选择的。

有没有办法影响 fileopen / filecreate 不请求 oplock?

【问题讨论】:

    标签: c++ caching networking file-io smb


    【解决方案1】:

    你不能这样做。 Windows 在文件系统级别自动管理 opcloks。

    【讨论】:

      【解决方案2】:

      有一个棘手的方法来实现这一点。打开同一文件以从另一个应用程序中读取。如果您在创建主文件之前执行此操作,则不应请求 oplock 。如果你在你的主文件创建后做同样的事情,它的 oplock 应该被服务器打破。

      老实说,我不确定 Win 的行为,但明智的做法是尝试恕我直言。

      祝你好运

      【讨论】:

      • 我现在测试了。打开最火的应用程序请求并获得 oplock(见 netmon)。第二次打开(同一台机器,不同的应用程序)甚至没有创建一个网络数据包。 redirecor 完全处理 oplocked 和缓存的文件。你见过不同的行为吗?
      猜你喜欢
      • 2014-08-17
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 2021-08-01
      • 2014-02-28
      • 1970-01-01
      相关资源
      最近更新 更多