3.1 Interfaces

All VDS interfaces that are listed in this section inherit the IUnknown interface. For all VDS interfaces, method opnum field values start with 3; opnum values 0, 1, and 2 represent the IUnknown::QueryInterface, IUnknown::AddRef, and IUnknown::Release methods, respectively. For more information, see [MS-DCOM] section 3.1.1.5.8.

The interfaces in this section are listed in the following order:

This order reflects the logical hierarchy of objects in VDS. For more information, see section 3.4.1.

To retrieve the interfaces of a particular object, call the QueryInterface method on the DCOM IUnknown interfaces of the object as defined in [MS-DCOM] section 3.1.1.5.8.

Unless otherwise specified, all methods MUST return zero or a nonerror HRESULT (as specified in [MS-ERREF]) on success, or an implementation-specific nonzero error code on failure (see section 2.2.3 for more information on the HRESULT values predefined by the Virtual Disk Service Remote Protocol).

Unless otherwise specified, client implementations of this protocol MUST NOT take any action on an error code, but rather, return the error to the invoking application.

The set of required and optional interfaces is organized into five groups. Group 1 is the required set of interfaces. Groups 2 through 6 are optional sets of interfaces.<53>

If one interface from an optional group is implemented, all interfaces in that group MUST be implemented.

The groups form an additive set: Group 1 is required. If one interface from group 2 is implemented, all interfaces in group 1 and group 2 are implemented. If one interface from group 3 is implemented, that implies that all interfaces in groups 1, 2, and 3 are implemented.

Group 1

Parameter

Value

Additive set of interfaces that MUST be implemented

RPC interface UUID for IEnumVdsObject

118610B7-8D94-4030-B5B8-500889788E4E

Group 1

RPC interface UUID for IVdsAdviseSink

8326CD1D-CF59-4936-B786-5EFC08798E25

Group 1

RPC interface UUID for IVdsAsync

D5D23B6D-5A55-4492-9889-397A3C2D2DBC

Group 1

RPC interface UUID for IVdsServiceLoader

E0393303-90D4-4A97-AB71-E9B671EE2729

Group 1

RPC interface UUID for IVdsService

0818A8EF-9BA9-40D8-A6F9-E22833CC771E

Group 1

RPC interface UUID for IVdsServiceInitialization

4AFC3636-DB01-4052-80C3-03BBCB8D3C69

Group 1

RPC interface UUID for IVdsProvider

10C5E575-7984-4E81-A56B-431F5F92AE42

Group 1

RPC interface UUID for IVdsSwProvider

9AA58360-CE33-4F92-B658-ED24B14425B8

Group 1

RPC interface UUID for IVdsHwProvider

D99BDAAE-B13A-4178-9FDB-E27F16B4603E

Group 1

RPC interface UUID for IVdsPack

3B69D7F5-9D94-4648-91CA-79939BA263BF

Group 1

RPC interface UUID for IVdsDisk

07E5C822-F00C-47A1-8FCE-B244DA56FD06

Group 1

RPC interface for UUID for IVdsAdvancedDisk

6E6F6B40-977C-4069-BDDD-AC710059F8C0

Group 1

RPC interface UUID for IVdsRemovable

0316560B-5DB4-4ED9-BBB5-213436DDC0D9

Group 1

RPC interface UUID for IVdsVolume

88306BB2-E71F-478C-86A2-79DA200A0F11

Group 1

RPC interface UUID for IVdsVolumeMF

EE2D5DED-6236-4169-931D-B9778CE03DC6

Group 1

RPC interface UUID for IVdsVolumePlex

4DAA0135-E1D1-40F1-AAA5-3CC1E53221C3

Group 1

COM class UUID for the VDS service object class

Used to create a VDS session (see section 4.1.1)

7D1933CB-86F6-4A98-8628-01BE94C9A575

Group 1

Group 2

Parameter

Value

Additive set of interfaces that MUST be implemented

RPC interface UUID for IVdsCreatePartitionEx

9882F547-CFC3-420B-9750-00DFBEC50662

Groups 1-2

RPC interface UUID for IVdsServiceUninstallDisk

