Мне нужно изменить MBR Windows, и я действительно хотел бы сделать это из Windows.
Вот мои вопросы. Я знаю, что могу получить дескриптор на физическом устройстве с помощью вызова CreateFile. Всегда ли MBR будет на \\. \ PHYSICALDRIVE0? Кроме того, я все еще изучаю Windows API для чтения непосредственно с диска. Являются ли readabsolutesectors и writeabsolutesectdors двумя функциями, которые мне понадобятся для чтения / записи в секторах диска, которые содержат MBR?
Править из того, что я узнал сам.
MBR не всегда будет на \\. \ PHYSICALDRIVE0. Также вы можете записать в загрузочный сектор (по крайней мере, с правами администратора в XP), вызвав CreateFile с именем устройства, на котором находится MBR. Кроме того, вы можете записать на этот диск, просто вызвав WriteFile и передав дескриптор устройства, созданного путем вызова CreateFile.
Изменить адрес Джоэл Coehoorn.
Мне нужно отредактировать MBR, потому что я работаю над проектом, который должен изменить аппаратные регистры после POST в BIOS, но до того, как Windows будет разрешено загружаться. Мы планируем внести эти изменения, изменив загрузчик так, чтобы он выполнял наш код перед загрузкой Windows.
Редактировать для Cd-MaN.
Спасибо за информацию. Однако в вашем ответе нет ничего такого, чего я не знал, и ваш ответ не отвечает на мой вопрос. В частности, реестр не будет делать то, что нам нужно, по нескольким причинам. Основная причина в том, что Windows - самый высокий уровень среди множества программных уровней, которые будут работать с нашим продуктом. Эти изменения должны произойти еще до запуска нижних уровней, поэтому реестр не будет работать.
P.S. для CD-MaN.
Насколько я понимаю, информация, которую вы предоставляете, не совсем верна. Для Vista, я думаю, вы можете записать на том, если сектора, в которые пишутся, являются загрузочными секторами. Смотри http://support.microsoft.com/kb/942448