CreateVirtualHardDisk( string ServerName, string VirtualHardDiskPath, string ParentPath, VirtualHardDiskType Type, VirtualHardDiskFormat Format, Int64 FileSize, Int32 BlockSize, Int32 LogicalSectorSize, Int32 PhysicalSectorSize) { ManagementScope scope = new ManagementScope("\\\\" + ServerName + "\\root\\virtualization\\v2"); VirtualHardDiskSettingData settingData = new VirtualHardDiskSettingData( Type, Format, VirtualHardDiskPath, ParentPath, FileSize, BlockSize, LogicalSectorSize, PhysicalSectorSize); using (ManagementObject imageManagementService = StorageUtilities.GetImageManagementService(scope)) { using (ManagementBaseObject inParams = imageManagementService.GetMethodParameters("CreateVirtualHardDisk")) { inParams["VirtualDiskSettingData"] = settingData.GetVirtualHardDiskSettingDataEmbeddedInstance( ServerName, imageManagementService.Path.Path); using (ManagementBaseObject outParams = imageManagementService.InvokeMethod( "CreateVirtualHardDisk", inParams, null)) { WmiUtilities.ValidateOutput(outParams, scope); } } } }
ConvertVirtualHardDisk( string ServerName, string SourcePath, string DestinationPath, VirtualHardDiskFormat Format) { ManagementScope scope = new ManagementScope("\\\\" + ServerName + "\\root\\virtualization\\v2"); VirtualHardDiskSettingData settingData = new VirtualHardDiskSettingData( VirtualHardDiskType.FixedSize, Format, DestinationPath, null, 0, 0, 0, 0); using (ManagementObject imageManagementService = StorageUtilities.GetImageManagementService(scope)) { using (ManagementBaseObject inParams = imageManagementService.GetMethodParameters("ConvertVirtualHardDisk")) { inParams["SourcePath"] = SourcePath; inParams["VirtualDiskSettingData"] = settingData.GetVirtualHardDiskSettingDataEmbeddedInstance( ServerName, imageManagementService.Path.Path); using (ManagementBaseObject outParams = imageManagementService.InvokeMethod( "ConvertVirtualHardDisk", inParams, null)) { WmiUtilities.ValidateOutput(outParams, scope); } } } }