B6B22DA8-F903-4BE7-B492-C09D875AC9DA

Groups 1-2

RPC interface UUID for IVdsSubSystemImportTarget

83BFB87F-43FB-4903-BAA6-127F01029EEC

Groups 1-2

RPC interface UUID for IVdsServiceHba

0AC13689-3134-47C6-A17C-4669216801BE

Groups 1-2

RPC interface UUID for IVdsServiceIscsi

14FBE036-3ED7-4E10-90E9-A5FF991AFF01

Groups 1-2

RPC interface UUID for IVdsHbaPort

2ABD757F-2851-4997-9A13-47D2A885D6CA

Groups 1-2

RPC interface UUID for IVdsIscsiInitiatorAdapter

B07FEDD4-1682-4440-9189-A39B55194DC5

Groups 1-2

RPC interface UUID for IVdsIscsiInitiatorPortal

38A0A9AB-7CC8-4693-AC07-1F28BD03C3DA

Groups 1-2

Group 3

Parameter

Value

Additive set of interfaces that MUST be implemented

RPC interface UUID for IVdsPack2

13B50BFF-290A-47DD-8558-B7C58DB1A71A

Groups 1-3

RPC interface UUID for IVdsDisk2

40F73C8B-687D-4A13-8D96-3D7F2E683936

Groups 1-3

RPC interface UUID for IVdsAdvancedDisk2

9723F420-9355-42DE-AB66-E31BB15BEEAC

Groups 1-3

RPC interface UUID for IVdsVolumeMF2

4DBCEE9A-6343-4651-B85F-5E75D74D983C

Groups 1-3

RPC interface UUID for IVdsDiskPartitionMF

538684E0-BA3D-4BC0-ACA9-164AFF85C2A9

Groups 1-3

RPC interface UUID for IVdsVolumeShrink

D68168C9-82A2-4F85-B6E9-74707C49A58F

Groups 1-3

Group 4

Parameter

Value

Additive set of interfaces that MUST be implemented

RPC interface UUID for IVdsServiceSAN

FC5D23E8-A88B-41A5-8DE0-2D2F73C5A630

Groups 1-4

RPC interface UUID for IVdsDiskOnline

90681B1D-6A7F-48E8-9061-31B7AA125322

Groups 1-4

Group 5

Parameter

Value

Additive set of interfaces that MUST be implemented

RPC interface UUID for IVdsDiskPartitionMF2

9CBE50CA-F2D2-4BF4-ACE1-96896B729625

Groups 1-5

RPC interface UUID for IVdsVolumeMF3

6788FAF9-214E-4B85-BA59-266953616E09

Groups 1-5

RPC interface UUID for IVdsDisk3

8F4B2F5D-EC15-4357-992F-473EF10975B9

Groups 1-5

RPC interface UUID for IVdsVolume2

72AE6713-DCBB-4A03-B36B-371F6AC6B53D

Groups 1-5

Microsoft Virtual Disk Provider Vendor Identifier VIRTUAL_STORAGE_TYPE_VENDOR_MICROSOFT

EC984AEC-A0F9-47E9-901F-71415A66345B

Groups 1-5

RPC interface UUID for IVdsVdProvider

B481498C-8354-45F9-84A0-0BDD2832A91F

Groups 1-5

RPC interface UUID for IVdsVDisk

1E062B84-E5E6-4B4B-8A25-67B81E8f13E8

Groups 1-5

RPC interface UUID for IVdsOpenVDisk

75C8F324-F715-4FE3-A28E-F9011B61A4A1

Groups 1-5

RPC interface UUID for IVdsVolumeOnline

1BE2275A-B315-4F70-9E44-879B3A2A53F2

Groups 1-5

Group 6<54>

Parameter

Value

Additive set of interfaces that MUST be implemented

RPC interface UUID for IVdsServiceSw

15fc031c-0652-4306-b2c3-f558b8f837e2

Groups 1-6

RPC interface UUID for IVdsAdvancedDisk3

3858C0D5-0F35-4BF5-9714-69874963BC36

Groups 1-6