package winapi const PROCESS_ALL_ACCESS uint32 = 2097151 const ( PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE = 0x20016 PROC_THREAD_ATTRIBUTE_JOB_LIST = 0x2000D ) // ProcessVmCounters corresponds to the _VM_COUNTERS_EX and _VM_COUNTERS_EX2 structures. const ProcessVmCounters = 3 // __kernel_entry NTSTATUS NtQueryInformationProcess( // [in] HANDLE ProcessHandle, // [in] PROCESSINFOCLASS ProcessInformationClass, // [out] PVOID ProcessInformation, // [in] ULONG ProcessInformationLength, // [out, optional] PULONG ReturnLength // ); // //sys NtQueryInformationProcess(processHandle windows.Handle, processInfoClass uint32, processInfo unsafe.Pointer, processInfoLength uint32, returnLength *uint32) (status uint32) = ntdll.NtQueryInformationProcess // typedef struct _VM_COUNTERS_EX // { // SIZE_T PeakVirtualSize; // SIZE_T VirtualSize; // ULONG PageFaultCount; // SIZE_T PeakWorkingSetSize; // SIZE_T WorkingSetSize; // SIZE_T QuotaPeakPagedPoolUsage; // SIZE_T QuotaPagedPoolUsage; // SIZE_T QuotaPeakNonPagedPoolUsage; // SIZE_T QuotaNonPagedPoolUsage; // SIZE_T PagefileUsage; // SIZE_T PeakPagefileUsage; // SIZE_T PrivateUsage; // } VM_COUNTERS_EX, *PVM_COUNTERS_EX; // type VM_COUNTERS_EX struct { PeakVirtualSize uintptr VirtualSize uintptr PageFaultCount uint32 PeakWorkingSetSize uintptr WorkingSetSize uintptr QuotaPeakPagedPoolUsage uintptr QuotaPagedPoolUsage uintptr QuotaPeakNonPagedPoolUsage uintptr QuotaNonPagedPoolUsage uintptr PagefileUsage uintptr PeakPagefileUsage uintptr PrivateUsage uintptr } // typedef struct _VM_COUNTERS_EX2 // { // VM_COUNTERS_EX CountersEx; // SIZE_T PrivateWorkingSetSize; // SIZE_T SharedCommitUsage; // } VM_COUNTERS_EX2, *PVM_COUNTERS_EX2; // type VM_COUNTERS_EX2 struct { CountersEx VM_COUNTERS_EX PrivateWorkingSetSize uintptr SharedCommitUsage uintptr }