Re: Можно ли изменить размер файла в режиме ядра?
От: ononim  
Дата: 20.10.14 18:04
Оценка: +1
S>И того сейчас так
S>strlen(origBuf) = strlen(swappedBuffer) = 64 байт
S>в реале, для нашего примера, должно быть так
S>strlen(origBuf) = 55 байт, а strlen(swappedBuffer) = 64 байт
S>нужно как-то такое обойти, но не могу найти или придумать что-либо как усечь размер origBuf до нужно нам размера.
S>Вообще можно смухлевать в драйвере с размерами файлов?

FLT_CALLBACK_DATA::IoStatus::Information, не?
+ еще надо будет подмухлевывать результаты IRP_MJ_QUERY_INFORMATION дабы EndOfFile возвращать корректный в FILE_STANDARD_INFORMATION. А еще — IRP_MJ_DIRECTORY_CONTROL, потому что в списке файлов в директории тоже размер возвращается. Изменение размера файла делается при помощи IRP_MJ_SET_INFORMATION/FileEndOfFileInformation — уверен вы не хотите чтобы приложения падали, увидев в только что отращенном хвосте файла некий мусор вместо ожидаемых нуликов.
Для затравки хватит, а потом придет x64 и все толком расскажет, если сами к тому времени не нагуглите примеры, которых, я уверен, в инете валом.
Как много веселых ребят, и все делают велосипед...
Отредактировано 20.10.2014 18:10 ononim . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.