检查IRP_MJ_READ操作的 Oplock 状态

读取时,以下 oplock 中断条件适用。 如果 TxF 事务读取器执行读取,则不会进行此检查,因为事务读取器排除编写器 (也就是说,持有 oplock 的编写器在) 根本不存在。

级别 2、筛选器、读取和 Read-Handle 请求类型的条件

  • oplock 未中断。

  • 无需确认,操作会立即继续。

级别 1、批处理、读写和读写-句柄请求类型的条件

  • 当读取操作发生在具有 oplock 键的FILE_OBJECT上时,IRP_MJ_READ中断,该操作不同于拥有 oplock 的FILE_OBJECT的键。 如果 oplock 中断:

    • 级别 1 和 Batch 请求中断到级别 2。

    • Read-Write 请求中断为 Read。

    • Read-Write-Handle 请求中断为 Read-Handle。

  • 在操作继续之前,必须收到确认。