J'essaie de modifier une clé de registre à laquelle on m'a dit de contrôler si la mise en cache d'écriture est activée sur des disques durs particuliers. La clé doit être: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\IDE\<DiskName>\<SerialNo>\Device Parameters\Disk\UserWriteCacheSetting
Ecriture dans le registre (HKEY_LOCAL_MACHINE) sous XP
Cependant, je continue d'avoir des problèmes lors de la création de cette clé (car elle n'existe pas par défaut). Si j'essaie d'ouvrir le ...\Device Parameters\Disk\
avec un accès en écriture, j'obtiens une erreur SecurityException; "L'accès au registre demandé n'est pas autorisé". Maintenant, j'ai ajouté le drapeau <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
à mon fichier manifeste afin de m'assurer que j'ai un accès administrateur, mais je n'ai toujours pas de chance.
Toutes les idées seraient géniales!
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;
}
Êtes-vous administrateur sur cette machine? – Vadim
Oui, sur ma machine dev et la machine cible que je suis. – Siyfion
Vous ouvrez la sous-clé de disque avec createsubkey()? – tanascius