Главная страница
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.043 c
1-1154447905
TStas
2006-08-01 19:58
2006.09.17
Можно ли как-то поубивать запущенные процессы Ворда и Экселя?


1-1154507212
elena_pp
2006-08-02 12:26
2006.09.17
Как в Excel задавать формулу ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;F2:F10)


2-1156712447
иван8511
2006-08-28 01:00
2006.09.17
Печать без прокрутки страницы


4-1147863368
roughneck
2006-05-17 14:56
2006.09.17
InsertMenu с картинкой


15-1156916090
hero
2006-08-30 09:34
2006.09.17
Народ! нужен новенький Client.lic для проги Парус - бюджет