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.

whether a basic, dynamic, or unallocated disk is a virtual disk and create a corresponding virtualdisk object for it. The mechanism of detection is implementation-specific.The server MUST also maintain a list of Open<strong>Virtual</strong><strong>Disk</strong> objects. An Open<strong>Virtual</strong><strong>Disk</strong> object iscreated when a client calls IVdsV<strong>Disk</strong>::Open.3.4.5.1.8 Removing <strong>Virtual</strong> <strong>Disk</strong> ObjectsThe server MUST maintain a list of virtual disks. <strong>Virtual</strong> disks SHOULD be removed when all of theclients release their reference to the virtual disk object. The server MUST also detect whether thebasic, dynamic, or unallocated disk that has been removed is a virtual disk and remove thecorresponding virtual disk object. The mechanism of detection is implementation-specific.The server MUST also maintain a list of Open<strong>Virtual</strong><strong>Disk</strong> objects. An Open<strong>Virtual</strong><strong>Disk</strong> object may beremoved when all the clients release their reference to the Open<strong>Virtual</strong><strong>Disk</strong> object.3.4.5.1.9 Handling Asynchronous TasksWhen the client calls a method that initiates a task that returns an async object, the server MUSTcreate an async object that implements the IVdsAsync interface and return the interface pointer tothe client to allow it to monitor the task's status. For examples of how async objects can be used,see section 4.5.If the task has completed successfully and the client calls the IVdsAsync::Wait method on theasync object, the server MUST return the following task-specific return values to the client by meansof the <strong>VDS</strong>_ASYNC_OUTPUT structure returned by the method. The return values are determinedby the async output type:•<strong>VDS</strong>_ASYNCOUT_CREATEPARTITION:•The byte offset at which the partition was created (returned in the cp.ullOffset member).•The <strong>VDS</strong>_OBJECT_ID of the associated volume if the partition is a volume (returned in thecp.volumeId member).•<strong>VDS</strong>_ASYNCOUT_CREATEVOLUME:•The IUnknown pointer of the volume object created (returned in the cv.pVolumeUnkmember).•<strong>VDS</strong>_ASYNCOUT_BREAKVOLUMEPLEX:•The IUnknown pointer of the volume object that resulted when the volume plex was brokenfrom the original volume (returned in the bvp.pVolumeUnk member).•<strong>VDS</strong>_ASYNCOUT_SHRINKVOLUME:•The number of bytes reclaimed by the shrink operation (returned in the sv.ullReclaimedBytesmember).•<strong>VDS</strong>_ASYNCOUT_CREATE_VDISK:•The IUnknown pointer of the virtual disk object created (returned in the cvd.pV<strong>Disk</strong>Unkmember).If the async output type is none of the preceding or if the task did not complete successfully, nodata other than the return code of the operation MAY be returned. This means that if the task fails[<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, 2011166 / 360

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

Saved successfully!

Ooh no, something went wrong!