Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.017 c
8-43687
PeterTambov
2003-11-09 15:15
2004.03.14
Delphi7 и JPG


1-43676
Lisa
2004-01-23 13:20
2004.03.14
Как программно запустить Excel?


11-43419
Сергей Апин
2003-06-26 15:44
2004.03.14
Вопрос о доке для начинающих ;)


6-43713
qwerty
2004-01-07 23:03
2004.03.14
Как перехватить трафик


3-43268
Andrew2004
2004-02-12 07:33
2004.03.14
Каскадное удаление в Delphi, Interbase




   Наверх