特定のハード ドライブで書き込みキャッシュを有効にするかどうかを制御すると言われているレジストリ キーを変更しようとしています。キーは次のとおりです。HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\IDE\<DiskName>\<SerialNo>\Device Parameters\Disk\UserWriteCacheSetting
ただし、このキーを作成しようとすると問題が発生し続けます (デフォルトでは存在しないため)。...\Device Parameters\Disk\
書き込みアクセスでを開こうとすると、SecurityException エラーが発生します。「要求されたレジストリ アクセスは許可されていません」。管理者アクセス権を確保するためにマニフェスト ファイルにフラグを追加しました<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;
}