Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The server MUST locate the session, as specified in section 3.3.5.2.9.
The server MUST locate the tree connection, as specified in section 3.3.5.2.11.
Next, the server MUST locate the Lease Table by performing a lookup in GlobalLeaseTableList using Connection.ClientGuid as the lookup key. If no lease table is found, the server MUST fail the request with STATUS_OBJECT_NAME_NOT_FOUND.
The server MUST locate the lease on which the client is acknowledging a lease break by performing a lookup in LeaseTable.LeaseList using the LeaseKey of the request as the lookup key. If no lease is found, the server MUST fail the request with STATUS_OBJECT_NAME_NOT_FOUND.
If there is an Open in Lease.LeaseOpens where Open.IsPersistent is FALSE and Open.IsReplayEligible is TRUE, the server MUST set Open.IsReplayEligible to FALSE.
If Lease.Breaking is FALSE, the server MUST fail the request with STATUS_UNSUCCESSFUL.
If LeaseState is not a subset of Lease.BreakToLeaseState, the server MUST fail the request with STATUS_REQUEST_NOT_ACCEPTED.
The server completes the lease break request received from the object store as described in section 3.3.4.7. The server MUST set Lease.LeaseState to LeaseState received in the request, Open.OplockState to “Held”, and Lease.Breaking to FALSE.
The server then MUST construct a lease break response using the syntax specified in section 2.2.25.2 with the following values:
LeaseKey MUST be set to Lease.LeaseKey.
LeaseState MUST be set to Lease.LeaseState.
This response MUST then be sent to the client.
The status code returned by this operation MUST be one of those defined in [MS-ERREF]. Common status codes returned by this operation include:
STATUS_ACCESS_DENIED
STATUS_OBJECT_NAME_NOT_FOUND
STATUS_INVALID_OPLOCK_PROTOCOL
STATUS_INVALID_PARAMETER
STATUS_INVALID_DEVICE_STATE
STATUS_NETWORK_NAME_DELETED
STATUS_USER_SESSION_DELETED