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.

If the volume resides on a basic disk, the server MUST return <strong>VDS</strong>_E_NOT_SUPPORTED (HRESULTof 0x80042400).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.•Break the volume plex corresponding to the <strong>VDS</strong>_OBJECT_ID that PlexId specifies for thisvolume.•Create a new volume object that corresponds to the new volume, implements the IVdsVolumeinterface, and assigns it a unique <strong>VDS</strong>_OBJECT_ID.•Set the new volume object's pack pointer to the pack object that this volume's pack pointerreferences.•Add the new volume object to the list of storage management objects.•Set the volume plex's volume pointer to the new volume object. Set the task-specific returnvalues in the async object to return the values that are associated with<strong>VDS</strong>_ASYNCOUT_BREAKVOLUMEPLEX (as specified in section 3.4.5.1.9).•Set the return code in the async object to an HRESULT indicating failure or success.•If the task completed successfully, set the percentage completed value in the async object to100.•Set the signal state in the async object to TRUE.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.8 IVdsVolume::RemovePlex (Opnum 10)The RemovePlex method removes a specified plex from a volume. The last plex of a volume cannotbe removed.HRESULT RemovePlex([in] <strong>VDS</strong>_OBJECT_ID plexId,[out] IVdsAsync** ppAsync);plexId: The <strong>VDS</strong> object ID of the volume plex object to remove.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 parameter:•Verify that ppAsync is not NULL.[<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, 2011242 / 360

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

Saved successfully!

Ooh no, something went wrong!