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