enumerate disk drives
Published: 8. February 2012 | Updated: 8. February 2012License: Microsoft Public License (MS-PL)
Categories: Windows » Hardware
Tags: C# Hardware Windows WMI
Import namespaces
using System; using System.Collections.Generic; using System.Management; // requires adding System.Management reference to project
Code
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(); item.Availability = (ushort?)obj["Availability"]; item.BytesPerSector = (uint?)obj["BytesPerSector"]; item.Capabilities = (ushort[])obj["Capabilities"]; item.CapabilityDescriptions = (string[])obj["CapabilityDescriptions"]; item.Caption = (string)obj["Caption"]; item.CompressionMethod = (string)obj["CompressionMethod"]; item.ConfigManagerErrorCode = (uint?)obj["ConfigManagerErrorCode"]; item.ConfigManagerUserConfig = (bool?)obj["ConfigManagerUserConfig"]; item.CreationClassName = (string)obj["CreationClassName"]; item.DefaultBlockSize = (ulong?)obj["DefaultBlockSize"]; item.Description = (string)obj["Description"]; item.DeviceID = (string)obj["DeviceID"]; item.ErrorCleared = (bool?)obj["ErrorCleared"]; item.ErrorDescription = (string)obj["ErrorDescription"]; item.ErrorMethodology = (string)obj["ErrorMethodology"]; item.FirmwareRevision = (string)obj["FirmwareRevision"]; item.Index = (uint?)obj["Index"]; item.InstallDate = (DateTime?)obj["InstallDate"]; item.InterfaceType = (string)obj["InterfaceType"]; item.LastErrorCode = (uint?)obj["LastErrorCode"]; item.Manufacturer = (string)obj["Manufacturer"]; item.MaxBlockSize = (ulong?)obj["MaxBlockSize"]; item.MaxMediaSize = (ulong?)obj["MaxMediaSize"]; item.MediaLoaded = (bool?)obj["MediaLoaded"]; item.MediaType = (string)obj["MediaType"]; item.MinBlockSize = (ulong?)obj["MinBlockSize"]; item.Model = (string)obj["Model"]; item.Name = (string)obj["Name"]; item.NeedsCleaning = (bool?)obj["NeedsCleaning"]; item.NumberOfMediaSupported = (uint?)obj["NumberOfMediaSupported"]; item.Partitions = (uint?)obj["Partitions"]; item.PNPDeviceID = (string)obj["PNPDeviceID"]; item.PowerManagementCapabilities = (ushort[])obj["PowerManagementCapabilities"]; item.PowerManagementSupported = (bool?)obj["PowerManagementSupported"]; item.SCSIBus = (uint?)obj["SCSIBus"]; item.SCSILogicalUnit = (ushort?)obj["SCSILogicalUnit"]; item.SCSIPort = (ushort?)obj["SCSIPort"]; item.SCSITargetId = (ushort?)obj["SCSITargetId"]; item.SectorsPerTrack = (uint?)obj["SectorsPerTrack"]; item.SerialNumber = (string)obj["SerialNumber"]; item.Signature = (uint?)obj["Signature"]; item.Size = (ulong?)obj["Size"]; item.Status = (string)obj["Status"]; item.StatusInfo = (ushort?)obj["StatusInfo"]; item.SystemCreationClassName = (string)obj["SystemCreationClassName"]; item.SystemName = (string)obj["SystemName"]; item.TotalCylinders = (ulong?)obj["TotalCylinders"]; item.TotalHeads = (uint?)obj["TotalHeads"]; item.TotalSectors = (ulong?)obj["TotalSectors"]; item.TotalTracks = (ulong?)obj["TotalTracks"]; item.TracksPerCylinder = (uint?)obj["TracksPerCylinder"]; items.Add(item); }
Class
public class Win32_DiskDrive { public ushort? Availability; public uint? BytesPerSector; public ushort[] Capabilities; public string[] CapabilityDescriptions; public string Caption; public string CompressionMethod; public uint? ConfigManagerErrorCode; public bool? ConfigManagerUserConfig; public string CreationClassName; public ulong? DefaultBlockSize; public string Description; public string DeviceID; public bool? ErrorCleared; public string ErrorDescription; public string ErrorMethodology; public string FirmwareRevision; public uint? Index; public DateTime? InstallDate; public string InterfaceType; public uint? LastErrorCode; public string Manufacturer; public ulong? MaxBlockSize; public ulong? MaxMediaSize; public bool? MediaLoaded; public string MediaType; public ulong? MinBlockSize; public string Model; public string Name; public bool? NeedsCleaning; public uint? NumberOfMediaSupported; public uint? Partitions; public string PNPDeviceID; public ushort[] PowerManagementCapabilities; public bool? PowerManagementSupported; public uint? SCSIBus; public ushort? SCSILogicalUnit; public ushort? SCSIPort; public ushort? SCSITargetId; public uint? SectorsPerTrack; public string SerialNumber; public uint? Signature; public ulong? Size; public string Status; public ushort? StatusInfo; public string SystemCreationClassName; public string SystemName; public ulong? TotalCylinders; public uint? TotalHeads; public ulong? TotalSectors; public ulong? TotalTracks; public uint? TracksPerCylinder; }
| Send us feedback about this snippet » |





