Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2006.09.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.043 c
2-1156513884
XTD
2006-08-25 17:51
2006.09.17
Как найти нужное мне слово в (TStrings)?


15-1156128552
гастрит
2006-08-21 06:49
2006.09.17
мой скрипт


15-1156059538
PSPF2003
2006-08-20 11:38
2006.09.17
Снотворное без рецепта


1-1154671478
Alekcvp
2006-08-04 10:04
2006.09.17
"Мои Документы" и TSaveDialog


15-1156666897
Новичоккк
2006-08-27 12:21
2006.09.17
NAT сервер





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский