示例#1
0
 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);
 }
示例#2
0
 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);
 }