Exemple #1
0
        public static Storage From(Win32_DiskDrive win32DiskDrive, MSFT_PhysicalDisk msftPhysicalDisk, IEnumerable <Partition> partitions)
        {
            var output = new Storage();

            output.Capacity = win32DiskDrive.Size.HasValue
                ? win32DiskDrive.Size.Value / Constants.Gibibyte
                : Constants.DefaultNumericValue;
            output.DiskDriveMediaType = win32DiskDrive.MediaType;
            output.InterfaceType      = win32DiskDrive.InterfaceType;
            output.Caption            = win32DiskDrive.Caption;
            output.Capabilities       = win32DiskDrive.CapabilityDescriptions;
            output.Model                 = win32DiskDrive.Model;
            output.Partitions            = partitions;
            output.PhysicalDiskMediaType = PhysicalDiskMediaTypeDecoder.Decode(msftPhysicalDisk.MediaType ?? 0);
            output.BusType               = BusTypeDecoder.Decode(msftPhysicalDisk.BusType ?? 0);

            return(output);
        }
        private List<Win32_DiskDrive> GetDiskDrives()
        {
            ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
            ManagementObjectCollection collection = searcher.Get();

            var items = new List<Win32_DiskDrive>();
            foreach (ManagementObject obj in collection)
            {
                var item = new Win32_DiskDrive
                {
                    Availability = (ushort?)obj["Availability"],
                    BytesPerSector = (uint?)obj["BytesPerSector"],
                    Capabilities = (ushort[])obj["Capabilities"],
                    CapabilityDescriptions = (string[])obj["CapabilityDescriptions"],
                    Caption = (string)obj["Caption"],
                    CompressionMethod = (string)obj["CompressionMethod"],
                    ConfigManagerErrorCode = (uint?)obj["ConfigManagerErrorCode"],
                    ConfigManagerUserConfig = (bool?)obj["ConfigManagerUserConfig"],
                    CreationClassName = (string)obj["CreationClassName"],
                    DefaultBlockSize = (ulong?)obj["DefaultBlockSize"],
                    Description = (string)obj["Description"],
                    DeviceID = (string)obj["DeviceID"],
                    ErrorCleared = (bool?)obj["ErrorCleared"],
                    ErrorDescription = (string)obj["ErrorDescription"],
                    ErrorMethodology = (string)obj["ErrorMethodology"],
                    FirmwareRevision = (string)obj["FirmwareRevision"],
                    Index = (uint?)obj["Index"],
                    InstallDate = (DateTime?)obj["InstallDate"],
                    InterfaceType = (string)obj["InterfaceType"],
                    LastErrorCode = (uint?)obj["LastErrorCode"],
                    Manufacturer = (string)obj["Manufacturer"],
                    MaxBlockSize = (ulong?)obj["MaxBlockSize"],
                    MaxMediaSize = (ulong?)obj["MaxMediaSize"],
                    MediaLoaded = (bool?)obj["MediaLoaded"],
                    MediaType = (string)obj["MediaType"],
                    MinBlockSize = (ulong?)obj["MinBlockSize"],
                    Model = (string)obj["Model"],
                    Name = (string)obj["Name"],
                    NeedsCleaning = (bool?)obj["NeedsCleaning"],
                    NumberOfMediaSupported = (uint?)obj["NumberOfMediaSupported"],
                    Partitions = (uint?)obj["Partitions"],
                    PNPDeviceID = (string)obj["PNPDeviceID"],
                    PowerManagementCapabilities = (ushort[])obj["PowerManagementCapabilities"],
                    PowerManagementSupported = (bool?)obj["PowerManagementSupported"],
                    SCSIBus = (uint?)obj["SCSIBus"],
                    SCSILogicalUnit = (ushort?)obj["SCSILogicalUnit"],
                    SCSIPort = (ushort?)obj["SCSIPort"],
                    SCSITargetId = (ushort?)obj["SCSITargetId"],
                    SectorsPerTrack = (uint?)obj["SectorsPerTrack"],
                    SerialNumber = (string)obj["SerialNumber"],
                    Signature = (uint?)obj["Signature"],
                    Size = (ulong?)obj["Size"],
                    Status = (string)obj["Status"],
                    StatusInfo = (ushort?)obj["StatusInfo"],
                    SystemCreationClassName = (string)obj["SystemCreationClassName"],
                    SystemName = (string)obj["SystemName"],
                    TotalCylinders = (ulong?)obj["TotalCylinders"],
                    TotalHeads = (uint?)obj["TotalHeads"],
                    TotalSectors = (ulong?)obj["TotalSectors"],
                    TotalTracks = (ulong?)obj["TotalTracks"],
                    TracksPerCylinder = (uint?)obj["TracksPerCylinder"]
                };

                items.Add(item);
            }

            return items;
        }