3.2.1.6 Per Application Open of a File

The client MUST implement the following:

Open.FileId: The SMB2_FILEID, as specified in section 2.2.14.1, returned by the server for this open.

Open.TreeConnect: A reference to the tree connect on which this Open was established.

Open.Connection: A reference to the SMB2 transport connection on which this open was established.

Open.Session: A reference to the authenticated session, as specified in section 3.2.1.3, over which this open was performed.

Open.OplockLevel: The current oplock level for this open.

Open.Durable: A Boolean that indicates whether this open is setup for reestablishment after a disconnect.

Open.FileName: A Unicode string with the name of the file.

Open.ResilientHandle: A Boolean that indicates whether resiliency was granted for this open by the server.

Open.LastDisconnectTime: The time at which the last network disconnect occurred on the connection used by this open.

Open.ResilientTimeout: The minimum time (in milliseconds) for which the server will hold this open, while waiting for the client to reestablish the open after a network disconnect.

Open.OperationBuckets: An array of 64 entries used to maintain information about outstanding lock and unlock operations performed on resilient Opens. Each entry MUST be assigned an index from the range of 1 to 64. Each entry is a structure with the following fields:

  • SequenceNumber: A 4-bit integer modulo 16.

  • Free: A Boolean value of FALSE indicates that there is an outstanding lock or unlock request using this index value and SequenceNumber combination.

Open.DesiredAccess: The access mode requested by the client for this Open, in the format specified in section 2.2.13.1.

Open.ShareMode: The sharing mode requested by the client for this Open, in the format specified in section 2.2.13.

Open.CreateOptions: The create options requested by the client for this Open, in the format specified in section 2.2.13.

Open.FileAttributes: The file attributes used by the client for this Open, in the format specified in section 2.2.13.

Open.CreateDisposition: The create disposition requested by the client for this Open, in the format specified in section 2.2.13.

If the client implements the SMB 3.x dialect family, the client MUST implement the following:

Open.DurableTimeout: The minimum time (in milliseconds) for which the server will hold this durable or persistent open, while waiting for the client to re-establish the open after a network disconnect.

Open.OutstandingRequests: A table of requests, as specified in section 3.2.1.7, that have been issued using this open and are awaiting a response. The table MUST allow lookup by Request.CancelId and by MessageId.

Open.CreateGuid: A unique identifier which identifies the Open.

Open.IsPersistent: A Boolean that indicates whether this open is persistent.