Я написал утилиту для диска, которая позволила вам стереть все физические диски. он использует окно файл апи, вызывая:не может записать на физический диск в win 7?
destFile = CreateFile("\\\\.\\PhysicalDrive1",
GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, OPEN_EXISTING,createflags, NULL);
, а затем просто звонит WriteFile
, и убедившись, что вы пишете в упаковке секторов, то есть 512 байт.
Это прекрасно работало в прошлом, на XP и даже на Win7 RC, все, что вам нужно сделать, это убедиться, что вы используете его как администратора.
, но теперь у меня есть розничная лицензия Win7, она больше не работает! диски все еще открыты для записи, но вызов WriteFile
на успешно открывшемся диске теперь не удается!
Кто-нибудь знает, почему это может быть? может ли это иметь какое-то отношение к открытию его с помощью общих флагов? это всегда то, что я делал раньше, и это сработало. может быть, что-то теперь делится диском? блокировать записи? есть ли способ правильно «размонтировать» диск или, по крайней мере, разделы на нем, чтобы у меня был эксклюзивный доступ к нему?
Некоторые другие инструменты, которые раньше работали, тоже не работают, но некоторые делают, например, функцию стирания WD Diagnostic. и после того, как он стирает диск, мой инструмент затем работает и на нем! заставив меня поверить, что есть какой-то процесс «размонтировать», который мне нужно сделать с приводом, чтобы освободить разрешение на его запись.
Любые идеи?
Update:
возвращается код ошибки из WriteFile
является «5», ERROR_ACCESS_DENIED
, но опять же, если я «Стирание» диск первого использования WD Diag, я могу получить доступ и записать на диск штрафа. когда я снова инициализирую диск и даю ему раздел, я возвращаюсь к ошибке ERROR_ACCESS_DENIED
.
Пожалуйста, сообщите нам код ошибки или сообщение. – jweyrich
@jweyrich: ошибка: ERROR_ACCESS_DENIED – matt
Мое предложение - проверить, имеет ли UAC что-то с этим. Попробуйте отключить его и повторно запустить приложение. Прокомментируйте результаты. – jweyrich