18.104.22.168.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 22.214.171.124 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 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.