Форум: "Система";
Текущий архив: 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