mirror of
https://github.com/prometheus-community/windows_exporter.git
synced 2026-10-17 18:19:04 +02:00
pdh: convert all raw time counter types to seconds (#2776)
Co-authored-by: Claude <noreply@anthropic.com> Signed-off-by: Claude <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude
parent
a9d5bbef48
commit
da7bebc6b3
@@ -32,6 +32,7 @@ var (
|
||||
procKernelLocalFileTimeToFileTime = modkernel32.NewProc("LocalFileTimeToFileTime")
|
||||
procOpenJobObject = modkernel32.NewProc("OpenJobObjectW")
|
||||
procIsProcessInJob = modkernel32.NewProc("IsProcessInJob")
|
||||
procQueryPerformanceFrequency = modkernel32.NewProc("QueryPerformanceFrequency")
|
||||
|
||||
// GetDiskSpaceInformationW is optional and checked by GetDiskSpaceInformation.
|
||||
load = lazyproc.Once(modkernel32,
|
||||
@@ -39,6 +40,7 @@ var (
|
||||
procKernelLocalFileTimeToFileTime,
|
||||
procOpenJobObject,
|
||||
procIsProcessInJob,
|
||||
procQueryPerformanceFrequency,
|
||||
)
|
||||
)
|
||||
|
||||
@@ -94,3 +96,17 @@ func LocalFileTimeToFileTime(localFileTime, utcFileTime *windows.Filetime) uint3
|
||||
|
||||
return uint32(ret)
|
||||
}
|
||||
|
||||
// QueryPerformanceFrequency returns the frequency of the performance counter
|
||||
// in counts per second.
|
||||
// 📑 https://learn.microsoft.com/en-us/windows/win32/api/profileapi/nf-profileapi-queryperformancefrequency
|
||||
func QueryPerformanceFrequency() (int64, error) {
|
||||
var frequency int64
|
||||
|
||||
ret, _, err := procQueryPerformanceFrequency.Call(uintptr(unsafe.Pointer(&frequency)))
|
||||
if ret == 0 {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
return frequency, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user