From 3e820af149881b86a96c7537a53ad8c55986c261 Mon Sep 17 00:00:00 2001 From: kruskall <99559985+kruskall@users.noreply.github.com> Date: Mon, 16 Jun 2025 04:45:40 +0200 Subject: [PATCH 1/2] feat(exwindows): expose phys and pagefile memory add a way to retrieve pagefile info from memorystatusex add phys memory for usability --- mem/ex_windows.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/mem/ex_windows.go b/mem/ex_windows.go index 2d21a80..4118c3c 100644 --- a/mem/ex_windows.go +++ b/mem/ex_windows.go @@ -15,6 +15,10 @@ type ExVirtualMemory struct { CommitTotal uint64 `json:"commitTotal"` VirtualTotal uint64 `json:"virtualTotal"` VirtualAvail uint64 `json:"virtualAvail"` + PhysTotal uint64 `json:"physTotal"` + PhysAvail uint64 `json:"physAvail"` + SwapTotal uint64 `json:"swapTotal"` + SwapAvail uint64 `json:"swapAvail"` } type ExWindows struct{} @@ -48,6 +52,10 @@ func (e *ExWindows) VirtualMemory() (*ExVirtualMemory, error) { CommitTotal: perfInfo.commitTotal * perfInfo.pageSize, VirtualTotal: memInfo.ullTotalVirtual, VirtualAvail: memInfo.ullAvailVirtual, + PhysTotal: memInfo.ullTotalPhys, + PhysAvail: memInfo.ullAvailPhys, + SwapTotal: memInfo.ullTotalPageFile, + SwapAvail: memInfo.ullAvailPageFile, } return ret, nil From 3c7a76da6e97ca616967cfec280b943f17b391fa Mon Sep 17 00:00:00 2001 From: kruskall <99559985+kruskall@users.noreply.github.com> Date: Tue, 24 Jun 2025 01:16:36 +0200 Subject: [PATCH 2/2] Update ex_windows.go --- mem/ex_windows.go | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/mem/ex_windows.go b/mem/ex_windows.go index 4118c3c..c1a9ed1 100644 --- a/mem/ex_windows.go +++ b/mem/ex_windows.go @@ -11,14 +11,14 @@ import ( // https://learn.microsoft.com/en-us/windows/win32/api/sysinfoapi/ns-sysinfoapi-memorystatusex // https://learn.microsoft.com/en-us/windows/win32/api/psapi/ns-psapi-performance_information type ExVirtualMemory struct { - CommitLimit uint64 `json:"commitLimit"` - CommitTotal uint64 `json:"commitTotal"` - VirtualTotal uint64 `json:"virtualTotal"` - VirtualAvail uint64 `json:"virtualAvail"` - PhysTotal uint64 `json:"physTotal"` - PhysAvail uint64 `json:"physAvail"` - SwapTotal uint64 `json:"swapTotal"` - SwapAvail uint64 `json:"swapAvail"` + CommitLimit uint64 `json:"commitLimit"` + CommitTotal uint64 `json:"commitTotal"` + VirtualTotal uint64 `json:"virtualTotal"` + VirtualAvail uint64 `json:"virtualAvail"` + PhysTotal uint64 `json:"physTotal"` + PhysAvail uint64 `json:"physAvail"` + PageFileTotal uint64 `json:"pageFileTotal"` + PageFileAvail uint64 `json:"pageFileAvail"` } type ExWindows struct{} @@ -48,14 +48,14 @@ func (e *ExWindows) VirtualMemory() (*ExVirtualMemory, error) { } ret := &ExVirtualMemory{ - CommitLimit: perfInfo.commitLimit * perfInfo.pageSize, - CommitTotal: perfInfo.commitTotal * perfInfo.pageSize, - VirtualTotal: memInfo.ullTotalVirtual, - VirtualAvail: memInfo.ullAvailVirtual, - PhysTotal: memInfo.ullTotalPhys, - PhysAvail: memInfo.ullAvailPhys, - SwapTotal: memInfo.ullTotalPageFile, - SwapAvail: memInfo.ullAvailPageFile, + CommitLimit: perfInfo.commitLimit * perfInfo.pageSize, + CommitTotal: perfInfo.commitTotal * perfInfo.pageSize, + VirtualTotal: memInfo.ullTotalVirtual, + VirtualAvail: memInfo.ullAvailVirtual, + PhysTotal: memInfo.ullTotalPhys, + PhysAvail: memInfo.ullAvailPhys, + PageFileTotal: memInfo.ullTotalPageFile, + PageFileAvail: memInfo.ullAvailPageFile, } return ret, nil