Общая память процессов.

Тема в разделе "WASM.NT.KERNEL", создана пользователем Denwer, 9 фев 2008.

  1. Denwer

    Denwer New Member

    Публикаций:
    0
    Регистрация:
    20 дек 2006
    Сообщения:
    104
    Не могу вспомнить адрес страницы памяти, которая общая для всех процессов. Там еще лежит путь , куда установлена винда. Может у кого нить в голове эта цифирька завалялась?
     
  2. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    KUSER_SHARED_DATA, 7FFE0000h, поле NtSystemRoot
    Есть еще разделяемая память csrss:
    [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\SubSystems
    'SharedSection'
     
  3. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    В режиме ядра можно определить из MmHighestUserAddress или MmUserProbeAddress.
     
  4. tylerdurden

    tylerdurden New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2004
    Сообщения:
    322
    Незачем там что-то определять, все уже определенно
    #define KI_USER_SHARED_DATA ((ULONG_PTR)(KADDRESS_BASE + 0xFFFE0000))
     
  5. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Ну еще для всех процессов общие 80000000-BBFFFFFF,C0000000-FFFFFFFF =D
     
  6. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Константы определены можно и их использовать, но роблемы с совместимостью никому не нужны;
    Даже в ядре они используются минимально - к примеру взять функции ZwXX, они проверяют корректность указателей не сравнением с константами, а с переменными.