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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

[in] ULONG Reserved,[out] IVdsAsync** ppAsync);Flags: A COMPACT_VIRTUAL_DISK_FLAG (section 2.2.2.19.1.3) enumeration value thatspecifies how the virtual disk is to be compacted.Reserved: This parameter is reserved for system use and MUST be ignored.ppAsync: A pointer to an IVdsAsync (section 3.1.3.1) interface that if the operation issuccessfully completed receives the IVdsAsync interface to monitor and control thisoperation. Callers MUST release the interface when they are done with it.Return Values: The method MUST return zero to indicate success, or return an implementationspecificnonzero error code to indicate failure.When the server receives this message, it MUST validate the following parameters:•Verify that Flags is a bitwise OR of values from the COMPACT_VIRTUAL_DISK_FLAGenumeration.•Verify that ppAsync is not NULL.The server MUST perform the following:•Create a new async object implementing the IVdsAsync interface with an output type of<strong>VDS</strong>_ASYNCOUT_COMPACT_VDISK and set the pointer ppAsync to the interface.•Return an HRESULT indicating failure or success. Any errors encountered up through this pointin processing 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.•Pass the input parameters to the operating system to compact the disk.•Set the return code in the async object to an HRESULT indicating failure or success of theoperating system.•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.At any point in the preceding sequence--before the percentage completed value in the async objectis 100--the server MUST update the percentage completed value if forward progress is made duringthe compact operation.3.4.5.2.39.5 IVdsOpenV<strong>Disk</strong>::Merge (Opnum 7)This method is applicable only to differencing type virtual disks. The Merge method moves all datablocks from a differencing virtual disk into its parent virtual disk. Merging a virtual disk requires thatthe virtual disk be detached during the operation. Both the virtual disk and its parent must beopened READ|WRITE using the IVdsV<strong>Disk</strong>::Open method called against the virtual disk with anappropriate value for the ReadWriteDepth, as described later in this section.[<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, 2011273 / 360

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

Saved successfully!

Ooh no, something went wrong!