/// <summary> /// Get the details of drive with specified device ID. /// </summary> /// <param name="deviceId">Device ID. e.g. PHYSICALDRIVE0</param> /// <param name="driveLetter"> /// A valid drive drive letter. /// This can be either uppercase or lowercase, 'a' to 'z'. /// </param> /// <returns>Drive Details</returns> private static DriveDetails GetDetails(string deviceId, char driveLetter) { DriveDetails details = new DriveDetails(); SelectQuery q1 = new SelectQuery("SELECT * FROM Win32_DiskDrive"); SelectQuery q2 = new SelectQuery("SELECT * FROM Win32_LogicalDisk"); ManagementObjectSearcher s1 = new ManagementObjectSearcher(q1); foreach (ManagementObject service in s1.Get()) { if (service["DeviceID"].ToString().Contains(deviceId)) { details.Model = service["Model"].ToString(); details.Signature = service["Signature"].ToString(); details.SerialNumber = service["SerialNumber"].ToString(); details.PNPDeviceID = service["PNPDeviceID"].ToString(); break; } } ManagementObjectSearcher s2 = new ManagementObjectSearcher(q2); foreach (ManagementObject service in s2.Get()) { if (service["DeviceID"].ToString().Contains(driveLetter.ToString())) { details.VolumeSerialNumber = service["VolumeSerialNumber"].ToString(); break; } } return(details); }
/// <summary> /// Get the details of drive with specified device ID. /// </summary> /// <param name="deviceId">Device ID. e.g. PHYSICALDRIVE0</param> /// <param name="driveLetter"> /// A valid drive drive letter. /// This can be either uppercase or lowercase, 'a' to 'z'. /// </param> /// <returns>Drive Details</returns> private static DriveDetails GetDetails(string deviceId, char driveLetter) { DriveDetails details = new DriveDetails(); SelectQuery q1 = new SelectQuery("SELECT * FROM Win32_DiskDrive"); SelectQuery q2 = new SelectQuery("SELECT * FROM Win32_LogicalDisk"); ManagementObjectSearcher s1 = new ManagementObjectSearcher(q1); foreach (ManagementObject service in s1.Get()) { if (service["DeviceID"].ToString().Contains(deviceId)) { details.Model = service["Model"].ToString(); details.Signature = service["Signature"].ToString(); details.SerialNumber = service["SerialNumber"].ToString(); details.PNPDeviceID = service["PNPDeviceID"].ToString(); break; } } ManagementObjectSearcher s2 = new ManagementObjectSearcher(q2); foreach (ManagementObject service in s2.Get()) { if (service["DeviceID"].ToString().Contains(driveLetter.ToString())) { details.VolumeSerialNumber = service["VolumeSerialNumber"].ToString(); break; } } return details; }