To answer the question:
How do I use Microsoft Management Infrastructure to access CIM or WMI data in a C# WPF app?
Use the System.Management Namespace. I do not know why they are saying Microsoft.Management.Infrastructure. Be sure to add both a using and a reference for System.Management. The following code will list the USB drives.
SelectQuery q = new SelectQuery("SELECT * FROM Win32_DiskDrive Where InterfaceType='USB'");
ManagementObjectSearcher s = new ManagementObjectSearcher(q);
StringBuilder sb = new StringBuilder();
foreach (ManagementObject drive in s.Get())
{
sb.Append($"{drive["caption"]} | {drive["MediaType"]}\r\n");
}
InfoBox.Text = sb.ToString();
Also if you do not know about the WMI Explorer then get that; it is worth trying. It will take a little time to learn how to use but it can be very useful.