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:
Generic object interfaces: Enumeration Object Interfaces (section 3.1.1) through Asynchronous Operation Object Interfaces (section 3.1.3).
Service object interfaces: Service Object Interfaces (section 3.1.5) through HBA Port Object Interfaces (section 3.1.6).
Provider interfaces: Provider Object Interfaces (section 3.1.9).
Pack interfaces: Pack Object Interfaces (section 3.1.11).
Disk interfaces: Disk Object Interfaces (section 3.1.12).
Volume interfaces: Volume Object Interfaces (section 3.1.13).
Volume plex interfaces: Volume Plex Object Interfaces (section 3.1.14).
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 |