Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

резервирование памяти [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]

А это зачем ? Позволь уж полюбопытствовать )...

Ну. предположим, поимел ты что хотел. Дальше что ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо