Simplify struct usage and comments
Signed-off-by: Ben Ridley <benridley29@gmail.com>
This commit is contained in:
parent
df2a7a9ec0
commit
ee3848141c
|
@ -6,38 +6,20 @@ import (
|
|||
"golang.org/x/sys/windows"
|
||||
)
|
||||
|
||||
// LPPerformanceInformation is a wrapper of the PERFORMANCE_INFORMATION struct.
|
||||
// PerformanceInformation is a wrapper of the PERFORMANCE_INFORMATION struct.
|
||||
// https://docs.microsoft.com/en-us/windows/win32/api/psapi/ns-psapi-performance_information
|
||||
type LPPerformanceInformation struct {
|
||||
cb uint32
|
||||
CommitTotal *uint32
|
||||
CommitLimit *uint32
|
||||
CommitPeak *uint32
|
||||
PhysicalTotal *uint32
|
||||
PhysicalAvailable *uint32
|
||||
SystemCache *uint32
|
||||
KernelTotal *uint32
|
||||
KernelPaged *uint32
|
||||
KernelNonpaged *uint32
|
||||
PageSize *uint32
|
||||
HandleCount uint32
|
||||
ProcessCount uint32
|
||||
ThreadCount uint32
|
||||
}
|
||||
|
||||
// PerformanceInformation is a dereferenced version of LPPerformanceInformation
|
||||
type PerformanceInformation struct {
|
||||
cb uint32
|
||||
CommitTotal uint32
|
||||
CommitLimit uint32
|
||||
CommitPeak uint32
|
||||
PhysicalTotal uint32
|
||||
PhysicalAvailable uint32
|
||||
SystemCache uint32
|
||||
KernelTotal uint32
|
||||
KernelPaged uint32
|
||||
KernelNonpaged uint32
|
||||
PageSize uint32
|
||||
CommitTotal uint
|
||||
CommitLimit uint
|
||||
CommitPeak uint
|
||||
PhysicalTotal uint
|
||||
PhysicalAvailable uint
|
||||
SystemCache uint
|
||||
KernelTotal uint
|
||||
KernelPaged uint
|
||||
KernelNonpaged uint
|
||||
PageSize uint
|
||||
HandleCount uint32
|
||||
ProcessCount uint32
|
||||
ThreadCount uint32
|
||||
|
@ -48,24 +30,9 @@ var (
|
|||
procGetPerformanceInfo = psapi.NewProc("GetPerformanceInfo")
|
||||
)
|
||||
|
||||
// GetLPPerformanceInfo retrieves the performance values contained in the LPPerformanceInformation structure.
|
||||
// https://docs.microsoft.com/en-us/windows/win32/api/psapi/nf-psapi-getperformanceinfo
|
||||
func GetLPPerformanceInfo() (LPPerformanceInformation, error) {
|
||||
var pi LPPerformanceInformation
|
||||
size := (uint32)(unsafe.Sizeof(pi))
|
||||
pi.cb = size
|
||||
r1, _, err := procGetPerformanceInfo.Call(uintptr(unsafe.Pointer(&pi)), uintptr(size))
|
||||
|
||||
if ret := *(*bool)(unsafe.Pointer(&r1)); !ret {
|
||||
return LPPerformanceInformation{}, err
|
||||
}
|
||||
|
||||
return pi, nil
|
||||
}
|
||||
|
||||
// GetPerformanceInfo returns the dereferenced version of GetLPPerformanceInfo.
|
||||
func GetPerformanceInfo() (PerformanceInformation, error) {
|
||||
var lppi LPPerformanceInformation
|
||||
var lppi PerformanceInformation
|
||||
size := (uint32)(unsafe.Sizeof(lppi))
|
||||
lppi.cb = size
|
||||
r1, _, err := procGetPerformanceInfo.Call(uintptr(unsafe.Pointer(&lppi)), uintptr(size))
|
||||
|
@ -74,21 +41,5 @@ func GetPerformanceInfo() (PerformanceInformation, error) {
|
|||
return PerformanceInformation{}, err
|
||||
}
|
||||
|
||||
var pi PerformanceInformation
|
||||
pi.cb = lppi.cb
|
||||
pi.CommitTotal = *(lppi.CommitTotal)
|
||||
pi.CommitLimit = *(lppi.CommitLimit)
|
||||
pi.CommitPeak = *(lppi.CommitPeak)
|
||||
pi.PhysicalTotal = *(lppi.PhysicalTotal)
|
||||
pi.PhysicalAvailable = *(lppi.PhysicalAvailable)
|
||||
pi.SystemCache = *(lppi.SystemCache)
|
||||
pi.KernelTotal = *(lppi.KernelTotal)
|
||||
pi.KernelPaged = *(lppi.KernelPaged)
|
||||
pi.KernelNonpaged = *(lppi.KernelNonpaged)
|
||||
pi.PageSize = *(lppi.PageSize)
|
||||
pi.HandleCount = lppi.HandleCount
|
||||
pi.ProcessCount = lppi.ProcessCount
|
||||
pi.ThreadCount = lppi.ThreadCount
|
||||
|
||||
return pi, nil
|
||||
return lppi, nil
|
||||
}
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
package sysinfoapi
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"unicode/utf16"
|
||||
"unsafe"
|
||||
|
||||
|
@ -129,12 +128,11 @@ func GlobalMemoryStatusEx() (MemoryStatus, error) {
|
|||
}, nil
|
||||
}
|
||||
|
||||
// GetSystemInfo wraps the GetSystemInfo function from sysinfoapi
|
||||
// GetSystemInfo is an idiomatic wrapper for the GetSystemInfo function from sysinfoapi
|
||||
// https://docs.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-getsysteminfo
|
||||
func GetSystemInfo() SystemInfo {
|
||||
var info lpSystemInfo
|
||||
procGetSystemInfo.Call(uintptr(unsafe.Pointer(&info)))
|
||||
fmt.Printf("%+v", info)
|
||||
return SystemInfo{
|
||||
Arch: ProcessorArchitecture(info.Arch.WProcessorArchitecture),
|
||||
PageSize: info.DwPageSize,
|
||||
|
|
Loading…
Reference in New Issue