WINAPI,用于在不请求 oplock 的情况下创建文件

Xiaopo Yang - MSFT 12,726 信誉分 Microsoft 供应商
2024-03-04T07:02:18.44+00:00

嗨,我有一个资源有限的 SMB 服务器,我正在尝试使用 Windows API 创建一个测试,以创建深层文件树。

 

我正在寻找一个 WINAPI,它可以创建一个文件,而不会在创建时要求 oplock。因为我想创建一个文件并立即关闭其句柄。

经过调查,我发现了 2 个相关的 API,CreateFile(),这个我使用到现在,以及 CreateFile2(),它可以获得额外的标志,例如FILE_FLAG_OPEN_REQUIRING_OPLOCK,但是当使用此 API 时,Windows 客户端似乎忽略了这个标志并且请求是相同的(批量 oplock 仍然存在于请求中)。

 

我发现了一个技巧,可以通过在创建后移动/重命名文件来破坏 oplock,但我很好奇是否有任何其他优雅的方法或任何其他 API 可以用来创建文件,而无需根据要求要求 oplock?

 

此问题由 WIN API for creating a file without requesting for an oplock - Microsoft Q&A总结而来

Windows API - Win32
Windows API - Win32
一组适用于桌面和服务器应用程序的核心 Windows 应用程序编程接口 (API)。 以前称为 Win32 API。
105 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Jeanine Zhang-MSFT 9,866 信誉分 Microsoft 供应商
    2024-03-04T07:08:31.4+00:00

    你好,

    欢迎来到 Microsoft Q&A!

    根据文档:机会锁

    通常,文件系统实现对机会锁的支持。 应用程序通常将机会锁管理留给文件系统驱动程序。

    就我而言,Windows在文件系统级别上自动地管理 opcloks,并且没有合适的 api可以在不请求 oplock 的情况下创建文件。

    Thank you .

    Jeanine

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。