3.3.1.12 Per Lease

If the server implements the SMB 2.1 or SMB 3.x dialect family and supports leasing, it implements the following:

  • Lease.LeaseKey: The 128-bit client-generated identifier for this lease.

  • Lease.ClientLeaseId: The 128-bit implementation-defined server identifier for this lease.

  • Lease.Filename: The name of the file backing this lease.

  • Lease.LeaseState: The current state of the lease as indicated by the underlying object store. This value MUST be a combination of the flags described in section 2.2.13.2.8 for "LeaseState". For the remainder of section 3.3, these will be referred to as follows:

    Lease State

    Abbreviated Name

    0

    NONE

    SMB2_LEASE_READ_CACHING

    R

    SMB2_LEASE_READ_CACHING | SMB2_LEASE_WRITE_CACHING

    RW

    SMB2_LEASE_READ_CACHING | SMB2_LEASE_HANDLE_CACHING

    RH

    SMB2_LEASE_READ_CACHING | SMB2_LEASE_WRITE_CACHING | SMB2_LEASE_HANDLE_CACHING

    RWH

  • Lease.BreakToLeaseState: The state to which the lease is breaking. This value MUST be a combination of the flags described in section 2.2.13.2.8 for "LeaseState". For the remainder of section 3.3, these will be referred to as described in the table above.

  • Lease.LeaseBreakTimeout: The time value that indicates when a lease that is breaking and has not received a Lease Break Acknowledgment from the client will be acknowledged by the server to the underlying object store.

  • Lease.LeaseOpens: The list of opens associated with this lease.

  • Lease.Breaking: A Boolean, if set to TRUE, indicating a lease break requiring acknowledgement is in progress.

  • Lease.Held: A Boolean, if set to TRUE, indicating that at least one Open is associated with this lease.

  • Lease.BreakNotification: A Lease Break Notification, as specified in section 2.2.23.2, if any, to be sent to the client.

  • Lease.FileDeleteOnClose: A Boolean, if set to TRUE, indicating that file deletion on close is pending.

If the server implements the SMB 3.x dialect family and supports leasing, it implements the following:

  • Lease.Epoch: A sequence number incremented by the server on every lease state change.

  • Lease.ParentLeaseKey: The 128-bit client-generated identifier of the lease for the parent directory of this lease.

  • Lease.Version: A number indicating the lease version.