Автор
|
Тема: DMA под Windows-2k - где найти?
|
ASKER |
опубликован 04-01-2002 12:41 MSK
Нужно перевести программку из-под ДОСа, а она юзает DMA. Я в растерянности: управляющие коды, которые в порты пишутся, я нашёл, но под Вынь такая работа с памятью, как в ДОСе для DMA, не пройдёт. Даны ли права для DMA в ВЫнь2к только драйверам? или можно обойтись ... Дайте ссылки на что-то подробное, буду очень благодарен.
|
VuDZ
|
опубликован 04-01-2002 14:46 MSK
ну почему же драйвера? любой софи, работающий в 0 кольце защиты :D |
ASKER
|
опубликован 04-01-2002 15:08 MSK
в 0 кольце работают драйвера и ядро( или я чего-то не понимаю) |
rivitna
|
опубликован 04-01-2002 23:52 MSK
В защищенном режиме необходимо, чтобы CPL (уровень привилегий кода) был численно меньше или равен IOPL (уровень привилегий операций ввода-вывода). Ну а так как используется только два кольца 0 и 3, нужно с DMA работать в 0-м кольце. Для Win9x/Me работать в Ring 0 можно элементарно (это верно для любой прикладной программы), просто надо сделать финт ушами. Там элементарно можно вызвать любую функцию в Ring 0 через шлюз вызова. В NT/2k такая фигня не проходит, только драйвера и ядро работают в Ring 0. C DMA можно работать только через драйвера и ядро. |
ASKER
|
опубликован 11-01-2002 09:57 MSK
All is water in a glass. А конкретных предложений не видать. Скоро буду ругаться. |
rivitna
|
опубликован 11-01-2002 11:26 MSK
Губит людей не пиво, губит людей вода!Лучше локументацию читай |
ASKER
|
опубликован 21-01-2002 14:38 MSK
Мне бы лучше примерчик толковый... |
ASKER
|
опубликован 26-02-2002 17:59 MSK
Почему-то драйвер DMA, написанный с исп. Tertradyne Driver Classes для режима автоинициализации, не автоинициализируется (прописывается один раз буфер и всё). Буфер больше 32 кб не выделяется. И ещё: DmaWidth ставится только 8 бит, если 16 - то ошибка 20, устройство не найдено. Кто поможет ?Я почему-то думаю, что никто...по традиции. Слабо вам, наверное. |