Вниз
Скачать: 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.033 c
1-43610
Sirruf
2004-03-02 17:19
2004.03.14
Компонент TDBGridEh, черт бы его побрал !!!


9-43244
VitGun
2003-08-23 16:27
2004.03.14
Вопрос по загрузке уровня в OpenGl


1-43495
Elast
2004-02-28 13:50
2004.03.14
DBGridEh


14-43838
guest_Dmitry
2004-02-22 07:36
2004.03.14
Календарь с DBEditaми


14-43835
Mentov
2004-02-22 17:28
2004.03.14
TWebBrowser, проблема со скроллом




   Наверх