Definition at line 1272 of file heapmem.c.
Referenced by AboutDlgProc(), GetSystemInformation(), GlobalMemoryStatus(), Hib_InitDialog(), InitializeSystemPage(), OnSelChange(), and set_installer_properties().
{
SYSTEM_PERFORMANCE_INFORMATION PerformanceInfo;
VM_COUNTERS VmCounters;
QUOTA_LIMITS QuotaLimits;
ULONGLONG PageFile, PhysicalMemory;
NtQuerySystemInformation(SystemPerformanceInformation,
&PerformanceInfo,
sizeof(PerformanceInfo),
NULL);
lpBuffer->dwMemoryLoad = ((DWORD)(BaseStaticServerData->SysInfo.NumberOfPhysicalPages -
PerformanceInfo.AvailablePages) * 100) /
BaseStaticServerData->SysInfo.NumberOfPhysicalPages;
PhysicalMemory = BaseStaticServerData->SysInfo.NumberOfPhysicalPages *
BaseStaticServerData->SysInfo.PageSize;
lpBuffer->ullTotalPhys = PhysicalMemory;
PhysicalMemory = PerformanceInfo.AvailablePages *
BaseStaticServerData->SysInfo.PageSize;
lpBuffer->ullAvailPhys = PhysicalMemory;
NtQueryInformationProcess(NtCurrentProcess(),
ProcessQuotaLimits,
&QuotaLimits,
sizeof(QUOTA_LIMITS),
NULL);
NtQueryInformationProcess(NtCurrentProcess(),
ProcessVmCounters,
&VmCounters,
sizeof(VM_COUNTERS),
NULL);
lpBuffer->ullTotalPageFile = min(QuotaLimits.PagefileLimit,
PerformanceInfo.CommitLimit);
PageFile = PerformanceInfo.CommitLimit - PerformanceInfo.CommittedPages;
lpBuffer->ullAvailPageFile = min(PageFile,
QuotaLimits.PagefileLimit -
VmCounters.PagefileUsage);
lpBuffer->ullAvailPageFile *= BaseStaticServerData->SysInfo.PageSize;
lpBuffer->ullTotalVirtual = (BaseStaticServerData->SysInfo.MaximumUserModeAddress -
BaseStaticServerData->SysInfo.MinimumUserModeAddress) + 1;
lpBuffer->ullAvailVirtual = lpBuffer->ullTotalVirtual -
VmCounters.VirtualSize;
lpBuffer->ullAvailExtendedVirtual = 0;
return TRUE;
}