Oplock 同步

(oplock) 请求 独占机会锁 的筛选器和文件系统必须将调用同步到系统提供的 oplock 包。 特别是,对 oplock FSCTRL 例程的调用 (建立 oplock) 时,必须与对 oplock 检查例程的调用同步。 这两组例程的列表包括:

处理 oplock 请求时,筛选器和文件系统必须确保以下各项:

  • 可能中断 oplock 的 i/o 无法与处理请求并行进行。
  • Oplock 请求不能同时出现 oplock 中断确认。

IRP 调用请求为同一文件控制块创建独占 oplock (FCB) 为:

下面是 oplock 同步的一些示例:

  • 处理 oplock 请求时,文件系统将以独占方式获取一些资源,调用 FsRtlOplockFsctrlEx并释放资源。

  • 处理 oplock 中断确认时,文件系统会获取共享的同一资源,调用 FsRtlOplockFsctrlEx并释放资源。

  • 执行 i/o 时,文件系统会获取共享的同一资源,调用 FsRtlCheckOplockEx2,执行 i/o,然后释放资源。

    文件系统的文件系统应确保它们在 FsRtlCheckUpperOplockFsRtlUpperOplockFsctrl 的调用之间以类似方式进行同步。