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

Вниз

Работа с физической памятью   Найти похожие ветки 

 
Izyum ©   (2006-05-17 14:01) [0]

Есть необходимость работы с физической памятью из своей программы. Нужно выделить 64К непрерывной, неперемещаемой, некэшируемой памяти, ну и есно после завершения ее освободить. Есть ли возможность сделать это средствами ВинАПИ из Ринг3? Или это прерагатива Ринг0?

Заранее спасибо!


 
Сергей М. ©   (2006-05-17 14:08) [1]


> Есть ли возможность сделать это средствами ВинАПИ из Ринг3?


Есть.

см. GlobalAlloc()


> необходимость работы с физической памятью


В Ring3 нет такой необходимости.


 
Игорь Шевченко ©   (2006-05-17 14:33) [2]

Не уверен, но посмотри в сторону VirtualAlloc + VirtualLock


 
Izyum ©   (2006-05-17 14:39) [3]

Такая необходимость есть!;)

Функции типа Virtual**** на скоко я понял работают не с физической памятью, а с плоскими 4ГБ, или я ошибаюсь?


 
Сергей М. ©   (2006-05-17 14:55) [4]


> Izyum ©   (17.05.06 14:39) [3]


Ты справку к GlobalAlloc() прочитал ? Вник ?


 
Izyum ©   (2006-05-17 15:51) [5]

конечно прочитал:

GlobalAlloc
Функция GlobalAlloc выделяет из кучи указанное число байт. В Win32 менеджер памяти не выполняет различия между локальной и глобальной кучей.

Где в ней написано, что она работает с _физической_ памятью, а не с кучей???


 
Игорь Шевченко ©   (2006-05-17 16:13) [6]

Izyum ©   (17.05.06 14:39) [3]


> Функции типа Virtual**** на скоко я понял работают не с
> физической памятью, а с плоскими 4ГБ, или я ошибаюсь?


Функции работают с вирутальным адресным простанством процесса, страницы которого отображаются на физическую память.
Если ты скажешь, в связи с чем возникла задача, может найтись другой, более оптимальный способ.


 
Izyum ©   (2006-05-17 16:25) [7]

Хорошо, уточняю:
необходимо осуществить из программы обмен с дисковой подсистемой в ДМА-режиме, а не в ПИО. Т.е. в дыух словах - программирование БасМастеринга. В общем с проблемой разобрался, но для этого нужно выделить в _физической_ памяти буфер, который будет последовательным (нефрагментированым), неперемещаемым, некэшируемым, выровняным по границе 8 байт. Как сказали умные люди - правильным способом является написание драйвера, который будет это делать в Ринг0. Но хотелось бы выяснить - это только правильный способ или еще и единственный?


 
Игорь Шевченко ©   (2006-05-17 16:27) [8]


> или еще и единственный?


Единственный.


 
Izyum ©   (2006-05-17 16:30) [9]

Ясно...
По каместь еще и печально...

Спасибо за внимание!

ЗЫ: все это нужно для развития пректа http://dalas.hardw.net


 
Игорь Шевченко ©   (2006-05-17 16:33) [10]

Izyum ©   (17.05.06 16:30) [9]


> все это нужно для развития пректа http://dalas.hardw.net


Интересно. А способ какой-нибудь MHDD не проще ? (Загружаться в DOS и делать свое дело)


 
Izyum ©   (2006-05-17 16:41) [11]

MHDD только под ДОСом, что не всегда удобно, а для меня так и воще не удобно, и не умеет прога Димы Постриганя работать в ДМА, только ПИО.
Это же относитс я  и к Викории Сергея Казанского. А идти путем Артема Рубцова и его HDDScan (использование ДевайсИОКонтрол) по некотрым соображениям не хочется.


 
Сергей М. ©   (2006-05-17 16:43) [12]


> казали умные люди - правильным способом является написание
> драйвера, который будет это делать в Ринг0


И они были, imho, правы..


 
Izyum ©   (2006-05-17 16:45) [13]

Я же и не говорю, что это неправильно... Просто хотелось проанализировать _все_ возможные варианты:)


 
Сергей М. ©   (2006-05-18 08:25) [14]


> Я же и не говорю, что это неправильно


Нет, это правильно как раз правильно.
А неправильно будет работа в Ринг0 вне контекста драйвера.



Страницы: 1 вся ветка

Текущий архив: 2006.09.17;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.049 c
2-1156355783
serko
2006-08-23 21:56
2006.09.17
ADO


15-1156338855
AlexanderMS
2006-08-23 17:14
2006.09.17
Редактор ассемблера MASM.


2-1156085088
AlexanderMS
2006-08-20 18:44
2006.09.17
Узнать об открытии папки.


15-1156754004
IGray
2006-08-28 12:33
2006.09.17
PDF-оглавление не получается! (Ни в PDFCreator-е, ни в CutePDF)


15-1156741216
begin...end
2006-08-28 09:00
2006.09.17
28 августа. С Днём рождения!