Revision Summary Date Revision History Revision Comments 8/8/2013 1.0 New Released new document. 11/14/2013 2.0 Major Significantly changed the technical content. 2/13/2014 3.0 Significantly changed the technical content. 5/15/2014 4.0 Major Significantly changed the technical content. 6/30/2015 5.0 Major Significantly changed the technical content. 10/16/2015 6.0 Major Significantly changed the technical content. 7/14/2016 7.0 Major Significantly changed the technical content. 9/26/2016 8.0 Significantly changed the technical content. 3/16/2017 9.0 Major Significantly changed the technical content.
0x00000001 context specified in section 2.2.4.12 RSVD_ECP_CONTEXT_VERSION_2 0x00000002 Value of Version field in create context specified in section Operation Codes The following is a list of all control codes used in shared virtual disk operations: Name Meaning RSVD_TUNNEL_GET_INITIAL_INFO_OPERATION 0x02001001 Query shared virtual disk file and server information RSVD_TUNNEL_SCSI_OPERATION 0x02001002 Perform SCSI operation RSVD_TUNNEL_CHECK_CONNECTION_STATUS_OPERATION 0x02001003 shared virtual disk connection status RSVD_TUNNEL_SRB_STATUS_OPERATION 0x02001004 Query sense error code of previously failed request RSVD_TUNNEL_GET_DISK_INFO_OPERATION 0x02001005 Query disk information RSVD_TUNNEL_VALIDATE_DISK_OPERATION 0x02001006 Perform shared virtual disk validation RSVD_TUNNEL_META_OPERATION_START 0x02002101 Start a RSVD_TUNNEL_META_OPERATION_QUERY_PROGRESS 0x02002002 Query the progress of an ongoing
0xC05C0000 stored on server STATUS_SVHDX_ERROR_NOT_AVAILABLE 0xC05CFF00 Sense error data is not available STATUS_SVHDX_UNIT_ATTENTION_AVAILABLE 0xC05CFF01 Unit Attention data is available for the initiator to query STATUS_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED 0xC05CFF02 The data capacity of the device has changed, resulting in a Unit Attention condition STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED 0xC05CFF03 A previous operation resulted in this initiator's reservations preempted, resulting in a Unit Attention condition STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED 0xC05CFF04 A previous operation resulted in this initiator's reservations being released, resulting in a Unit Attention condition STATUS_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED 0xC05CFF05 A previous operation resulted in this initiator's registrations being preempted, resulting in a Unit Attention condition
STATUS_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED 0xC05CFF06 Represents the data storage format of the device has changed, resulting in a Unit Attention condition STATUS_SVHDX_RESERVATION_CONFLICT 0xC05CFF07 The current initiator is not allowed to perform the SCSI command because of a reservation conflict STATUS_SVHDX_WRONG_FILE_TYPE 0xC05CFF08 File on which open is performed is of wrong type STATUS_SVHDX_VERSION_MISMATCH 0xC05CFF09 Protocol version in request is not equal to 0x00000001 or 0x00000002 STATUS_VHD_SHARED 0xC05CFF0A The virtual disk cannot be opened because it is currently used in shared mode Structures SVHDX_TUNNEL_CHECK_CONNECTION_REQUEST Structure The SVHDX_TUNNEL_CHECK_CONNECTION_REQUEST packet is sent by the client to check the connection status to the shared virtual disk. The request MUST contain only SVHDX_TUNNEL_OPERATION_HEADER, and MUST NOT contain any payload.
0x00 Indicates that the client requested data from the server 0x01 Indicates that the client sent data to the server 0x02 Indicates that the client neither sent nor requested an additional data buffer Reserved (1 byte): This field MUST be set to zero, and MUST be ignored on receipt. SrbFlags (4 bytes): Special flags to indicate options of the SCSI response. This field MUST contain zero or more of the following values: Name Meaning SRB_FLAGS_DATA_IN 0x00000040 The client sent data to the server. SRB_FLAGS_DATA_OUT 0x00000080 The server is sending data to the client. DataTransferLength (4 bytes): The length, in bytes, of the additional data placed in the DataBuffer field. SenseDataEx (20 bytes): A buffer that contains the sense data. DataBuffer (variable): A variable-length buffer that contains the additional buffer, as described by the DataTransferLength field. SVHDX_TUNNEL_VALIDATE_DISK_REQUEST Structure The SVHDX_TUNNEL_VALIDATE_DISK_REQUEST packet is sent by the client to validate the shared virtual disk. This request contains 56 bytes. 0 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 6 7 8 9 2 0 1 2 3 4 5 6 7 8 9 3 0 1 Reserved (56 bytes) ... ... Reserved (56 bytes): The client MUST set all 56 bytes to zero and the server MUST ignore them on receipt. SVHDX_TUNNEL_VALIDATE_DISK_RESPONSE Structure The SVHDX_TUNNEL_VALIDATE_DISK_RESPONSE packet is sent by the server in a response to the operation RSVD_TUNNEL_VALIDATE_DISK_OPERATION. 0 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 6 7 8 9 2 0 1 2 3 4 5 6 7 8 9 3 0 1 IsValidDisk
Application Requests Reading From a Shared Virtual Disk The application provides: A handle to the Open identifying the shared virtual disk file. The offset, in bytes, from the beginning of the virtual disk from which to read data. The number of bytes to read. The minimum number of bytes to be read (optional). The buffer to receive the data. The client MUST call the interface specified in section 3.2.4.6, supplying the application-provided parameters Application Requests Writing To a Shared Virtual Disk The application provides: A handle to the Open identifying a shared virtual disk file. The offset, in bytes, from the beginning of the virtual disk where data is written. The number of bytes to write. A buffer containing the bytes to be written. The client MUST call the interface specified in section 3.2.4.7, supplying the application-provided parameters. Application Requests Virtual Disk File information The application provides: A handle to the Open identifying a shared virtual disk file. The maximum output buffer size that it will accept. The client MUST construct an SVHDX_TUNNEL_INITIAL_INFO_REQUEST structure, as specified in section as follows: The SVHDX_TUNNEL_OPERATION_HEADER MUST be initialized as follows: The OperationCode MUST be set to RSVD_TUNNEL_GET_INITIAL_INFO_OPERATION. The Status field MUST be set to zero. The RequestId field MUST be set to RequestIdentifier. The client MUST call the interface specified in section 3.2.4.20.11, supplying the following input parameters: Application-provided handle to identify the Open. Control code: FSCTL_SVHDX_SYNC_TUNNEL_REQUEST. SVHDX_TUNNEL_OPERATION_HEADER structure as payload. The maximum output buffer size that it will accept.
A 9 C 9 105 Client 47 67 67 47 11 13 F 10 G 7 H Higher-layer triggered events 68 I 102 102 8 Initialization 47 68 7 M Message processing 69 Messages 11 13 13 12 12 46 45 45 11 N 8 O 12 Other local events 67 91 8 P 102 9 9 103 R 7 8 8 8 S Security 102 102 Sequencing rules 69 Server 68 68 69 91 69 91 68 46 45 10 T Timer events 67 91 Timers 47 68 105 11 Triggered events - higher-layer 68 V 10 9