Господа, возможно ли из-под драйвера ("в стиле NT", legacy) подменить иконку файла и его размер? Если да, то что для этого нужно, что перехватывать и т.п.? Спасибо.
для подмены размера нужно либо аттачиться к стеку файловой системы (тое сть писать драйвер-фильтр), либо перехваывать ZwQueryInformationFile, либо перехватывать сразу MajorFunction[] у драйвера файловой системы. чтобы иконку - это уже сильно труднее. если это экзешник, то придется както перехватывать работу с ресурсами, если не экзешник - то там еще хуже. в любом случае это оч сложно
перехваывать ZwQueryInformationFile смотрится как-то интереснее. А какое поле за это отвечает? EndOfFile?
Т.е. связываться не стОит? Речь идет не о ресурсах, а только о тех иконках что подставляются системой. Казалось это возможно.....
dr_ivers из драйвера это еще хлеще,чем из юзермода на самом деле это не самый надежный вариант. а ты посмотри разные коды File***Information. Там в некоторых из них есть поля и EndOfFile и FileSize и как они только незовутся. надо везде всё подменить.
Посмотрел все классы, но так ничего кроме EndOfFile не нашел. Есть еще AllocationSize но его сути пока еще не понял.
Хукай реестр, путь к иконкам в реестре, HKEY_CLASSES_ROOT, там лежат ".расширение_файла", берешь в этом разделе с расширением файла дефолтовый параметр и находишь раздел с таким же именем что и значение параметра в этой же ветке (HKEY_CLASSES_ROOT). В этом разделе будет подраздел DefaultIcon, в нем дефолтный параметр - путь к иконке. Например: HKEY_CLASSES_ROOT\.7z - WinRAR HKEY_CLASSES_ROOT\WinRAR\DefaultIcon - C:\Program Files (x86)\WinRAR\WinRAR.exe,0
im1111 Гуд, спасибо. Так какое же все-таки поле в классах ZwQueryInformationFile отвечает за размер файла?