Beispiel #1
0
 public VHDInfo GetCfg()
 {
     using (IImageManagementService managementService = ImageManagementService.GetImageManagementService(this._Host))
     {
         using (IVirtualHardDiskSettingData hardDiskSettingData = managementService.GetVirtualHardDiskSettingData(this._Path))
         {
             using (IVirtualHardDiskState virtualHardDiskState = managementService.GetVirtualHardDiskState(this._Path))
                 return new VHDInfo()
                        {
                            Path            = this._Path,
                            FileSize        = (long)virtualHardDiskState.FileSize,
                            MaxInternalSize = (long)hardDiskSettingData.MaxInternalSize,
                            ParentPath      = hardDiskSettingData.ParentPath,
                            Type            = (int)hardDiskSettingData.Type
                        };
         }
     }
 }
Beispiel #2
0
        public static IVirtualHardDiskState Parse(ManagementScope scope, string embedded)
        {
            IVirtualHardDiskState virtualHardDiskState = VirtualHardDiskState.CreateVirtualHardDiskState(scope);
            XElement         xelement         = XElement.Parse(embedded);
            ManagementObject managementObject = ((IWMICommon)virtualHardDiskState).Object;

            foreach (XElement element in xelement.Elements((XName)"PROPERTY"))
            {
                switch (element.Attribute((XName)"TYPE").Value)
                {
                case "boolean":
                    managementObject[element.Attribute((XName)"NAME").Value] = (object)Convert.ToBoolean(element.Value);
                    continue;

                case "int32":
                    managementObject[element.Attribute((XName)"NAME").Value] = (object)(string.IsNullOrEmpty(element.Value) ? 0 : Convert.ToInt32(element.Value));
                    continue;

                case "int64":
                    managementObject[element.Attribute((XName)"NAME").Value] = (object)(string.IsNullOrEmpty(element.Value) ? 0L : Convert.ToInt64(element.Value));
                    continue;

                case "string":
                    managementObject[element.Attribute((XName)"NAME").Value] = (object)element.Value;
                    continue;

                case "uint16":
                    managementObject[element.Attribute((XName)"NAME").Value] = (object)(string.IsNullOrEmpty(element.Value) ? 0 : (int)Convert.ToUInt16(element.Value));
                    continue;

                case "uint32":
                    managementObject[element.Attribute((XName)"NAME").Value] = (object)(uint)(string.IsNullOrEmpty(element.Value) ? 0 : (int)Convert.ToUInt32(element.Value));
                    continue;

                case "uint64":
                    managementObject[element.Attribute((XName)"NAME").Value] = (object)(ulong)(string.IsNullOrEmpty(element.Value) ? 0L : (long)Convert.ToUInt64(element.Value));
                    continue;

                default:
                    continue;
                }
            }
            return(virtualHardDiskState);
        }