Форум: "Система";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];
Внизрезервирование памяти Найти похожие ветки
← →
stx (2002-08-22 17:34) [0]Как зарезервировать, физическую память, т.е. указать начальный физический адрес и конечный физический адрес, и чтобы система и другие программы и устройства не могли туда ничего писать, наподобе когда смотришь системные ресурсы, то там прямо написано, что данный диапазон зарезервирован системой или, например, видеокартой, вот я хочу так же, но чтоб мной и больше никем
← →
Digitman (2002-08-22 18:10) [1]А это зачем ? Позволь уж полюбопытствовать )...
Ну. предположим, поимел ты что хотел. Дальше что ?
← →
Jeer (2002-08-22 18:11) [2]А шобы було:)
← →
stx (2002-08-22 18:20) [3]все намного проще, мне это для буфера DMA, а этот контроллер как известно пишет в физическую память
← →
Digitman (2002-08-22 18:52) [4]>stx
Никак драйвер какой-то мастеришь ?) Или напрямую DMA-контроллер пытаешься программировать, начитавшись книжек братьев Фроловых образца времен MSDOS ?
← →
stx (2002-08-23 10:30) [5]все проще у меня устройство, подключаемое к LPT, я с него пишу данные, с довольно приличной скоростью, проэтому выбрал режим, чтобы не загружать процессор ECP+DMA, так вот все это работает через драйвер LPT и все бы было хорошо, только одно но - DMA буфер может находится только ниже 16 мегабайт, а там свободное местечко есть не всегда, вот поэтому я и хочу зарезервировать свой буфер, чтобы система туда больше никого не пускала, ведь делают же это как-то производители тех же видеокарт?
← →
Digitman (2002-08-23 11:16) [6]>stx
И все-то у тебя - "проще")
> ведь делают же это как-то производители тех же видеокарт
Делают. Только вот не так просто, как ты думаешь. Драйвер режима ядра они пишут. В режиме ядра на уровне PL0 имеется возможность прямого доступа к системным таблицам дескрипторов и к портам периферии.
Как ты все это расчитываешь делать, если не в драйвере режима ядра ?
← →
stx (2002-08-23 11:27) [7]Замечательно в ядре драйвера я это сделать смогу, я же говорил, что работаю через драйвер - доступ к ring0 у меня есть, но где эти таблицы, как к ним добраться и сказать ОС и, чтоб она знала
← →
Игорь Шевченко (2002-08-23 11:34) [8]А DDK почитать не судьба ? Там все написано, даже с примерами
← →
Digitman (2002-08-23 12:17) [9]Если ты понимаешь, что есть ring0 и умеешь получать тем или иным образом PL0 (неважно, в контексте драйвера или иным образом) для своего кода, то тем более странно, что задаешь такие вопросы.
В общем, читай и вникай во все связанное с таблицами GDT, LDT, IDT. Полноценный доступ к ним по записи возможен при PL = 0 (NT-платформа), PL>=0 (Win9x-платформа).
← →
stx (2002-08-23 12:55) [10]я думал, что есть уже готовые функции, которые вызываются на ring0 и позволяют все это сделать,
for Игорь Шевченко, если все бы читали DDK и другие разные manuals, то нахрена вообще этот форум нужен был бы
← →
Игорь Шевченко (2002-08-23 13:01) [11]stx (23.08.02 12:55)
Как все запущено...
А впрочем, выход есть - платные консультации для тех, кто не желает читать "DDK и другие разные manuals"
← →
Digitman (2002-08-23 14:07) [12]>stx
Ф-ции (вернее - программные шлюзы) для манипуляции таблицами дескрипторов есть, конечно. Но эти ф-ции недокументированы и их интерфейс/реализация не едина для всех перечисленных тобой платформ.
И двумя-тремя строчками кода с комментариями "на огурцах" здесь не обойдешься. Тем более, что детальное изучение даже того же DDK ты, imho, игнорируешь.
P.S.
Этот форум как раз и нужен, чтобы дать/получить хотя бы направления поиска решения задачи. И это направление ты вроде бы уже получил. Будешь двигаться по нему - будут новые детальные вопросы - будешь задавать их здесь же. Так и задачу свою решишь постепенно. Иначе даже нет смысла начинать.
← →
stx (2002-08-23 15:14) [13]полностью согласен, а насчет изучения DDK ты не так понял, я его не игнорирую, просто ответы наподобе Смотри в MSDN или DDK... Да так можно отмазаться от любого вопроса
← →
Wman (2002-08-26 10:33) [14]Я вижу два возможных пути:
1. Пропатчить существующий драйвер, который ты пользуешь, так чтобы он открывал память для экслюзивного доступа и тогда если
драйвер не встал значит память уже используется иначе все пучком
2. Скачать и поставить Numega Driver Studio там в визарде при создании драйвера укажещь диапазон памяти и чтобы он использовался только тобой и все по той же схеме
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2002.10.31;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c