3.3.5.9.14 Handling the SVHDX_OPEN_DEVICE_CONTEXT Create Context

This section applies only to servers that implement the SMB 3.0.2 or SMB 3.1.1 dialect.

If IsSharedVHDSupported is FALSE, the server MUST ignore the create context.

If the create request has any other create contexts, the server MUST process those create contexts before processing the SVHDX_OPEN_DEVICE_CONTEXT.

If IsSharedVHDSupported is TRUE and the file name in the Buffer field ends with ":SharedVirtualDisk", the processing changes involved for this create context are:

  • In the "Open Execution" phase, this request MUST be processed as specified in [MS-RSVD] section 3.2.5.1 by providing the file name, Open.CreateOptions, and the SVHDX_OPEN_DEVICE_CONTEXT Create Context.

  • In the "Successful Open Initialization" phase, the server MUST set Open.IsSharedVHDX to TRUE.

  • In the "Response Construction" phase:

    • If the RSVD server has returned a response create context, as specified in [MS-RSVD] sections 2.2.4.31 and 2.2.4.33, the server MUST include it in the buffer described by the response CreateContextLength and CreateContextOffset fields.

If IsSharedVHDSupported is TRUE and the file name in the Buffer field does not end with ":SharedVirtualDisk", the processing changes involved for this create context are:

  • The server MUST set Open.IsSharedVHDX to FALSE.

  • If OriginatorFlags in SVHDX_OPEN_DEVICE_CONTEXT is set to SVHDX_ORIGINATOR_VHDMP, the server MUST fail the request with STATUS_VHD_SHARED. Otherwise, the create operation MUST be ignored.

Show: