public static bool FindVolumeDosDeviceNameBySignature(byte[] signature, ref string volumeOut) { using (RegistryKey registryKey = Registry.LocalMachine.OpenSubKey("SYSTEM\\MountedDevices")) { foreach (string valueName in registryKey.GetValueNames()) { if (CVolume.SameSequence((byte[])registryKey.GetValue(valueName, (object)new byte[0]), signature) && valueName.Contains("DosDevices")) { volumeOut = valueName; return(true); } } } return(false); }
public static bool FindVolumeSymboliclinkBySignature(byte[] signature, ref string volumeOut) { using (RegistryKey registryKey = Registry.LocalMachine.OpenSubKey("SYSTEM\\MountedDevices")) { foreach (string valueName in registryKey.GetValueNames()) { if (CVolume.SameSequence((byte[])registryKey.GetValue(valueName, (object)new byte[0]), signature) && valueName.Length == 48 && valueName.StartsWith("\\??\\")) { volumeOut = valueName; return(true); } } } return(false); }