Skip to content

Commit 6cdb615

Browse files
committed
replace built-in WMI provider with trim-compatible WmiLight package
1 parent 69ccc9e commit 6cdb615

File tree

2 files changed

+10
-13
lines changed

2 files changed

+10
-13
lines changed

Ps3DiscDumper/Dumper.cs

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Collections.Generic;
33
using System.Collections.Immutable;
44
using System.Collections.Specialized;
5+
using System.Diagnostics.CodeAnalysis;
56
using System.IO;
67
using System.Linq;
78
using System.Net.Http;
@@ -23,6 +24,7 @@
2324
using Ps3DiscDumper.Sfo;
2425
using Ps3DiscDumper.Utils;
2526
using Ps3DiscDumper.Utils.MacOS;
27+
using WmiLight;
2628
using FileInfo = System.IO.FileInfo;
2729

2830
namespace Ps3DiscDumper;
@@ -130,23 +132,22 @@ private List<string> EnumeratePhysicalDrivesWindows()
130132
throw new NotImplementedException("This should never happen, shut up msbuild");
131133

132134
var physicalDrives = new List<string>();
133-
#if !TRIMMED
134135
try
135136
{
136-
using var physicalMediaQuery = new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
137-
var drives = physicalMediaQuery.Get();
137+
using var wmiConnection = new WmiConnection();
138+
var drives = wmiConnection.CreateQuery("SELECT * FROM Win32_PhysicalMedia");
138139
foreach (var drive in drives)
139140
{
140-
if (drive.Properties["Tag"].Value is string tag
141+
if (drive["Tag"] is string tag
141142
&& tag.StartsWith(@"\\.\CDROM"))
142143
physicalDrives.Add(tag);
143144
}
144-
using var cdromQuery = new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_CDROMDrive");
145-
drives = cdromQuery.Get();
145+
drives = wmiConnection.CreateQuery("SELECT * FROM Win32_CDROMDrive");
146146
foreach (var drive in drives)
147147
{
148148
// Name and Caption are the same, so idk if they can be different
149-
Log.Info($"Found optical media drive {drive.Properties["Name"].Value} ({drive.Properties["Drive"].Value})");
149+
var logicalUnit = drive["SCSILogicalUnit"]?.ToString();
150+
Log.Info($@"Found optical media drive {drive["Name"]} ({drive["Drive"]}; \\.\CDROM{logicalUnit})");
150151
}
151152
}
152153
catch (Exception e)
@@ -155,10 +156,6 @@ private List<string> EnumeratePhysicalDrivesWindows()
155156
for (var i = 0; i < 32; i++)
156157
physicalDrives.Add($@"\\.\CDROM{i}");
157158
}
158-
#else
159-
for (var i = 0; i < 32; i++)
160-
physicalDrives.Add($@"\\.\CDROM{i}");
161-
#endif
162159
return physicalDrives;
163160
}
164161

Ps3DiscDumper/Ps3DiscDumper.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
<EmbeddedResource Include="..\*Disc?Keys*.zip" Visible="True" />
1515
</ItemGroup>
1616

17-
<ItemGroup Condition="'$(PublishTrimmed)' != 'true'">
18-
<PackageReference Include="System.Management" Version="9.0.4" />
17+
<ItemGroup>
18+
<PackageReference Include="WmiLight" Version="6.13.0" />
1919
</ItemGroup>
2020

2121
<ItemGroup>

0 commit comments

Comments
 (0)