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; }