13.07.2015 Views

[MS-VDS]: Virtual Disk Service (VDS) Protocol Specification

[MS-VDS]: Virtual Disk Service (VDS) Protocol Specification

[MS-VDS]: Virtual Disk Service (VDS) Protocol Specification

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

The server MUST update the percentage completed value periodically during the precedingsequence. How often the percentage completed is updated, and at what point in the sequence, isimplementation-specific.3.4.5.2.30.6 IVdsVolume::AddPlex (Opnum 8)The AddPlex method adds a volume as a plex to the current volume.HRESULT AddPlex([in] <strong>VDS</strong>_OBJECT_ID VolumeId,[out] IVdsAsync** ppAsync);VolumeId: The <strong>VDS</strong> object ID of the volume object to add as a plex.ppAsync: A pointer to an IVdsAsync interface that, if the operation is successfully completed,receives the IVdsAsync interface to monitor and control this operation. Callers MUST releasethe interface when they are done with it.Return Values: The method MUST return zero or a non-error HRESULT (as specified in [<strong>MS</strong>-ERREF]) to indicate success, or return an implementation-specific nonzero error code toindicate failure. For the HRESULT values predefined by the <strong>Virtual</strong> <strong>Disk</strong> <strong>Service</strong> Remote<strong>Protocol</strong>, see section 2.2.3.When the server receives this message, it MUST validate the following parameters:•Verify that the volume corresponding to the <strong>VDS</strong>_OBJECT_ID that VolumeId specifies has onlyone volume plex.•Verify that ppAsync is not NULL.If the volume resides on a basic disk, the server MUST return <strong>VDS</strong>_E_NOT_SUPPORTED (HRESULTof 0x80042400).The server MUST perform the following:•Verify that the size of the volume specified using the VolumeId parameter has a size that isgreater than, or equal to, the size of the volume to which the plex is being added. If the size ofthe volume specified using the VolumeId parameter is less than the size of the volume to which aplex is being added, then the server MUST return <strong>VDS</strong>_E_VOLUME_TOO_SMALL.•Verify that the volume specified using the VolumeId parameter has no extents located on disksthat contain extents belonging to the volume to which the plex is being added. If the volumespecified using the VolumeId parameter fails this requirement, then the server MUST return<strong>VDS</strong>_E_DISK_IN_USE_BY_VOLUME.•Create a new async object implementing the IVdsAsync interface with an output type of<strong>VDS</strong>_ASYNCOUT_ADDVOLUMEPLEX and set the pointer that ppAsync references to the interface.•Return an HRESULT indicating failure or success. Any errors encountered up through this point inprocessing the operation are returned in this HRESULT.The server MUST then perform the following in sequence. Errors generated in this sequence of stepsare returned in the pHrResult parameter to the IVdsAsync::Wait or IVdsAsyncQueryStatus methods.[<strong>MS</strong>-<strong>VDS</strong>] — v20110610<strong>Virtual</strong> <strong>Disk</strong> <strong>Service</strong> (<strong>VDS</strong>) <strong>Protocol</strong> <strong>Specification</strong>Copyright © 2011 Microsoft Corporation.Release: Friday, June 10, 2011240 / 360

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!