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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.012 c
3-43307
tomek
2004-02-11 20:50
2004.03.14
Interbase драйвер


3-43318
DimaF
2004-02-15 22:24
2004.03.14
TIBTable


8-43693
Nikolas
2003-11-15 08:58
2004.03.14
MediaPlayer


4-43939
talisman
2004-01-07 15:23
2004.03.14
кнопки клавы


3-43390
uu
2004-02-13 20:30
2004.03.14
CREATE GENERATOR





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