Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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
1-101292
brestmarket
2002-10-19 02:53
2002.10.31
Как открыть приложением определенный файл?


3-101106
stur
2002-10-09 16:40
2002.10.31
Ошибка


6-101404
NBLR
2002-08-23 11:45
2002.10.31
NMSmtp и Win95/Win98


4-101581
kerrik
2002-09-19 21:59
2002.10.31
Аналог ф-ии inherited; в С++Builder (5.0)


6-101415
Diamus
2002-08-30 15:32
2002.10.31
Проблема с обрывом соединения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский