4.4 Retrieving a VHD Set Snapshot List
The following diagram demonstrates the steps taken to open a VHD Set, retrieve snapshot IDs of the VHD Set, and close it.
Figure 5: Retrieving VHD Set Information
The client sends a SMB2 CREATE Request with the SVHDX_OPEN_DEVICE_CONTEXT_V2 create context to open a shared virtual disk file.
Version: 2 (0x00000002) HasInitiatorId: 1 Reserved: 0 (0x000000) InitiatorId: 68bad672-2a73-4cd8-9f58-6a4b67232e0d Flags: 0 (0x00000000) OriginatorFlags: SVHDX_ORIGINATOR_PVHDPARSER(0x00000001) OpenRequestId: (0x550916A700000000) InitiatorHostNameLength: 20 (0x0014) InitiatorHostName: SMBD-SUT01(0x0053004D00420044002D00530055005400300031) VirtualDiskPropertiesInitialized: 0 (0x00000000) ServerServiceVersion: 0 (0x00000000) VirtualSectorSize: 0 (0x00000000) PhysicalSectorSize:0 (0x00000000) VirtualSize: 0 (0x0000000000000000)
The server responds with an SMB2 CREATE Response giving the handle to the open identifying the shared virtual disk file and SVHDX_OPEN_DEVICE_CONTEXT_V2_Response context
Version: 2 (0x00000002) HasInitiatorId: 1 Reserved: 0 (0x000000) InitiatorId: 68bad672-2a73-4cd8-9f58-6a4b67232e0d Flags: 0 (0x00000000) OriginatorFlags: SVHDX_ORIGINATOR_PVHDPARSER(0x00000001) OpenRequestId: (0x550916A700000000) InitiatorHostNameLength: 20 (0x0014) InitiatorHostName: SMBD-SUT01(0x0053004D00420044002D00530055005400300031) VirtualDiskPropertiesInitialized: 1 (0x00000001) ServerServiceVersion: 2 (0x00000002) VirtualSectorSize: 512 (0x00000200) PhysicalSectorSize: 4096 (0x00001000) VirtualSize: (0x4000000000000000)
The client sends an SMB2 IOCTL Request with SVHDX_TUNNEL_INITIAL_INFO_REQUEST to retrieve the virtual disk information.
OperationCode: RSVD_TUNNEL_GET_INITIAL_INFO_OPERATION (0x02001001) Status: 0 (0x00000000) RequestId: (0x550916A700000001)
The server sends an SMB2 IOCTL Response with SVHDX_TUNNEL_INITIAL_INFO_RESPONSE containing the virtual disk information.
OperationCode: RSVD_TUNNEL_GET_INITIAL_INFO_OPERATION (0x02001001) Status: 0 (0x00000000) RequestId: (0x550916A700000001) ServerVersion: 2 (0x00000002) SectorSize: 512 (0x00000200) PhysicalSectorSize: 256 (0x00000100) Reserved: 0 (0x00000000) VirtualSize: (0x4000000000000000)
The client sends an SMB2 IOCTL Request with SVHDX_TUNNEL_VHDSET_QUERY_INFORMATION_REQUEST to retrieve the list of snapshot IDs of the VHD Set.
SVHDX_TUNNEL_OPERATION_HEADER: OperationCode: RSVD_TUNNEL_VHDSET_QUERY_INFORMATION (0x02002005) Status: 0 (0x00000000) RequestId: (0x550916A700000002) SVHDX_TUNNEL_VHDSET_QUERY_INFORMATION_REQUEST: VHDSetInformationType: SvhdxVHDSetInformationTypeSnapshotList(0x00000002) SnapshotType: SvhdxSnapshotTypeVM(0x00000001) SnapshotId: 00000000-0000-0000-0000-000000000000
The server sends an SMB2 IOCTL Response with SVHDX_TUNNEL_VHDSET_QUERY_INFORMATION_SNAPSHOT_LIST_RESPONSE containing the list of snapshot IDs.
SVHDX_TUNNEL_OPERATION_HEADER: OperationCode: RSVD_TUNNEL_VHDSET_QUERY_INFORMATION (0x02002005 Status: 0 (0x00000000) RequestId: (0x550916A700000002) SVHDX_TUNNEL_VHDSET_QUERY_INFORMATION_SNAPSHOT_LIST_RESPONSE: VHDSetInformationType: SvhdxVHDSetInformationTypeSnapshotList(0x00000002) Padding: 1(0x00000001) ResponseComplete: 0x01 Reserved: 0 (0x000000) NumberOfSnapshots: 2(0x00000002) SnapshotIds: 4d051d8d-d120-4ec5-ba14-a2bc02219678, 71836f8b-210e-4896-aac6- 1c4e3a8e81ef
The client sends an SMB2 CLOSE Request to close the shared virtual disk file.
The server sends an SMB2 CLOSE Response indicating the close was successful.