перенаправление файла в память

Тема в разделе "WASM.BEGINNERS", создана пользователем ltshck, 24 янв 2008.

  1. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    в приложении есть функция.
    она работает с файлом.

    Myfunction.read("C:\\file.txt");

    как, изменив имя файла направить ее в файл?
    т.е. чтобы при обращении на открытие файла (CreateFile само собой винда вызывает при открытии этого файла)
    функция реально работала с памятью?

    т.е. есть

    usingned char[] memory_file = {0x12, 0x13, 0x14, 0x15};
    Myfunction.read( Memory_file_buf (memory_file) );

    как перехватить обращение к этому файлу и подсунуть туда память?

    надеюсь ясно излагаю.

    memory_file сохранить в файл с именем C:\\file.txt не вариант.

    Язык : C++
     
  2. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    Перехватить CreateFile/ReadFile.
     
  3. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    ltshck
    Написать класс, производный от какого нибудь интерфейса IFile?
    Код (Text):
    1. class cMemoryFile : public IFile {
    2. ...
    3. };
     
  4. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    вот перехватить CreateFile уже ближе...

    но незачем.

    Myfunction.read(...)

    лежит в myfunction.lib

    есть ее header файл а исходов нет...

    а нельзя ли завести какойнибудь Алиас для памяти?

    например \\?\\....\\31652684
    чтобы при обращении к этому имени как к файлу
    шло обращение к памяти по адресу 31652684 , само собой в адресном пространстве этого exe.
     
  5. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    было бы красиво... и вообще кайф :)
     
  6. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    ltshck
    Ну можете попробовать создать именованый пайп и подсунуть вместо имени файла.
    Подробности в MSDN.
     
  7. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    попробую.

    а есть аналог //dev/mem ?

    может чтото такое?
     
  8. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    ltshck
    Device\PhisicalMemory

    А не проще создать ramdrive? Плюс можно подмаунтить его в любой пустой каталог, то есть, ни патчить, не перехватывать ничего не надо.

    Можно, но возиться дольше надо.