package common
import "github.com/shirou/gopsutil/v3/internal/common"
Index ¶
- Constants
- Variables
- func BytePtrToString(p *uint8) string
- func ByteToString(orig []byte) string
- func ConvertDOSPath(p string) string
- func CreateQuery() (windows.Handle, error)
- func GetCounterValue(counter windows.Handle) (float64, error)
- func GetEnv(key string, dfault string, combineWith ...string) string
- func HexToUint32(hex string) uint32
- func HostDev(combineWith ...string) string
- func HostEtc(combineWith ...string) string
- func HostProc(combineWith ...string) string
- func HostRoot(combineWith ...string) string
- func HostRun(combineWith ...string) string
- func HostSys(combineWith ...string) string
- func HostVar(combineWith ...string) string
- func IntContains(target []int, src int) bool
- func IntToString(orig []int8) string
- func IsLittleEndian() bool
- func PathExists(filename string) bool
- func PathExistsWithContents(filename string) bool
- func Read(r io.Reader, order ByteOrder, data interface{}) error
- func ReadFile(filename string) (string, error)
- func ReadInts(filename string) ([]int64, error)
- func ReadLines(filename string) ([]string, error)
- func ReadLinesOffsetN(filename string, offset uint, n int) ([]string, error)
- func Size(v interface{}) int
- func Sleep(ctx context.Context, interval time.Duration) error
- func StringsContains(target []string, src string) bool
- func StringsHas(target []string, src string) bool
- func UintToString(orig []uint8) string
- func WMIQueryWithContext(ctx context.Context, query string, dst interface{}, connectServerArgs ...interface{}) error
- func Write(w io.Writer, order ByteOrder, data interface{}) error
- type ByteOrder
- type CounterInfo
- type FILETIME
- type FakeInvoke
- func (i FakeInvoke) Command(name string, arg ...string) ([]byte, error)
- func (i FakeInvoke) CommandWithContext(ctx context.Context, name string, arg ...string) ([]byte, error)
- type Invoke
- func (i Invoke) Command(name string, arg ...string) ([]byte, error)
- func (i Invoke) CommandWithContext(ctx context.Context, name string, arg ...string) ([]byte, error)
- type Invoker
- type NtStatus
- func CallWithExpandingBuffer(fn func() NtStatus, buf *[]byte, resultLength *uint32) NtStatus
- func NtQuerySystemInformation( SystemInformationClass uint32, SystemInformation *byte, SystemInformationLength uint32, ReturnLength *uint32, ) NtStatus
- func (s NtStatus) Error() error
- func (s NtStatus) IsError() bool
- type PDH_FMT_COUNTERVALUE_DOUBLE
- type PDH_FMT_COUNTERVALUE_LARGE
- type PDH_FMT_COUNTERVALUE_LONG
- type SystemExtendedHandleInformation
- type SystemExtendedHandleTableEntryInformation
- type Warnings
- func (w *Warnings) Add(err error)
- func (w *Warnings) Error() string
- func (w *Warnings) Reference() error
- type Win32PerformanceCounter
Constants ¶
const ( ERROR_SUCCESS = 0 ERROR_FILE_NOT_FOUND = 2 DRIVE_REMOVABLE = 2 DRIVE_FIXED = 3 HKEY_LOCAL_MACHINE = 0x80000002 RRF_RT_REG_SZ = 0x00000002 RRF_RT_REG_DWORD = 0x00000010 PDH_FMT_LONG = 0x00000100 PDH_FMT_DOUBLE = 0x00000200 PDH_FMT_LARGE = 0x00000400 PDH_INVALID_DATA = 0xc0000bc6 PDH_INVALID_HANDLE = 0xC0000bbc PDH_NO_DATA = 0x800007d5 STATUS_BUFFER_OVERFLOW = 0x80000005 STATUS_BUFFER_TOO_SMALL = 0xC0000023 STATUS_INFO_LENGTH_MISMATCH = 0xC0000004 )
windows system const
const ( ProcessBasicInformation = 0 ProcessWow64Information = 26 ProcessQueryInformation = windows.PROCESS_DUP_HANDLE | windows.PROCESS_QUERY_INFORMATION SystemExtendedHandleInformationClass = 64 )
Variables ¶
var ( Modkernel32 = windows.NewLazySystemDLL("kernel32.dll") ModNt = windows.NewLazySystemDLL("ntdll.dll") ModPdh = windows.NewLazySystemDLL("pdh.dll") ModPsapi = windows.NewLazySystemDLL("psapi.dll") ProcGetSystemTimes = Modkernel32.NewProc("GetSystemTimes") ProcNtQuerySystemInformation = ModNt.NewProc("NtQuerySystemInformation") ProcRtlGetNativeSystemInformation = ModNt.NewProc("RtlGetNativeSystemInformation") ProcRtlNtStatusToDosError = ModNt.NewProc("RtlNtStatusToDosError") ProcNtQueryInformationProcess = ModNt.NewProc("NtQueryInformationProcess") ProcNtReadVirtualMemory = ModNt.NewProc("NtReadVirtualMemory") ProcNtWow64QueryInformationProcess64 = ModNt.NewProc("NtWow64QueryInformationProcess64") ProcNtWow64ReadVirtualMemory64 = ModNt.NewProc("NtWow64ReadVirtualMemory64") PdhOpenQuery = ModPdh.NewProc("PdhOpenQuery") PdhAddEnglishCounterW = ModPdh.NewProc("PdhAddEnglishCounterW") PdhCollectQueryData = ModPdh.NewProc("PdhCollectQueryData") PdhGetFormattedCounterValue = ModPdh.NewProc("PdhGetFormattedCounterValue") PdhCloseQuery = ModPdh.NewProc("PdhCloseQuery") )
var BigEndian bigEndian
BigEndian is the big-endian implementation of ByteOrder.
var LittleEndian littleEndian
LittleEndian is the little-endian implementation of ByteOrder.
Functions ¶
func BytePtrToString ¶
borrowed from net/interface_windows.go
func ByteToString ¶
func ConvertDOSPath ¶
Convert paths using native DOS format like:
"\Device\HarddiskVolume1\Windows\systemew\file.txt"
into:
"C:\Windows\systemew\file.txt"
func CreateQuery ¶
CreateQuery with a PdhOpenQuery call copied from https://github.com/mackerelio/mackerel-agent/
func GetCounterValue ¶
GetCounterValue get counter value from handle adapted from https://github.com/mackerelio/mackerel-agent/
func GetEnv ¶
GetEnv retrieves the environment variable key. If it does not exist it returns the default.
func HexToUint32 ¶
Parse Hex to uint32 without error
func HostDev ¶
func HostEtc ¶
func HostProc ¶
func HostRoot ¶
func HostRun ¶
func HostSys ¶
func HostVar ¶
func IntContains ¶
IntContains checks the src in any int of the target int slice.
func IntToString ¶
func IsLittleEndian ¶
func IsLittleEndian() bool
IsLittleEndian checks if the current platform uses little-endian. copied from https://github.com/ntrrg/ntgo/blob/v0.8.0/runtime/infrastructure.go#L16 (MIT License)
func PathExists ¶
func PathExistsWithContents ¶
PathExistsWithContents returns the filename exists and it is not empty
func Read ¶
Read reads structured binary data from r into data. Data must be a pointer to a fixed-size value or a slice of fixed-size values. Bytes read from r are decoded using the specified byte order and written to successive fields of the data. When reading into structs, the field data for fields with blank (_) field names is skipped; i.e., blank field names may be used for padding. When reading into a struct, all non-blank fields must be exported.
func ReadFile ¶
ReadFile reads contents from a file
func ReadInts ¶
ReadInts reads contents from single line file and returns them as []int32.
func ReadLines ¶
ReadLines reads contents from a file and splits them by new lines. A convenience wrapper to ReadLinesOffsetN(filename, 0, -1).
func ReadLinesOffsetN ¶
ReadLinesOffsetN reads contents from file and splits them by new line. The offset tells at which line number to start. The count determines the number of lines to read (starting from offset): n >= 0: at most n lines n < 0: whole file
func Size ¶
func Size(v interface{}) int
Size returns how many bytes Write would generate to encode the value v, which must be a fixed-size value or a slice of fixed-size values, or a pointer to such data. If v is neither of these, Size returns -1.
func Sleep ¶
Sleep awaits for provided interval. Can be interrupted by context cancelation.
func StringsContains ¶
StringsContains checks the src in any string of the target string slice
func StringsHas ¶
StringsHas checks the target string slice contains src or not
func UintToString ¶
func WMIQueryWithContext ¶
func WMIQueryWithContext(ctx context.Context, query string, dst interface{}, connectServerArgs ...interface{}) error
WMIQueryWithContext - wraps wmi.Query with a timed-out context to avoid hanging
func Write ¶
Write writes the binary representation of data into w. Data must be a fixed-size value or a slice of fixed-size values, or a pointer to such data. Bytes written to w are encoded using the specified byte order and read from successive fields of the data. When writing structs, zero values are written for fields with blank (_) field names.
Types ¶
type ByteOrder ¶
type ByteOrder interface { Uint16([]byte) uint16 Uint32([]byte) uint32 Uint64([]byte) uint64 PutUint16([]byte, uint16) PutUint32([]byte, uint32) PutUint64([]byte, uint64) String() string }
A ByteOrder specifies how to convert byte sequences into 16-, 32-, or 64-bit unsigned integers.
type CounterInfo ¶
CounterInfo struct is used to track a windows performance counter copied from https://github.com/mackerelio/mackerel-agent/
func CreateCounter ¶
func CreateCounter(query windows.Handle, pname, cname string) (*CounterInfo, error)
CreateCounter with a PdhAddEnglishCounterW call
type FILETIME ¶
type FakeInvoke ¶
type FakeInvoke struct { Suffix string // Suffix species expected file name suffix such as "fail" Error error // If Error specified, return the error. }
func (FakeInvoke) Command ¶
func (i FakeInvoke) Command(name string, arg ...string) ([]byte, error)
Command in FakeInvoke returns from expected file if exists.
func (FakeInvoke) CommandWithContext ¶
func (i FakeInvoke) CommandWithContext(ctx context.Context, name string, arg ...string) ([]byte, error)
type Invoke ¶
type Invoke struct{}
func (Invoke) Command ¶
func (Invoke) CommandWithContext ¶
type Invoker ¶
type Invoker interface { Command(string, ...string) ([]byte, error) CommandWithContext(context.Context, string, ...string) ([]byte, error) }
type NtStatus ¶
type NtStatus uint32
func CallWithExpandingBuffer ¶
CallWithExpandingBuffer https://github.com/hillu/go-ntdll
func NtQuerySystemInformation ¶
func NtQuerySystemInformation( SystemInformationClass uint32, SystemInformation *byte, SystemInformationLength uint32, ReturnLength *uint32, ) NtStatus
func (NtStatus) Error ¶
func (NtStatus) IsError ¶
type PDH_FMT_COUNTERVALUE_DOUBLE ¶
for double values
type PDH_FMT_COUNTERVALUE_LARGE ¶
for 64 bit integer values
type PDH_FMT_COUNTERVALUE_LONG ¶
type PDH_FMT_COUNTERVALUE_LONG struct { CStatus uint32 LongValue int32 // contains filtered or unexported fields }
for long values
type SystemExtendedHandleInformation ¶
type SystemExtendedHandleInformation struct { NumberOfHandles uintptr Reserved uintptr Handles [1]SystemExtendedHandleTableEntryInformation }
type SystemExtendedHandleTableEntryInformation ¶
type SystemExtendedHandleTableEntryInformation struct { Object uintptr UniqueProcessId uintptr HandleValue uintptr GrantedAccess uint32 CreatorBackTraceIndex uint16 ObjectTypeIndex uint16 HandleAttributes uint32 Reserved uint32 }
type Warnings ¶
func (*Warnings) Add ¶
func (*Warnings) Error ¶
func (*Warnings) Reference ¶
type Win32PerformanceCounter ¶
type Win32PerformanceCounter struct { PostName string CounterName string Query windows.Handle Counter windows.Handle }
func NewWin32PerformanceCounter ¶
func NewWin32PerformanceCounter(postName, counterName string) (*Win32PerformanceCounter, error)
func ProcessorQueueLengthCounter ¶
func ProcessorQueueLengthCounter() (*Win32PerformanceCounter, error)
func (*Win32PerformanceCounter) GetValue ¶
func (w *Win32PerformanceCounter) GetValue() (float64, error)
Source Files ¶
binary.go common.go common_windows.go endian.go sleep.go warnings.go
- Version
- v3.22.12
- Published
- Dec 30, 2022
- Platform
- windows/amd64
- Imports
- 22 packages
- Last checked
- 3 days ago –
Tools for package owners.