Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.10.19;
Скачать: [xml.tar.bz2];

Вниз

Visra. Прямая запись на raw диск. Только через драйвер?   Найти похожие ветки 

 
Kent   (2008-08-27 15:22) [0]

Имею программу которая затирает файлы. Сжатый файл нужно затирать только на прямую на Raw диск.  Под XP все было замечательно. Под Вистой же затык. Слышал что можно записать на диск через сервис, который запущен под правами Systеm.  Так ли это, или нужно писать низкоуровневый драйвер?
Если кто сталкивался, ткните pls в ссылку MSDN где об этом написано.


 
ЛшдлуттнСфе   (2008-08-27 16:15) [1]

Удалено модератором


 
Kent   (2008-08-27 16:23) [2]

Удалено модератором


 
guav ©   (2008-08-27 16:45) [3]

> Сжатый файл нужно затирать только на прямую на Raw диск.

Что значит "напрямую на Raw диск" ? Лучше не умничать, а написать конкретно, вызывается ли CreateFile, для какого устройства, потом дальше что делается...

> ткните pls в ссылку MSDN где об этом написано.

http://search.msdn.microsoft.com/Default.aspx?query=UAC&brand=msdn&locale=en-us&refinement=


 
Kent   (2008-08-27 17:51) [4]

Да я и не думал умничать.. Хм.

Открываю логический диск с помощью CreateFile с правами Write.
Под XP все работает, пишет туда куда указано. А вот под вистой - возвращает - нет доступа.

Права админа не помогают. Отключени UAC тоже.

MSDN CreateFile:
Direct access to the disk or to a volume is restricted (Vista).
Windows Server 2003 and Windows XP/2000:  Direct access to the disk or to a volume is not restricted.

A file system can write to a volume handle only if the following conditions are true:

Condition 1: The sectors that are being written to are boot sectors.

Condition 2: The sectors that are being written to reside outside the file system space.

Condition 3: The volume has been locked implicitly by requesting exclusive write access.
Condition 4: The volume has been locked explicitly by requesting a lock request or an unmount request.
Condition 5: The write request has a SL_FORCE_DIRECT_WRITE flag that indicates that Condition 2 must be bypassed.


 
Kent   (2008-08-27 17:52) [5]


> Что значит "напрямую на Raw диск" ?


А это как раз и значит. Напрямую на Raw диск. Т.е. в обход файловой системы. Т.е. Открыть диск и сделать WriteFile.


 
Kent   (2008-08-27 17:54) [6]

Так вот. Для того чтобы можно было записать данные на раздел не блокируя его (т.к. большниство разделов не блокируются), нужно писать драйвер или как?


 
shlst   (2008-08-27 17:58) [7]

автор, не забывай "затирать" и имена файлов тоже,
а то получится "как я потрачу краденный миллион.doc" :)
и перед своими попытками(или после) обязательно воспользуйся программами профессиональных производителей подобного софта.

а я перешёл на рам-диск, там не надо затирать :)
но обидно то, что сейчас и нечего.


 
Kent   (2008-08-27 18:25) [8]


> автор, не забывай "затирать" и имена файлов тоже,


Знаю знаю. И потоки втч. Уже и так работает. Но вот сжатые файлы...


 
Kent   (2008-08-27 18:30) [9]

Даже затирает FAT записи и MFT записи удаленные (тут можно обойтись без прямого доступа к диску). Но вот как затереть сжатые файлы без прямого доступа на диск...


 
guav ©   (2008-08-27 18:46) [10]

> [9] Kent   (27.08.08 18:30)
> и MFT записи удаленные

и индексы директорий ? и даже это http://www.osronline.com/showThread.cfm?link=54720 ?
если да, что что за продукт, если не секрет ?

по теме: не знал об этом ограничении.
возможно, если разобраться как chkdsk или partition magic запускается во время загрузки, можно обойтись без драйвера.
также (очень кривая, возможно нерабочая) идея насчёт сжатых файлов: узнавать кластера, удалять, создавать файл в 1 кластер, ставить его через FSCTL_MOVE_FILE в каждый из кластеров сжатого.


 
Kent   (2008-08-27 20:09) [11]

и индексы директорий ? и даже это http://www.osronline.com/showThread.cfm?link=54720 ?

А почему индексы не будут удалятся?  они находятся в стандартных записях MFT также как и файлы. Т.е. если директория отмечена как удаленная (MFT запись), тогда там можно создать новую запись, затерев предыдущую (тот самый аттрибут с индексами).

Нет, с Log файла не удаляет. Пока руки не дошли.


> по теме: не знал об этом ограничении.
> возможно, если разобраться как chkdsk или partition magic
> запускается во время загрузки, можно обойтись без драйвера.
>


Это Native API - здесь уже придется работать только с ним. Да и юзер придется напрягать, - просить дабы он рестартонулся. Т.е. хочешь удалить файл - иди на рестрат.


> также (очень кривая, возможно нерабочая) идея насчёт сжатых
> файлов: узнавать кластера, удалять, создавать файл в 1 кластер,
>  ставить его через FSCTL_MOVE_FILE в каждый из кластеров
> сжатого.


Хм, интересно. Надо будет разобрать. Спасибо за совет.


 
guav ©   (2008-08-27 20:28) [12]

> [11] Kent   (27.08.08 20:09)
> А почему индексы не будут удалятся?  они находятся в стандартных
> записях MFT также как и файлы.

Аттрибут $INDEX_ALLOCATION нерезидентен и не находится в MFT. У директории в аттрибутах :$I30:$INDEX_ROOT - :$I30:$INDEX_ALLOCATION хранятся имена содержащихся в ней файлов.


 
Kent   (2008-08-27 20:52) [13]


> У директории в аттрибутах :$I30:$INDEX_ROOT - :$I30:$INDEX_ALLOCATION
> хранятся имена содержащихся в ней файлов.


А $INDEX_ALLOCATION лежит на кластере, который затирается при затирании свободного места диска. - Т.е. да согласен это уже другая история.


 
Kent   (2008-08-28 13:26) [14]

Ну вобщем насколько я понял действительно нет путей, кроме написания драйвера с выходом на нулевое кольцо. Ну кроме разве что FSCTL_MOVE_FILE. Ну это немного через Владивосток.


 
miek   (2008-08-28 17:30) [15]

>а я перешёл на рам-диск, там не надо затирать :)

ну да, в теории не дао. а на практике почитай-ка на досуге статьишки про cold-boot hack (вроде так называется)


 
Kent   (2008-08-30 15:13) [16]


> и индексы директорий ? и даже это http://www.osronline.com/showThread.
> cfm?link=54720 ?


Кстати, имена файлов затирать особого смысла и нет. К примеру создаем файл с уникальным именем. Ждем миниту, удаляем, далее ищем по всему диску это имя, и находим его в нескольких местах - служба индексации, служба восстановления, логгер и еще в трех местах.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2008.10.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.007 c
15-1219338554
Sergey Masloff
2008-08-21 21:09
2008.10.19
Несколько вакансий. Москва. Delphi, Oracle. Не гуру


15-1219912790
ищущий
2008-08-28 12:39
2008.10.19
Должностная инструкция инженера ИВТ


15-1220089316
Kostafey
2008-08-30 13:41
2008.10.19
С днем рождения ! 30 августа


2-1221212975
Alex_C
2008-09-12 13:49
2008.10.19
Установить формат даты и времени


4-1198242400
Dim07
2007-12-21 16:06
2008.10.19
Готовность принтера





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский