3.2.1.4 Disks

IVdsAdvancedDisk::GetPartitionProperties: Prior to invoking GetPartitionProperties, the client invokes IVdsDisk::QueryExtents or IVdsVolumePlex::QueryExtents to retrieve the offset parameter. The client passes this returned value as the ullOffset input parameter to the GetPartitionProperties method. IVdsDisk::QueryExtents or IVdsVolumePlex::QueryExtents returns this value as the VDS_DISK_EXTENT::ullOffset output parameter.

IVdsAdvancedDisk::CreatePartition: Prior to invoking CreatePartition, the client invokes IVdsDisk::QueryExtents  , IVdsDisk3::QueryFreeExtents, or IVdsVolumePlex::QueryExtents to retrieve the free disk extents. Using the list of free disk extents, the client can calculate an offset and size for the new partition. The client passes these calculated values as the ullOffset and ullSize input parameters to the CreatePartition method. IVdsDisk::QueryExtents returns a list of VDS_DISK_EXTENT structures as an output parameter. These structures contain the offset and size of the free extent as VDS_DISK_EXTENT::ullOffset and VDS_DISK_EXTENT::ullSize. IVdsDisk3::QueryFreeExtents, and IVdsVolumePlex::QueryExtents return a list of VDS_DISK_FREE_EXTENT structures as an output parameter. These structures contain the offset and size of the free extent as VDS_DISK_FREE_EXTENT::ullOffset and VDS_DISK_FREE_EXTENT::ullSize.

Prior to invoking CreatePartition, the client invokes IVdsAdvancedDisk::GetPartitionProperties to retrieve the partition type (partition style) for the disk. The client passes this value as the CREATE_PARTITION_PARAMETERS::style input parameter to the CreatePartition method. IVdsAdvancedDisk::GetPartitionProperties returns this value as the VDS_PARTITION_PROP::PartitionStyle structure member.

Prior to invoking CreatePartition, the client invokes IVdsPack::AddDisk to set the partitioning format for the disk if the disk is not initialized.

IVdsAdvancedDisk::DeletePartition: Prior to invoking DeletePartition, the client invokes IVdsAdvancedDisk::GetPartitionProperties, IVdsDisk::QueryExtents, or IVdsVolumePlex::QueryExtents to retrieve the offset parameter. The client passes this returned value as the ullOffset input parameter to the DeletePartition method. If an invalid offset is passed to this method, it will fail. IVdsDisk::QueryExtents or IVdsVolumePlex::QueryExtents returns this value as the VDS_DISK_EXTENT::ullOffset output parameter. IVdsAdvancedDisk::GetPartitionProperties returns this value as the VDS_PARTITION_PROP::ullOffset output parameter.

IVdsAdvancedDisk::ChangeAttributes: ChangeAttributes has the same call sequence description as DeletePartition.

IVdsAdvancedDisk::AssignDriveLetter: AssignDriveLetter has the same call sequence description as DeletePartition.

IVdsAdvancedDisk::GetDriveLetter: GetDriveLetter has the same call sequence description as DeletePartition.

IVdsAdvancedDisk::FormatPartition: For call sequencing related to the ullOffset input parameter, see the description for IVdsAdvancedDisk::DeletePartition. For call sequencing, see sections 3.2.1.1.2, 3.4.1.4, 3.4.1.5, and 4.5.

IVdsAdvancedDisk2::ChangePartitionType: For call sequencing related to the ullOffset input parameter, see the description for IVdsAdvancedDisk::FormatPartition.

Prior to invoking ChangePartitionType, the client invokes IVdsAdvancedDisk::GetPartitionProperties to retrieve the partition type for the disk. The client passes this value as the CHANGE_PARTITION_TYPE_PARAMETERS::style input parameter to the ChangePartitionType method. IVdsAdvancedDisk::GetPartitionProperties returns this value as the VDS_PARTITION_PROP::PartitionStyle structure member.

IVdsCreatePartitionEx::CreatePartitionEx: IVdsCreatePartitionEx has the same call sequence description as IVdsAdvancedDisk::CreatePartition.

IVdsServiceUninstallDisk::GetDiskIdFromLunInfo: Prior to invoking GetDiskIdFromLunInfo, the client invokes IVdsDisk::GetIdentificationData to retrieve the logical unit number (LUN) information for the disk. The client passes this returned value as the pLunInfo input parameter to the GetDiskIdFromLunInfo method. IVdsDisk::GetIdentificationData returns this value as the pLunInfo output parameter.

IVdsServiceUninstallDisk::UninstallDisks: Prior to invoking UninstallDisks, the client invokes IVdsDisk::GetProperties or IVdsDisk3::GetProperties2 for each disk in the input array, to retrieve the list of disk IDs. The client passes this returned value as the pDiskIdArray input parameter to the UninstallDisks method. IVdsDisk::GetProperties  and IVdsDisk3::GetProperties2 return this value as the VDS_DISK_PROP::id or VDS_DISK_PROP2::id output parameter.