ホーム › System.Diagnostics.Debug › MINIDUMP_PROCESS_VM_COUNTERS_2
MINIDUMP_PROCESS_VM_COUNTERS_2
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| Revision | WORD | 2 | +0 | +0 | この構造体のリビジョン番号。 |
| Flags | WORD | 2 | +2 | +2 | 有効なフィールドを示すフラグ。 |
| PageFaultCount | DWORD | 4 | +4 | +4 | ページフォルト数。 |
| PeakWorkingSetSize | ULONGLONG | 8 | +8 | +8 | ワーキングセットのピークサイズ(バイト)。 |
| WorkingSetSize | ULONGLONG | 8 | +16 | +16 | 現在のワーキングセットサイズ(バイト)。 |
| QuotaPeakPagedPoolUsage | ULONGLONG | 8 | +24 | +24 | ページプールクォータのピーク使用量。 |
| QuotaPagedPoolUsage | ULONGLONG | 8 | +32 | +32 | ページプールクォータの現在使用量。 |
| QuotaPeakNonPagedPoolUsage | ULONGLONG | 8 | +40 | +40 | 非ページプールクォータのピーク使用量。 |
| QuotaNonPagedPoolUsage | ULONGLONG | 8 | +48 | +48 | 非ページプールクォータの現在使用量。 |
| PagefileUsage | ULONGLONG | 8 | +56 | +56 | ページファイルの使用量(バイト)。 |
| PeakPagefileUsage | ULONGLONG | 8 | +64 | +64 | ページファイル使用量のピーク。 |
| PeakVirtualSize | ULONGLONG | 8 | +72 | +72 | 仮想サイズのピーク(バイト)。 |
| VirtualSize | ULONGLONG | 8 | +80 | +80 | 現在の仮想サイズ(バイト)。 |
| PrivateUsage | ULONGLONG | 8 | +88 | +88 | プライベートコミットの使用量(バイト)。 |
| PrivateWorkingSetSize | ULONGLONG | 8 | +96 | +96 | プライベートワーキングセットサイズ。 |
| SharedCommitUsage | ULONGLONG | 8 | +104 | +104 | 共有コミット使用量。 |
| JobSharedCommitUsage | ULONGLONG | 8 | +112 | +112 | ジョブ共有コミット使用量。 |
| JobPrivateCommitUsage | ULONGLONG | 8 | +120 | +120 | ジョブプライベートコミット使用量。 |
| JobPeakPrivateCommitUsage | ULONGLONG | 8 | +128 | +128 | ジョブプライベートコミットのピーク使用量。 |
| JobPrivateCommitLimit | ULONGLONG | 8 | +136 | +136 | ジョブのプライベートコミット上限。 |
| JobTotalCommitLimit | ULONGLONG | 8 | +144 | +144 | ジョブの総コミット上限。 |
各言語での定義
#include <windows.h>
// MINIDUMP_PROCESS_VM_COUNTERS_2 (x64 152 / x86 152 バイト)
#pragma pack(push, 4)
typedef struct MINIDUMP_PROCESS_VM_COUNTERS_2 {
WORD Revision;
WORD Flags;
DWORD PageFaultCount;
ULONGLONG PeakWorkingSetSize;
ULONGLONG WorkingSetSize;
ULONGLONG QuotaPeakPagedPoolUsage;
ULONGLONG QuotaPagedPoolUsage;
ULONGLONG QuotaPeakNonPagedPoolUsage;
ULONGLONG QuotaNonPagedPoolUsage;
ULONGLONG PagefileUsage;
ULONGLONG PeakPagefileUsage;
ULONGLONG PeakVirtualSize;
ULONGLONG VirtualSize;
ULONGLONG PrivateUsage;
ULONGLONG PrivateWorkingSetSize;
ULONGLONG SharedCommitUsage;
ULONGLONG JobSharedCommitUsage;
ULONGLONG JobPrivateCommitUsage;
ULONGLONG JobPeakPrivateCommitUsage;
ULONGLONG JobPrivateCommitLimit;
ULONGLONG JobTotalCommitLimit;
} MINIDUMP_PROCESS_VM_COUNTERS_2;
#pragma pack(pop)using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Unicode)]
public struct MINIDUMP_PROCESS_VM_COUNTERS_2
{
public ushort Revision;
public ushort Flags;
public uint PageFaultCount;
public ulong PeakWorkingSetSize;
public ulong WorkingSetSize;
public ulong QuotaPeakPagedPoolUsage;
public ulong QuotaPagedPoolUsage;
public ulong QuotaPeakNonPagedPoolUsage;
public ulong QuotaNonPagedPoolUsage;
public ulong PagefileUsage;
public ulong PeakPagefileUsage;
public ulong PeakVirtualSize;
public ulong VirtualSize;
public ulong PrivateUsage;
public ulong PrivateWorkingSetSize;
public ulong SharedCommitUsage;
public ulong JobSharedCommitUsage;
public ulong JobPrivateCommitUsage;
public ulong JobPeakPrivateCommitUsage;
public ulong JobPrivateCommitLimit;
public ulong JobTotalCommitLimit;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, Pack:=4, CharSet:=CharSet.Unicode)>
Public Structure MINIDUMP_PROCESS_VM_COUNTERS_2
Public Revision As UShort
Public Flags As UShort
Public PageFaultCount As UInteger
Public PeakWorkingSetSize As ULong
Public WorkingSetSize As ULong
Public QuotaPeakPagedPoolUsage As ULong
Public QuotaPagedPoolUsage As ULong
Public QuotaPeakNonPagedPoolUsage As ULong
Public QuotaNonPagedPoolUsage As ULong
Public PagefileUsage As ULong
Public PeakPagefileUsage As ULong
Public PeakVirtualSize As ULong
Public VirtualSize As ULong
Public PrivateUsage As ULong
Public PrivateWorkingSetSize As ULong
Public SharedCommitUsage As ULong
Public JobSharedCommitUsage As ULong
Public JobPrivateCommitUsage As ULong
Public JobPeakPrivateCommitUsage As ULong
Public JobPrivateCommitLimit As ULong
Public JobTotalCommitLimit As ULong
End Structureimport ctypes
from ctypes import wintypes
class MINIDUMP_PROCESS_VM_COUNTERS_2(ctypes.Structure):
_pack_ = 4
_fields_ = [
("Revision", ctypes.c_ushort),
("Flags", ctypes.c_ushort),
("PageFaultCount", wintypes.DWORD),
("PeakWorkingSetSize", ctypes.c_ulonglong),
("WorkingSetSize", ctypes.c_ulonglong),
("QuotaPeakPagedPoolUsage", ctypes.c_ulonglong),
("QuotaPagedPoolUsage", ctypes.c_ulonglong),
("QuotaPeakNonPagedPoolUsage", ctypes.c_ulonglong),
("QuotaNonPagedPoolUsage", ctypes.c_ulonglong),
("PagefileUsage", ctypes.c_ulonglong),
("PeakPagefileUsage", ctypes.c_ulonglong),
("PeakVirtualSize", ctypes.c_ulonglong),
("VirtualSize", ctypes.c_ulonglong),
("PrivateUsage", ctypes.c_ulonglong),
("PrivateWorkingSetSize", ctypes.c_ulonglong),
("SharedCommitUsage", ctypes.c_ulonglong),
("JobSharedCommitUsage", ctypes.c_ulonglong),
("JobPrivateCommitUsage", ctypes.c_ulonglong),
("JobPeakPrivateCommitUsage", ctypes.c_ulonglong),
("JobPrivateCommitLimit", ctypes.c_ulonglong),
("JobTotalCommitLimit", ctypes.c_ulonglong),
]#[repr(C, packed(4))]
pub struct MINIDUMP_PROCESS_VM_COUNTERS_2 {
pub Revision: u16,
pub Flags: u16,
pub PageFaultCount: u32,
pub PeakWorkingSetSize: u64,
pub WorkingSetSize: u64,
pub QuotaPeakPagedPoolUsage: u64,
pub QuotaPagedPoolUsage: u64,
pub QuotaPeakNonPagedPoolUsage: u64,
pub QuotaNonPagedPoolUsage: u64,
pub PagefileUsage: u64,
pub PeakPagefileUsage: u64,
pub PeakVirtualSize: u64,
pub VirtualSize: u64,
pub PrivateUsage: u64,
pub PrivateWorkingSetSize: u64,
pub SharedCommitUsage: u64,
pub JobSharedCommitUsage: u64,
pub JobPrivateCommitUsage: u64,
pub JobPeakPrivateCommitUsage: u64,
pub JobPrivateCommitLimit: u64,
pub JobTotalCommitLimit: u64,
}import "golang.org/x/sys/windows"
type MINIDUMP_PROCESS_VM_COUNTERS_2 struct {
Revision uint16
Flags uint16
PageFaultCount uint32
PeakWorkingSetSize uint64
WorkingSetSize uint64
QuotaPeakPagedPoolUsage uint64
QuotaPagedPoolUsage uint64
QuotaPeakNonPagedPoolUsage uint64
QuotaNonPagedPoolUsage uint64
PagefileUsage uint64
PeakPagefileUsage uint64
PeakVirtualSize uint64
VirtualSize uint64
PrivateUsage uint64
PrivateWorkingSetSize uint64
SharedCommitUsage uint64
JobSharedCommitUsage uint64
JobPrivateCommitUsage uint64
JobPeakPrivateCommitUsage uint64
JobPrivateCommitLimit uint64
JobTotalCommitLimit uint64
}type
MINIDUMP_PROCESS_VM_COUNTERS_2 = packed record
Revision: Word;
Flags: Word;
PageFaultCount: DWORD;
PeakWorkingSetSize: UInt64;
WorkingSetSize: UInt64;
QuotaPeakPagedPoolUsage: UInt64;
QuotaPagedPoolUsage: UInt64;
QuotaPeakNonPagedPoolUsage: UInt64;
QuotaNonPagedPoolUsage: UInt64;
PagefileUsage: UInt64;
PeakPagefileUsage: UInt64;
PeakVirtualSize: UInt64;
VirtualSize: UInt64;
PrivateUsage: UInt64;
PrivateWorkingSetSize: UInt64;
SharedCommitUsage: UInt64;
JobSharedCommitUsage: UInt64;
JobPrivateCommitUsage: UInt64;
JobPeakPrivateCommitUsage: UInt64;
JobPrivateCommitLimit: UInt64;
JobTotalCommitLimit: UInt64;
end;const MINIDUMP_PROCESS_VM_COUNTERS_2 = extern struct {
Revision: u16,
Flags: u16,
PageFaultCount: u32,
PeakWorkingSetSize: u64,
WorkingSetSize: u64,
QuotaPeakPagedPoolUsage: u64,
QuotaPagedPoolUsage: u64,
QuotaPeakNonPagedPoolUsage: u64,
QuotaNonPagedPoolUsage: u64,
PagefileUsage: u64,
PeakPagefileUsage: u64,
PeakVirtualSize: u64,
VirtualSize: u64,
PrivateUsage: u64,
PrivateWorkingSetSize: u64,
SharedCommitUsage: u64,
JobSharedCommitUsage: u64,
JobPrivateCommitUsage: u64,
JobPeakPrivateCommitUsage: u64,
JobPrivateCommitLimit: u64,
JobTotalCommitLimit: u64,
};type
MINIDUMP_PROCESS_VM_COUNTERS_2 {.packed.} = object
Revision: uint16
Flags: uint16
PageFaultCount: uint32
PeakWorkingSetSize: uint64
WorkingSetSize: uint64
QuotaPeakPagedPoolUsage: uint64
QuotaPagedPoolUsage: uint64
QuotaPeakNonPagedPoolUsage: uint64
QuotaNonPagedPoolUsage: uint64
PagefileUsage: uint64
PeakPagefileUsage: uint64
PeakVirtualSize: uint64
VirtualSize: uint64
PrivateUsage: uint64
PrivateWorkingSetSize: uint64
SharedCommitUsage: uint64
JobSharedCommitUsage: uint64
JobPrivateCommitUsage: uint64
JobPeakPrivateCommitUsage: uint64
JobPrivateCommitLimit: uint64
JobTotalCommitLimit: uint64align(4)
struct MINIDUMP_PROCESS_VM_COUNTERS_2
{
ushort Revision;
ushort Flags;
uint PageFaultCount;
ulong PeakWorkingSetSize;
ulong WorkingSetSize;
ulong QuotaPeakPagedPoolUsage;
ulong QuotaPagedPoolUsage;
ulong QuotaPeakNonPagedPoolUsage;
ulong QuotaNonPagedPoolUsage;
ulong PagefileUsage;
ulong PeakPagefileUsage;
ulong PeakVirtualSize;
ulong VirtualSize;
ulong PrivateUsage;
ulong PrivateWorkingSetSize;
ulong SharedCommitUsage;
ulong JobSharedCommitUsage;
ulong JobPrivateCommitUsage;
ulong JobPeakPrivateCommitUsage;
ulong JobPrivateCommitLimit;
ulong JobTotalCommitLimit;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; MINIDUMP_PROCESS_VM_COUNTERS_2 サイズ: 152 バイト(x64)
dim st, 38 ; 4byte整数×38(構造体サイズ 152 / 4 切り上げ)
; Revision : WORD (+0, 2byte) wpoke st,0,値 / 値 = wpeek(st,0)
; Flags : WORD (+2, 2byte) wpoke st,2,値 / 値 = wpeek(st,2)
; PageFaultCount : DWORD (+4, 4byte) st.1 = 値 / 値 = st.1 (lpoke/lpeek も可)
; PeakWorkingSetSize : ULONGLONG (+8, 8byte) qpoke st,8,値 / qpeek(st,8) ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; WorkingSetSize : ULONGLONG (+16, 8byte) qpoke st,16,値 / qpeek(st,16) ※IronHSPのみ。3.7/3.8は lpoke st,16,下位 : lpoke st,20,上位
; QuotaPeakPagedPoolUsage : ULONGLONG (+24, 8byte) qpoke st,24,値 / qpeek(st,24) ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; QuotaPagedPoolUsage : ULONGLONG (+32, 8byte) qpoke st,32,値 / qpeek(st,32) ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; QuotaPeakNonPagedPoolUsage : ULONGLONG (+40, 8byte) qpoke st,40,値 / qpeek(st,40) ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; QuotaNonPagedPoolUsage : ULONGLONG (+48, 8byte) qpoke st,48,値 / qpeek(st,48) ※IronHSPのみ。3.7/3.8は lpoke st,48,下位 : lpoke st,52,上位
; PagefileUsage : ULONGLONG (+56, 8byte) qpoke st,56,値 / qpeek(st,56) ※IronHSPのみ。3.7/3.8は lpoke st,56,下位 : lpoke st,60,上位
; PeakPagefileUsage : ULONGLONG (+64, 8byte) qpoke st,64,値 / qpeek(st,64) ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; PeakVirtualSize : ULONGLONG (+72, 8byte) qpoke st,72,値 / qpeek(st,72) ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; VirtualSize : ULONGLONG (+80, 8byte) qpoke st,80,値 / qpeek(st,80) ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; PrivateUsage : ULONGLONG (+88, 8byte) qpoke st,88,値 / qpeek(st,88) ※IronHSPのみ。3.7/3.8は lpoke st,88,下位 : lpoke st,92,上位
; PrivateWorkingSetSize : ULONGLONG (+96, 8byte) qpoke st,96,値 / qpeek(st,96) ※IronHSPのみ。3.7/3.8は lpoke st,96,下位 : lpoke st,100,上位
; SharedCommitUsage : ULONGLONG (+104, 8byte) qpoke st,104,値 / qpeek(st,104) ※IronHSPのみ。3.7/3.8は lpoke st,104,下位 : lpoke st,108,上位
; JobSharedCommitUsage : ULONGLONG (+112, 8byte) qpoke st,112,値 / qpeek(st,112) ※IronHSPのみ。3.7/3.8は lpoke st,112,下位 : lpoke st,116,上位
; JobPrivateCommitUsage : ULONGLONG (+120, 8byte) qpoke st,120,値 / qpeek(st,120) ※IronHSPのみ。3.7/3.8は lpoke st,120,下位 : lpoke st,124,上位
; JobPeakPrivateCommitUsage : ULONGLONG (+128, 8byte) qpoke st,128,値 / qpeek(st,128) ※IronHSPのみ。3.7/3.8は lpoke st,128,下位 : lpoke st,132,上位
; JobPrivateCommitLimit : ULONGLONG (+136, 8byte) qpoke st,136,値 / qpeek(st,136) ※IronHSPのみ。3.7/3.8は lpoke st,136,下位 : lpoke st,140,上位
; JobTotalCommitLimit : ULONGLONG (+144, 8byte) qpoke st,144,値 / qpeek(st,144) ※IronHSPのみ。3.7/3.8は lpoke st,144,下位 : lpoke st,148,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global MINIDUMP_PROCESS_VM_COUNTERS_2, pack=4
#field short Revision
#field short Flags
#field int PageFaultCount
#field int64 PeakWorkingSetSize
#field int64 WorkingSetSize
#field int64 QuotaPeakPagedPoolUsage
#field int64 QuotaPagedPoolUsage
#field int64 QuotaPeakNonPagedPoolUsage
#field int64 QuotaNonPagedPoolUsage
#field int64 PagefileUsage
#field int64 PeakPagefileUsage
#field int64 PeakVirtualSize
#field int64 VirtualSize
#field int64 PrivateUsage
#field int64 PrivateWorkingSetSize
#field int64 SharedCommitUsage
#field int64 JobSharedCommitUsage
#field int64 JobPrivateCommitUsage
#field int64 JobPeakPrivateCommitUsage
#field int64 JobPrivateCommitLimit
#field int64 JobTotalCommitLimit
#endstruct
stdim st, MINIDUMP_PROCESS_VM_COUNTERS_2 ; NSTRUCT 変数を確保
st->Revision = 100
mes "Revision=" + st->Revision