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 remove the disk having a <strong>VDS</strong>_OBJECT_ID that is specified by <strong>Disk</strong>Id to thispack, remove the corresponding disk object from the list of storage management objects, andreturn an HRESULT indicating failure or success.3.4.5.2.18.9 IVdsPack::Recover (Opnum 12)The Recover method restores a disk pack to a healthy state. This method is not supported on basicdisk packs or the INVALID dynamic disk pack (the value of <strong>VDS</strong>_PACK_PROP::pwszName isINVALID for this pack). The INVALID dynamic disk pack contains dynamic disks that have failed tobe joined to the owning pack because there are errors or data corruption has occurred.HRESULT Recover([out] IVdsAsync** ppAsync);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.The server MUST perform the following:•Create a new async object implementing the IVdsAsync interface with an output type of<strong>VDS</strong>_ASYNCOUT_RECOVERPACK and set the pointer 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.•For all disks in the pack, attempt to bring the disk back to a healthy state. For all disks in theinvalid pack, attempt to bring the disk back to a healthy state and rejoin it to its proper pack.Attempt to resync any mirrored volumes, and regenerate any RAID-5 volumes that are in theonline pack.•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.•If changes are made to the pack as a result of the call to recover, then for each callback objectthat is registered in the list of callback objects, call the callback object'sIVdsAdviseSink::OnNotify (section 3.3.4.3.1) method by using a <strong>VDS</strong>_NOTIFICATION(section 2.2.1.3.9) structure that has the following attributes:[<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, 2011203 / 360

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

Saved successfully!

Ooh no, something went wrong!