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

Вниз

PhysicalMemory   Найти похожие ветки 

 
Kerk   (2003-12-18 11:44) [0]

Как определить размер доступной физической памяти в байтах?


 
Digitman   (2003-12-18 11:54) [1]

зачем ?


 
Kerk   (2003-12-18 11:57) [2]

Digitman © (18.12.03 11:54) [1]
> зачем ?
;)

Работаю с устройтсвом \device\PhysicalMemory используя NtOpenSection (ring3, админ)...

Размер памяти мне нужен, чтобы узнать диапазон доступных адресов.


 
Digitman   (2003-12-18 12:12) [3]

см. NtQuerySectionInfo()


 
Digitman   (2003-12-18 12:20) [4]

хотя ... не решит это задачи, наверно ... MaximumSize для этой секции всегда будет равен 4Гб

думаю, можно в цикле с шагом , к примеру, 1mb отображать участки секции на ВАП тек.процесса, начиная со смещения 0

как только NtMapViewOfSection() вернет специфический отказ, цикл прекращается, фиксируя тем самым верхюю границу диапазон доступного ФАП


 
Kerk   (2003-12-18 14:32) [5]

Кстати, я вместо NtMapViewOfSection() использую MapViewOfFile
Поиск в инете показал, что кто-то использует NtMapViewOfSection, кто-то MapViewOfFile...

так между ними в данном случае разница есть?


 
Игорь Шевченко   (2003-12-18 16:43) [6]


> Как определить размер доступной физической памяти в байтах?


GlobalMemoryStatus


 
Digitman   (2003-12-18 16:50) [7]


> Игорь Шевченко


любопытно, что тот же Коберниченко ни словом нигде не обмолвился на сей счет


 
Kerk   (2003-12-20 12:11) [8]

Игорь Шевченко, спасибо.

P.S. А все-таки как насчет Kerk © (18.12.03 14:32) [5]


 
Игорь Шевченко   (2003-12-20 17:42) [9]

Kerk © (20.12.03 12:11)

Между этими двумя функциями нету разницы. В NT-системах вызов MapViewOfFile служит оберткой для функции NtMapViewOfSection, так что вторую функцию можно смело использовать.


 
Kerk   (2003-12-22 10:41) [10]

2 Игорь Шевченко ©
thanks


 
Trad   (2003-12-22 23:00) [11]

извините, за , наверное, тупейший вопрос, но допустим
label1.Caption:=GlobalMemoryStatus;
должно работать? у меня не работает. как вооюще пользоваться GlobalMemoryStatus? в хелпе ничего не нашёл.


 
panov   (2003-12-22 23:11) [12]

>Trad (22.12.03 23:00) [11]

Лучше не торопись, не лезь в такие дебри. Основы усвой хорошо...


 
ALEIIIKA   (2003-12-23 09:33) [13]

Кидаешь на форму, Label и Timer, в обработчике OnTimer пишешь приведенный ниже код, вот и весь пример.

var
MS: TMemoryStatus;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
GlobalMemoryStatus(MS);
Label2.Caption := Format("%4.3f Бт", [MS.dwAvailPhys])
end;


 
Kerk   (2003-12-24 12:59) [14]

GlobalMemoryStatus возвращает на полмегабайта меньше, чем доступно для чтения из устройства :(

кто виноват и что делать?


 
ALEIIIKA   (2003-12-26 10:36) [15]

У меня правильно определяет :(



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

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

Наверх




Память: 0.47 MB
Время: 0.012 c
1-43469
novi
2004-02-29 19:35
2004.03.14
Типы


14-43823
Шоломицкий
2004-02-22 19:38
2004.03.14
Про Linux!!!


11-43417
BelchonokH
2003-06-26 21:32
2004.03.14
form.close или form.free?


6-43726
smu
2004-01-06 09:25
2004.03.14
Где взять RAS сервер ?


7-43923
YuRock
2003-12-22 20:26
2004.03.14
ActiveX для Opera7





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