private void computer_HardwareAdded(IHardware hardware) { PackageHost.WriteInfo("Adding " + hardware.Name); if (hardware.HardwareType == HardwareType.HDD) { var hddName = "PHYSICALDRIVE" + hardware.Identifier.ToString().Replace("/hdd/", ""); var searcher = new ManagementObjectSearcher($"SELECT * FROM Win32_DiskDrive WHERE Name LIKE \"%{ hddName }\""); ManagementObject mo = searcher.Get().OfType <ManagementObject>().FirstOrDefault(); if (mo != null) { PackageHost.PushStateObject(hardware.Identifier.ToString(), new DiskDrive() { Name = this.GetWmiValue(mo, "Name"), Hardware = hardware.ToString(), SerialNumber = this.GetWmiValue(mo, "SerialNumber"), Model = this.GetWmiValue(mo, "Model"), Status = this.GetWmiValue(mo, "Status"), MediaType = this.GetWmiValue(mo, "MediaType"), Manufacturer = this.GetWmiValue(mo, "Manufacturer"), Caption = this.GetWmiValue(mo, "Caption") }); } } this.PushHardwaresList(); }