Я пытаюсь изменить раздел реестра, который, как мне сказали, управляет включением кэширования записи на определенных жестких дисках. Ключ должен быть: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\IDE\<DiskName>\<SerialNo>\Device Parameters\Disk\UserWriteCacheSetting
Однако у меня продолжают возникать проблемы при попытке создать этот ключ (так как он не существует по умолчанию). Если я пытаюсь открыть ...\Device Parameters\Disk\
с правами на запись, я получаю ошибку SecurityException; Msgstr "Запрашиваемый доступ к реестру не разрешен". Теперь я добавил флаг <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
в мой файл манифеста, чтобы обеспечить мне доступ администратора, но мне все еще не повезло.
Любые идеи были бы великолепны!
static void Main(string[] args)
{
RegistryKey myKey = Registry.LocalMachine.OpenSubKey("SYSTEM\\CurrentControlSet\\Enum\\IDE\\");
foreach (string driveManafacturer in myKey.GetSubKeyNames())
{
RegistryKey driveKey = myKey.OpenSubKey(driveManafacturer);
foreach (string driveID in driveKey.GetSubKeyNames())
{
RegistryKey driveIDKey = driveKey.OpenSubKey(driveID, true);
string driveType = (string)driveIDKey.GetValue("Class");
if (driveType == "DiskDrive")
{
RegistryKey tempKey = driveIDKey.OpenSubKey("Device Parameters\\Disk\\", true);
if (tempKey == null)
{
tempKey = driveIDKey.CreateSubKey("Device Parameters\\Disk\\");
tempKey.SetValue("UserWriteCacheSetting", 0x0);
}
}
}
}
return;
}