Главная страница
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.49 MB
Время: 0.022 c
14-43839
Защитник Отечества
2004-02-22 12:22
2004.03.14
Всех С Праздником Меня!


1-43423
Vlad25
2004-03-03 18:44
2004.03.14
Добавление к версии build


3-43363
AZ
2004-02-12 16:02
2004.03.14
Доступ к защищенной БД


14-43767
wara
2004-02-04 12:00
2004.03.14
Загниваение Delphi?


14-43872
Piter
2004-02-18 18:44
2004.03.14
Пора менять хостера?