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 и все толком расскажет, если сами к тому времени не нагуглите примеры, которых, я уверен, в инете валом.
Как много веселых ребят, и все делают велосипед...