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

Вниз

Получить содержимое заблокированного файла   Найти похожие ветки 

 
rainbow_d   (2007-10-28 23:33) [0]

Суть проблемы. Создается пустой файл, после чего доступ к файлу блокируется на уровне ОС и производится запись данных, а за тем файл закрывается, через какое-то время с него снимается блоикировка и он удаляется..

Каким образом можно получить содержимое этого файла после записи в него данных?

Перепробовал все, что только можно..Пробовал делать copyfile при обновлении даты последнего изменения, пробовал постоянно получать к файлу доступ и копировать в случае, если он получен. пробовал вычислять размер файла и копировать его, если размер больше 0 кб.  Ничего не помогло, или получаю пустой файл или программа виснет :(


 
Andrey_rus ©   (2007-10-29 02:57) [1]

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


 
Германн ©   (2007-10-29 03:05) [2]

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


 
vpbar ©   (2007-10-29 08:32) [3]

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


 
Игорь Шевченко ©   (2007-10-29 10:55) [4]


> Каким образом можно получить содержимое этого файла после
> записи в него данных?


ReadDirectoryChangesW не поможет ?


 
MetalFan ©   (2007-11-01 09:50) [5]

пиши драйвер... и/или лезь в Ring0... по другому имхо до файла не достать...


 
Riply ©   (2007-11-01 10:07) [6]

> [5] MetalFan ©   (01.11.07 09:50)
> пиши драйвер... и/или лезь в Ring0... по другому имхо до файла не достать...
Достать-то можно. Вот только стоит ли овчинка выделки ? :)


 
apic   (2007-11-01 12:59) [7]

Ни какой драйвер нафик писать не надо. Есть исходник на wasm.ru, только на Си. Кто умеет переделывать с Си на Делфи у того нет проблем. Модуль тоже скачать в инете можно (сказать, что в делфи по сравнению Си нет некоторых модулей - вообще промолчать). Я пробывал написать что-то подобное и модуль скачал и дополнил его, но исходник толком не перевел на делфи (с Си у меня огромные проблемы) и бросил я это дело. А вообще с железом ВСЕ можно делать с помощью функции DeviceIoControl (особенно если дело касается дисковых устройств) и никакой Ring0 нафик не нужен, только примеров по работе с DeviceIoControl нигде найти не возможно. С помощью этой функции пишутся дифрагментаторы, программы для копирования защищенных или программно заблокированных файлов, у меня лично есть примерчик блокировки CD-ROM"а и т.д. и т.п.


 
tesseract ©   (2007-11-01 13:32) [8]


> А вообще с железом ВСЕ можно делать с помощью функции DeviceIoControl
> (особенно если дело касается дисковых устройств


С данными на дисках работают через CreateFile. DeviceIoControl служит для посылки драйверу команд. У каждого драйвера они свои, так что фанатеть по ней не стоит.


>  С помощью этой функции пишутся дифрагментаторы, программы
> для копирования защищенных или программно заблокированных
> файлов,


А чего  его сразу не через int21 ? Дефрагментаторы для Windows 2k+  пишуться через API Windows.


 
Riply ©   (2007-11-01 21:20) [9]

> [7] apic   (01.11.07 12:59)
> только примеров по работе с DeviceIoControl нигде найти не возможно.
А самому написать ? Там на каждую команду две, ну три строчки :)
И ничего сложного. Почти все команды документированы и есть в Help`е.
Функция ReadFile на порядок сложнее. :)

>С помощью этой функции пишутся дифрагментаторы,
>программы для копирования защищенных или программно заблокированных файлов,

Ты бы хоть "imho", а то некоторые могут воспрнять подобные утверждения за чистую монету :)
Как ты с ее помощью собрался прочитать файл, который не открыть даже с FILE_ANY_ACCESS ?
А без Handle`а этого файла, тебе никакая DeviceIoControl не поможет.
Вытаскивать Handle из чужого процесса и "дупликатить" его врядли тебе позволят,
если уж позаботились о блокировке файла (уж не говоря о том, что этого Handle`а там может и не быть).


 
Leonid Troyanovsky ©   (2007-11-01 21:32) [10]


> Riply ©   (01.11.07 21:20) [9]

> Вытаскивать Handle из чужого процесса и "дупликатить" его
> врядли тебе позволят

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

--
Regards, LVT.


 
Riply ©   (2007-11-01 22:18) [11]

>[10] Leonid Troyanovsky ©   (01.11.07 21:32)
> Необязательно вытаскивать оттуда хендл файла,
> достаточно хендла его проекции только для чтения .

Sorry... Поторопилась. :)



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

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

Наверх





Память: 0.47 MB
Время: 0.012 c
2-1214936641
Boston
2008-07-01 22:24
2008.08.03
Окно настроек


6-1191397323
Gydvin
2007-10-03 11:42
2008.08.03
Узнать IP


15-1213538221
AenorRisen
2008-06-15 17:57
2008.08.03
Центрирование повернутого текста


10-1139646655
_Seldon_
2006-02-11 11:30
2008.08.03
Delphi+Visio


15-1213656789
Riply
2008-06-17 02:53
2008.08.03
NTSTATUS в С++





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский