Ошибка в переводе Iczelion'а

Тема в разделе "WASM.SITE", создана пользователем 2FED, 21 июл 2008.

  1. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    http://wasm.ru/article.php?article=1001024

    Наверное имелось ввиду "своя личная копия секции данных DLL!"
     
  2. Magnum

    Magnum New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2007
    Сообщения:
    925
    Вот как раз секция данных будет общей.
    А секция кода личной для каждой копии.
    Все верно.

    Смотри
    У секции данных стоит флаг shareable

    Это означает, что если дллка подгружена в несколько процессов (например A.exe и B.exe) и код процесса А что-то пишет в секцию данных длл, то автоматически эта запись отображается и в секции данных длл процесса B
    т.е. секция данных общая.

    Если же писать в секцию кода длл в процессе А, то никаких изменений в секции кода длл в процессе B не будет.
    Т.е. секция кода длл у каждой копии процесса своя личная
     
  3. Prince

    Prince New Member

    Публикаций:
    0
    Регистрация:
    9 июл 2008
    Сообщения:
    71
    2FED
    Сорсы WinNT и проекта ReactOS ведь "открыты"
    Покопай создание секции с SEC_IMAGE и все станет ясно, без чьих-либо комментариев
     
  4. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Но даже предложение само себе противоречит "То есть, все пpоцессы pазделяют одну копию секции кода, но у них будет своя личная копия секции кода DLL!" темболее читаем дальше "Вы можете подумать, что пpи сохpанении значения в пеpеменную в секции данных DLL, это значение получать все пpоцессы, загpузившие DLL в свое адpесное пpостpанство. Hа самом деле, это не так" Тут явно неувязочка, темболее я сам проверял что изменения в секция данных не приводят к изменениям в других процессах в которые загружена та же dll
     
  5. Guest

    Guest Guest

    Публикаций:
    0
    механизм COPYONWRITE?