Determining free memory using the System plugin: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
m (Added category links.)
m (Added Ex warning)
 
(3 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{|align=right
{{PageAuthor|sunjammer}}
|<small>Author: [[{{ns:2}}:sunjammer|sunjammer]] ([[{{ns:3}}:sunjammer|talk]], [[{{ns:-1}}:Contributions/sunjammer|contrib]])</small>
 
|}
<div style="border: 1px solid #404000; background-color:#f8f880; color:#000; padding:0.5em;"><b>Warning: </b>This only works correctly for systems with less than 4 GiB RAM. New code should [[System Information|try GlobalMemoryStatusEx first]].</div>
<br style="clear:both;">
 
== Description ==
== Description ==
KiCHiK came up with this NSIS code to check free RAM using the System plugin ([http://forums.winamp.com/showthread.php?postid=868438&highlight=SystemAlloc#post868438 original forum posting])
KiCHiK came up with this NSIS code to check free RAM using the System plugin ([http://forums.winamp.com/showthread.php?postid=868438&highlight=SystemAlloc#post868438 original forum posting])
Line 24: Line 24:
</highlight-nsis>
</highlight-nsis>


[[{{ns:14}}:System Plugin Examples]]
[[Category:System Plugin Examples]]

Latest revision as of 20:44, 28 September 2022

Author: sunjammer (talk, contrib)


Warning: This only works correctly for systems with less than 4 GiB RAM. New code should try GlobalMemoryStatusEx first.

Description

KiCHiK came up with this NSIS code to check free RAM using the System plugin (original forum posting)

The Function

System::Alloc 32
Pop $1
System::Call "Kernel32::GlobalMemoryStatus(i) v (r1)"
System::Call "*$1(&i4 .r2, &i4 .r3, &i4 .r4, &i4 .r5, \
                  &i4 .r6, &i4.r7, &i4 .r8, &i4 .r9)"
System::Free $1
DetailPrint "Structure size (useless): $2 Bytes"
DetailPrint "Memory load: $3%"
DetailPrint "Total physical memory: $4 Bytes"
DetailPrint "Free physical memory: $5 Bytes"
DetailPrint "Total page file: $6 Bytes"
DetailPrint "Free page file: $7 Bytes"
DetailPrint "Total virtual: $8 Bytes"
DetailPrint "Free virtual: $9 Bytes"