Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.31;
Скачать: CL | DM;

Вниз

резервирование памяти   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.017 c
8-101389
onio
2002-07-04 17:34
2002.10.31
Как векторизировать растровое изображение?


1-101320
NA
2002-10-19 14:13
2002.10.31
директива INCLUDE своими силами, или Собираем файл из шаблонов.


3-101108
BCPP_Builder_Dev
2002-10-09 15:26
2002.10.31
Коллеги! Помогите написать процедурку обновления....


7-101541
Sega77
2002-08-27 19:39
2002.10.31
Как отловить момент закрытия popup меню?


14-101522
Volly
2002-10-11 14:16
2002.10.31
Как зарегистрировать программу?