- 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 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 204 and 205:
•objectType member is the value V
- 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