Я знаю что эта тема 100 раз поднималась но не было до конца решена А я создам 101 раз. В общем открыл в драйвере секцию Отобразил в память (ZwMapViewOfSection) Изменил значение по адресу 000C0000:30-35 И а затем выгрузил… (ZwUnmapViewOfSection) Но изменение не произошли в чем проблема? Может в драйвере тоже нужны кое какие прав?
Int64 Если мне не изменяет память, то по этому адресу находится Video RAM видеокарты. Ты собрался изменить Video RAM ??? Хм, если ты пишешь эмулятор железа для какой-нибудь программы(Ring3), то можно вообще без драйвера обойтись.
Короче... Видел однажды прогу которая изменяет в DMI или где-то там в памяти название материнки, серийник, и ещё кучу всего... Я с ней работал в MS-DOS е. Вот теперь тоже хочу что-то подобное сделать в общем физ. память я отобразил из под "драйвера" (думаю про ограничение можно молчать ) Хорошо, для проверки моего драйвера скажите куда можно писать и по какому смещению... в системном областе.
Int64 Про первую часть. В конфигурационном пространстве PCI моста PCI to HOST он же по совместительство DRAM Controller. Есть биты которые влияют на возможность записи, разрешают и запрещают. Возможно доступ к DMI осуществляется иначе. PnP Function 52h – Set DMI Structure Хотя изучая исходники биуса видно, что идет работа с конфигурационном пространстве PCI. Про вторую часть вопроса. Скорее всего по адресам ROM БИОСа и ROM других устройств C0000-FFFFF запись запрещена. Хотя я еще там не все раскопал. A0000-BFFFF видео память Все что ниже это ДОС память 640Кб включая таблицу прерываний и БИОС и ДОС переменных. И еще 1Мб откусывает БИОС от основной памяти, под свои нужды ACPI, NVS. Подробнее Int 15h функция E820 Также некоторые устройства отображают свою память или регистры в адресное пространство памяти.
Pavia Так про память... Куда можно писать? Не мог бы скинуть исходники биос? Promstrojproekt@mail.ru и если можно доки по этой теме?
Int64 Я винды плохо знаю. В эти адресса запись разрешена 000000h-09FFFFh* – Base Memory базовая память 0A0000h-0BFFFFh – Video RAM, 128Кбайт видео память В эти адресса запись заприщена, но можно получить доступ. 0C0000h-0DFFFFh – ROM/RAM память различных адаптеров 0E0000h-0FFFFFh – System BIOS 128КБайт доступ разрешен 1МБайт-столько сколько у тебя памяти* Примечание не все так просто, для того чтобы получить точные диапазоны можно использовать Int 15h функция E820. А не погает 2,7 МБ Award_Bios_6.00Pg_Source_Code_1999.zip
Нет не пугает Скидывай и ещё боле инфы если не жалко! Ну в винде приревание запрещены (XP) придется искать другой путь
Ладно в ROM BIOS я научился писать а вот как в Писать? А точнее где взять пример программы с исходниками хоть на один видео чипсет?
Делал такую вещь, делаешь непрерыный массив с данными, AllocateContigniousMemory() Затем передаресуешь чтение подменой чтения с адресом (физическим!) начала массива. И возвращаешь результат как обычно. Таким образом можно подменить все что угодно.