- Page 2 and 3:
Revision SummaryDateRevisionHistory
- Page 4 and 5:
Contents1 Introduction ............
- Page 6 and 7:
2.2.2.6.1 Enumerations ............
- Page 8 and 9:
3.1.12.2 IVdsDisk2 Interface ......
- Page 10 and 11:
3.4.5.2.6.2 IVdsServiceUninstallDis
- Page 12 and 13:
3.4.5.2.32.3 IVdsVolumeMF::AddAcces
- Page 14 and 15:
1 IntroductionThe Virtual Disk Serv
- Page 16 and 17:
volume managervolume plexThe follow
- Page 18 and 19:
virtual disk: A disk that does not
- Page 20 and 21:
Note There is a charge to download
- Page 22 and 23:
1.4 Relationship to Other Protocols
- Page 24 and 25:
Parameter Value ReferenceRPC interf
- Page 26 and 27:
2 MessagesThe following sections sp
- Page 28 and 29:
VDS_H_FAILING_REDUNDANCY: One or mo
- Page 30 and 31:
VDS_ASYNCOUT_CREATEPARTITION: Infor
- Page 32 and 33:
VDSStorageIdTypeVendorSpecific = 0x
- Page 34 and 35:
VDS_FSF_ALLOCATION_UNIT_8K = 0x0010
- Page 36 and 37:
VDS_DET_OEM: The extent belongs to
- Page 38 and 39:
VDS_ESOF_QUICK: Determines whether
- Page 40 and 41:
2.2.1.2.21 VDS_LUN_RESERVE_MODEThe
- Page 42 and 43:
VDS_VF_NOT_FORMATTABLE: If set, the
- Page 44 and 45:
ValueVDS_NF_DISK_ARRIVE0x00000008VD
- Page 46 and 47:
wcLetter: The drive letter that tri
- Page 48 and 49:
2.2.1.3.10 VDS_ASYNC_OUTPUTThe VDS_
- Page 50 and 51:
Value0x4000000000000000GPT_BASIC_DA
- Page 52 and 53:
m_bCommandQueueing: A Boolean value
- Page 54 and 55:
diskId: The VDS object ID of the di
- Page 56 and 57:
MbrPartInfo: Contains information f
- Page 58 and 59:
VDS_OT_DISK: The object is a disk.V
- Page 60 and 61:
typedef struct _VDS_DRIVE_LETTER_PR
- Page 62 and 63:
pSharedSecret: A pointer to an arra
- Page 64 and 65:
Corresponding HBA_PORTSTATE value:
- Page 66 and 67:
wwnNode: The node WWN for the HBA p
- Page 68 and 69:
2.2.2.6.2.2 VDS_ISCSI_INITIATOR_POR
- Page 70 and 71:
unsigned long ulFlags;unsigned long
- Page 72 and 73:
2.2.2.9.1 Structures2.2.2.9.1.1 VDS
- Page 74 and 75:
pwszAdaptorName: The null-terminate
- Page 76 and 77:
ValueRemovableMedia0x0000000BFixedM
- Page 78 and 79:
style: The value from the VDS_PARTI
- Page 80 and 81:
ulFlags: The combination of any val
- Page 82 and 83:
VDS_VPT_SPAN = 0x0000000B,VDS_VPT_S
- Page 84 and 85:
allocated as the backing store for
- Page 86 and 87:
VDS_VST_DETACH_PENDING: The virtual
- Page 88 and 89:
} DEPENDENT_DISK_FLAG;DEPENDENT_DIS
- Page 90 and 91:
VirtualDeviceType: A pointer to a V
- Page 92 and 93:
additional information about the re
- Page 94 and 95:
Return value/code0x80042423VDS_E_PR
- Page 96 and 97:
Return value/codeDescriptionVDS_E_P
- Page 98 and 99:
Return value/codeDescriptionwhen th
- Page 100 and 101:
Return value/code0x8004251BVDS_E_VO
- Page 102 and 103:
Return value/codeVDS_E_DISK_LAYOUT_
- Page 104 and 105:
Return value/code0x80042566VDS_E_IN
- Page 106 and 107:
Return value/code0x80042588VDS_E_VO
- Page 108 and 109:
Return value/codeVDS_E_ASSOCIATED_P
- Page 110 and 111:
Return value/code0x80042815VDS_E_VO
- Page 112 and 113:
Return value/code0x8004290AVDS_E_IS
- Page 114 and 115:
Return value/code0x80042924VDS_E_RA
- Page 116 and 117:
3 Protocol DetailsThe following sec
- Page 118 and 119:
ParameterRPC interface UUID forIVds
- Page 120 and 121:
Objects can be HBA ports, initiator
- Page 122 and 123:
3.1.5 Service Object InterfacesThis
- Page 124 and 125:
Methods in RPC Opnum OrderMethodGet
- Page 126 and 127:
Methods in RPC Opnum OrderMethodGet
- Page 128 and 129:
MethodGetPropertiesDescriptionRetri
- Page 130 and 131:
MethodDescriptionOpnum: 3SetImportT
- Page 132 and 133:
MethodQueryExtentsConvertStyleSetFl
- Page 134 and 135:
All methods MUST NOT throw exceptio
- Page 136 and 137:
All methods MUST NOT throw exceptio
- Page 138 and 139:
MethodDescriptionOpnum: 3FormatAddA
- Page 140 and 141:
3.1.13.7 IVdsVolumeOnline Interface
- Page 142 and 143:
MethodDescriptionOpnum: 6MergeExpan
- Page 144 and 145:
Virtual Disk Providers and Virtual
- Page 146 and 147:
For a VDS_DISK_EXTENT or VDS_DISK_F
- Page 148 and 149:
3.2.1.4 DisksIVdsAdvancedDisk::GetP
- Page 150 and 151:
pointer to the virtual disk object
- Page 152 and 153:
3.3.2 TimersNone.3.3.3 Initializati
- Page 154 and 155: 3.4.1.1 Service ObjectThe service o
- Page 156 and 157: •If the disk is a removable drive
- Page 158 and 159: When the client calls a method to r
- Page 160 and 161: •If the signal state is TRUE and
- Page 162 and 163: 3.4.5.1.3 Adding Disk ObjectsThe se
- Page 164 and 165: 3.4.5.1.4 Removing Disk ObjectsThe
- Page 166 and 167: whether a basic, dynamic, or unallo
- Page 168 and 169: If S_FALSE is returned, the client
- Page 170 and 171: •Set the list of objects in the n
- Page 172 and 173: •Set the pHrResult output paramet
- Page 174 and 175: When the server receives this messa
- Page 176 and 177: wcFirstLetter: The first drive lett
- Page 178 and 179: Result of requeryAction server MUST
- Page 180 and 181: ulFlags: A value from the VDS_SERVI
- Page 182 and 183: pDiskIdArray: A pointer to an array
- Page 184 and 185: 3.4.5.2.8.2 IVdsServiceIscsi::Query
- Page 186 and 187: HRESULT GetProperties([out] VDS_HBA
- Page 188 and 189: Return Values: The method MUST retu
- Page 190 and 191: Return Values: The method MUST retu
- Page 192 and 193: VirtualDeviceType: Pointer to a VIR
- Page 194 and 195: HRESULT GetDiskFromVDisk([in] IVdsV
- Page 196 and 197: 3.4.5.2.18 IVdsPack Methods3.4.5.2.
- Page 198 and 199: 3.4.5.2.18.5 IVdsPack::CreateVolume
- Page 200 and 201: The server MUST update the percenta
- Page 202 and 203: •Return an HRESULT indicating fai
- Page 206 and 207: [out] IVdsPack** ppPack);ppPack: A
- Page 208 and 209: Clients cannot change the partition
- Page 210 and 211: ERROR_SUCCESS (0x00000000)When the
- Page 212 and 213: HRESULT QueryPartitions([out, size_
- Page 214 and 215: •For each callback object that is
- Page 216 and 217: •For each callback object that is
- Page 218 and 219: 3.4.5.2.23.7 IVdsAdvancedDisk::Dele
- Page 220 and 221: Return Values: The method MUST retu
- Page 222 and 223: Note This method is not valid on CD
- Page 224 and 225: •objectType member is VDS_NTT_VOL
- Page 226 and 227: •ullOffset is the byte offset at
- Page 228 and 229: eginning of the disk that ullOffset
- Page 230 and 231: usFileSystemRevision: A 16-bit, bin
- Page 232 and 233: HRESULT FormatPartitionEx2([in] ULO
- Page 234 and 235: •Set the signal state in the asyn
- Page 236 and 237: Return Values: The method MUST retu
- Page 238 and 239: •Create a new async object implem
- Page 240 and 241: The server MUST update the percenta
- Page 242 and 243: If the volume resides on a basic di
- Page 244 and 245: •Delete all volume plexes in the
- Page 246 and 247: •For each callback object registe
- Page 248 and 249: If the volume is associated with a
- Page 250 and 251: The server MUST then perform the fo
- Page 252 and 253: •Verify that plNumberOfAccessPath
- Page 254 and 255:
HRESULT Mount();This method has no
- Page 256 and 257:
HRESULT GetFileSystemTypeName([out,
- Page 258 and 259:
•Return an HRESULT indicating fai
- Page 260 and 261:
•Allocate a buffer to hold the vo
- Page 262 and 263:
•For each callback object that is
- Page 264 and 265:
•Verify that ullDesiredNumberOfRe
- Page 266 and 267:
•Verify that ppVolume is not NULL
- Page 268 and 269:
The server MUST update the percenta
- Page 270 and 271:
•Search all software providers fo
- Page 272 and 273:
ProviderSpecificFlags: Flags specif
- Page 274 and 275:
For example, to merge a differencin
- Page 276 and 277:
At any point in the preceding seque
- Page 278 and 279:
•objectType member is VDS_NTT_FIL
- Page 280 and 281:
•Volume member is a VDS_VOLUME_NO
- Page 282 and 283:
Figure 2: Client starting a VDS ses
- Page 284 and 285:
4.1.2 Ending SessionsThe following
- Page 286 and 287:
2. The server determines that the c
- Page 288 and 289:
Figure 8: Retrieving the properties
- Page 290 and 291:
8. When the format operation comple
- Page 292 and 293:
wprintf( L" Volume Id: %s\n", buffe
- Page 294 and 295:
6 Appendix A: Full IDLFor ease of i
- Page 296 and 297:
VDSBusTypeiScsi = 0x00000009,VDSBus
- Page 298 and 299:
} VDS_VOLUME_TYPE;typedef enum _VDS
- Page 300 and 301:
VDS_OBJECT_IDULONGLONG} VDS_PARTITI
- Page 302 and 303:
typedef struct _VDS_STORAGE_DEVICE_
- Page 304 and 305:
} GptPartInfo;[default];};} CREATE_
- Page 306 and 307:
VDS_PS_UNKNOWN = 0x00000000,VDS_PS_
- Page 308 and 309:
typedef struct _VDS_FILE_SYSTEM_TYP
- Page 310 and 311:
typedef struct _VDS_PACK_PROP{VDS_O
- Page 312 and 313:
OPEN_VIRTUAL_DISK_FLAG_NO_PARENTS =
- Page 314 and 315:
);[out] unsigned long *pcFetched[he
- Page 316 and 317:
HRESULT QueryFileSystemTypes([out,
- Page 318 and 319:
*pInitiatorSharedSecret,[in] VDS_OB
- Page 320 and 321:
}[]HRESULT CreatePack([out] IVdsPac
- Page 322 and 323:
HRESULT CreateVolume([in] VDS_VOLUM
- Page 324 and 325:
[object,uuid(8F4B2F5D-EC15-4357-992
- Page 326 and 327:
uuid(9882f547-cfc3-420b-9750-00dfbe
- Page 328 and 329:
);[helpstring("method QueryPlexes")
- Page 330 and 331:
);[helpstring("method Mount")]HRESU
- Page 332 and 333:
[object,uuid(4daa0135-e1d1-40f1-aaa
- Page 334 and 335:
7 Appendix B: Product BehaviorThe i
- Page 336 and 337:
Supported operating system versionI
- Page 338 and 339:
•Dynamic disk volumes - The flag
- Page 340 and 341:
overwritten with "UDF". The first e
- Page 342 and 343:
Section 3.1.7.1: This interface is
- Page 344 and 345:
Section 3.4.5.2.18.5: The Windows i
- Page 346 and 347:
On Windows Server 2003, Windows Ser
- Page 348 and 349:
incorrectly returns 0 in the pulPer
- Page 350 and 351:
Section 3.4.5.2.38.3: Windows does
- Page 352 and 353:
•Protocol syntax updated due to p
- Page 354 and 355:
IVdsVolumeMF (section 2.2.2.15 81,
- Page 356 and 357:
enumerations 70interface 130methods
- Page 358 and 359:
PVDS_REPARSE_POINT_PROP 81PVDS_VDIS
- Page 360:
VDS_SERVICE_NOTIFICATION structure