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.

•If the signal state is TRUE and the client calls the IVdsAsync::Wait (Opnum 4) method, theserver returns the results of the task immediately.Return Code: The server returns to the client the HRESULT value that indicates the final result of thetask after it completes.•The server sets this value when the task fails or when the task successfully completes.Task-Specific Return Values: Certain tasks may need to return information or pointers to objectswhen they complete.•If a task (determined by <strong>VDS</strong>_ASYNC_OUTPUT_TYPE) returns such values, the server returnsthese values to the client by means of the <strong>VDS</strong>_ASYNC_OUTPUT structure that theIVdsAsync::Wait (Opnum 4) method returns after the task is successfully completed.3.4.2 TimersNone.3.4.3 InitializationDuring initialization of the <strong>Virtual</strong> <strong>Disk</strong> <strong>Service</strong> Remote <strong>Protocol</strong>, the service MUST start enumeratingstorage objects on the system and assign unique <strong>VDS</strong> object IDs to these objects, as specified insection 3.4.1.2.The server MUST NOT report different identifiers for the same object within one server session tothe same or to different <strong>VDS</strong> clients. The <strong>VDS</strong> object IDs are generated at server startup and whena new object arrives. These IDs are not persistent across server instantiations; if the service isstopped and restarted, new <strong>VDS</strong> object IDs will be generated.If service initialization has not started when the client calls theIVds<strong>Service</strong>Initialization::Initialize (Opnum 3) (section 3.4.5.2.5.1) method, the serviceMUST start initializing.3.4.3.1 Storage Management ObjectsThe server creates a service object and returns its interface pointer to the client that is requestingthe service. The server initializes an empty list of storage management objects and populates it withprovider objects that correspond to the installed providers on the system (the basic and dynamicproviders and also the virtual disk provider). The server MUST assign each provider object a unique<strong>VDS</strong>_OBJECT_ID.The server populates the list of storage management objects on the system. For more details abouthow each disk object is added for the basic provider, which also populates the associated pack andvolume objects, see section 3.4.5.1.3. For more details about how each pack object is added for thedynamic provider, see section 3.4.5.1.1. For more details about how each disk object is added, seesection 3.4.5.1.3. For more details about how each volume is added, which also populates theassociated volume plex object, see section 3.4.5.1.5. For more details about how each virtual diskobject or opened virtual disk object is added, see section 3.4.5.1.7.The server also queries for the HBA ports that are discoverable by using the HBA API, as well as theiSCSI initiator adapters and iSCSI initiator portals that are discoverable by using the iSCSI initiator,if they are available on the system. The service object MUST create a corresponding HBA port, aninitiator adapter, and initiator portal objects, and assign each of these objects a unique<strong>VDS</strong>_OBJECT_ID. For an initiator portal object, the server MUST set its initiator adapter pointer to[<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, 2011160 / 360

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

Saved successfully!

Ooh no, something went wrong!