Доступ к затенённой памяти из под XP.

Тема в разделе "WASM.BEGINNERS", создана пользователем Arisu, 30 июл 2008.

  1. Arisu

    Arisu Алиса Селезнёва

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    89
    Вопрос: какой самый простой способ доступа к затененной области оперативной памяти из винды?
    Есть ли возможность записать/прочесть затенённую память из пользовательского режима? или ради записи одного байта в память придёться ваять драйвер/сервис ?
     
  2. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Имеешь ввиду Физическую память? тогда \Device\PhysicalMemory
     
  3. CrystalIC

    CrystalIC New Member

    Публикаций:
    0
    Регистрация:
    26 июл 2008
    Сообщения:
    500
    Arisu
    Что вы имеете ввиду под "затененной областтю памяти" ?
     
  4. Arisu

    Arisu Алиса Селезнёва

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    89
    2FED
    что "\Device\PhysicalMemory" ??? )) можно поточнее? в DDK я видел всякие страшные функции типа mmMapIoSpace, но они выглядят слишком страшно, да ещё и без всяких примеров (одни прототипы написаны, да краткое описание)

    CrystalIC
    затенённая память - память являющаяся окном на шину в регистры устройства.


    знакомый говорит, что это можно сделать через DMA, но я ему не верю (т.к.)
     
  5. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Arisu
    По чём нынче травка ?
     
  6. steelfactor

    steelfactor New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    501
    [del]
    ...вообщем Clerk +1
     
  7. Arisu

    Arisu Алиса Селезнёва

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    89
    эт самое. я с вами спорить по поводу что такое затенённая память не собираюсь.

    Лучше скажите почему DDK некомпилит вот это:
    Код (Text):
    1. VOID *Mem;
    2. Mem = MmMapIoSpace( 0xC8000, 1, 0 );
    говоря cannot convert from 'unsigned int' to 'PHYSICAL_ADDRESS'.
     
  8. steelfactor

    steelfactor New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    501
    Arisu
    А вот это
    перевести не судьба?
     
  9. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Arisu
    ГЖО СМР!
     
  10. Arisu

    Arisu Алиса Селезнёва

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    89
    steelfactor

    MmMapIoSpace( (PHYSICAL_ADDRESS)0xBABA, 1024, 0 );

    лучше, если честно, не стало.

    что за типа такой PHYSICAL_ADDRESS вообще??? ни в DDK ни в MSDN о нём ни слова.
     
  11. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    Arisu
    Драйвер придеться писать.

    Затененная память - shadow memory. Область памяти скрытая за облостью памяти адапторов и ROM BIOS.
    Пример 1мб из них 640КБ доступно как системная память. ДАльше идет облость видео адаптора A0000h-BFFFFh которая затеняет часть памяти. С0000h-DFFFFh - биосы карт расширения.
    E0000h-FFFFFh BIOS. Немного о BIOS. Тут возможны различные режимы. Память может быть не затененной. Как раз в нее записывается биос при распаковки. А дальше эта облость просто защищается от записи. Чтение идет из основной памяти. Сделанно это для ускорения. В старом исполнение системная память либы небыло либы затенялось и чтение шло из BIOSa. А вот запись может быть разная. Может быть заблокированна может быть перенаправленна на BIOS или в системную память.


    Насчет доступ через DMA. И да и нет. Есть контроллер памяти вот он и скрывает память. Вот чтобы получить доступ его и нужно запрограммировать.

    Вот только зачем это нужно? ЗАчем тебе доступ к этой памяти?
     
  12. Arisu

    Arisu Алиса Селезнёва

    Публикаций:
    0
    Регистрация:
    10 апр 2007
    Сообщения:
    89
    Pavia
    я уже пишу драйвер.
    и я пишу в нём магическую функцию mmMapIoSpace, но магии не выходит, потому что - читайте предыдущий мой пост

    А затем мне это, что на исе у меня висит качество спрограммированный микроконтроллер у которого по одному адресу очень полезный для меня регистр и мне туда надо писать ему письмо.
     
  13. deBator

    deBator New Member

    Публикаций:
    0
    Регистрация:
    19 авг 2008
    Сообщения:
    11
    Arisu
    это вобщем из одной из первых ссылок в гугли по теме PHYSICAL_ADDRESS
    так что будь внимательнее
     
  14. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    Pavia
    Что толку от защиты записи теневого биос, перемычку на плате програмно не переставишь :)
     
  15. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв