ホーム › System.Diagnostics.Debug › MINIDUMP_PROCESS_VM_COUNTERS_1
MINIDUMP_PROCESS_VM_COUNTERS_1
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| Revision | WORD | 2 | +0 | +0 | この構造体のリビジョン番号。 |
| 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 | ページファイル使用量のピーク。 |
| PrivateUsage | ULONGLONG | 8 | +72 | +72 | プライベートコミットの使用量(バイト)。 |
各言語での定義
#include <windows.h>
// MINIDUMP_PROCESS_VM_COUNTERS_1 (x64 80 / x86 80 バイト)
#pragma pack(push, 4)
typedef struct MINIDUMP_PROCESS_VM_COUNTERS_1 {
WORD Revision;
DWORD PageFaultCount;
ULONGLONG PeakWorkingSetSize;
ULONGLONG WorkingSetSize;
ULONGLONG QuotaPeakPagedPoolUsage;
ULONGLONG QuotaPagedPoolUsage;
ULONGLONG QuotaPeakNonPagedPoolUsage;
ULONGLONG QuotaNonPagedPoolUsage;
ULONGLONG PagefileUsage;
ULONGLONG PeakPagefileUsage;
ULONGLONG PrivateUsage;
} MINIDUMP_PROCESS_VM_COUNTERS_1;
#pragma pack(pop)using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Unicode)]
public struct MINIDUMP_PROCESS_VM_COUNTERS_1
{
public ushort Revision;
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 PrivateUsage;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, Pack:=4, CharSet:=CharSet.Unicode)>
Public Structure MINIDUMP_PROCESS_VM_COUNTERS_1
Public Revision 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 PrivateUsage As ULong
End Structureimport ctypes
from ctypes import wintypes
class MINIDUMP_PROCESS_VM_COUNTERS_1(ctypes.Structure):
_pack_ = 4
_fields_ = [
("Revision", 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),
("PrivateUsage", ctypes.c_ulonglong),
]#[repr(C, packed(4))]
pub struct MINIDUMP_PROCESS_VM_COUNTERS_1 {
pub Revision: 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 PrivateUsage: u64,
}import "golang.org/x/sys/windows"
type MINIDUMP_PROCESS_VM_COUNTERS_1 struct {
Revision uint16
PageFaultCount uint32
PeakWorkingSetSize uint64
WorkingSetSize uint64
QuotaPeakPagedPoolUsage uint64
QuotaPagedPoolUsage uint64
QuotaPeakNonPagedPoolUsage uint64
QuotaNonPagedPoolUsage uint64
PagefileUsage uint64
PeakPagefileUsage uint64
PrivateUsage uint64
}type
MINIDUMP_PROCESS_VM_COUNTERS_1 = packed record
Revision: Word;
PageFaultCount: DWORD;
PeakWorkingSetSize: UInt64;
WorkingSetSize: UInt64;
QuotaPeakPagedPoolUsage: UInt64;
QuotaPagedPoolUsage: UInt64;
QuotaPeakNonPagedPoolUsage: UInt64;
QuotaNonPagedPoolUsage: UInt64;
PagefileUsage: UInt64;
PeakPagefileUsage: UInt64;
PrivateUsage: UInt64;
end;const MINIDUMP_PROCESS_VM_COUNTERS_1 = extern struct {
Revision: u16,
PageFaultCount: u32,
PeakWorkingSetSize: u64,
WorkingSetSize: u64,
QuotaPeakPagedPoolUsage: u64,
QuotaPagedPoolUsage: u64,
QuotaPeakNonPagedPoolUsage: u64,
QuotaNonPagedPoolUsage: u64,
PagefileUsage: u64,
PeakPagefileUsage: u64,
PrivateUsage: u64,
};type
MINIDUMP_PROCESS_VM_COUNTERS_1 {.packed.} = object
Revision: uint16
PageFaultCount: uint32
PeakWorkingSetSize: uint64
WorkingSetSize: uint64
QuotaPeakPagedPoolUsage: uint64
QuotaPagedPoolUsage: uint64
QuotaPeakNonPagedPoolUsage: uint64
QuotaNonPagedPoolUsage: uint64
PagefileUsage: uint64
PeakPagefileUsage: uint64
PrivateUsage: uint64align(4)
struct MINIDUMP_PROCESS_VM_COUNTERS_1
{
ushort Revision;
uint PageFaultCount;
ulong PeakWorkingSetSize;
ulong WorkingSetSize;
ulong QuotaPeakPagedPoolUsage;
ulong QuotaPagedPoolUsage;
ulong QuotaPeakNonPagedPoolUsage;
ulong QuotaNonPagedPoolUsage;
ulong PagefileUsage;
ulong PeakPagefileUsage;
ulong PrivateUsage;
}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_1 サイズ: 80 バイト(x64)
dim st, 20 ; 4byte整数×20(構造体サイズ 80 / 4 切り上げ)
; Revision : WORD (+0, 2byte) wpoke st,0,値 / 値 = wpeek(st,0)
; 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,上位
; PrivateUsage : ULONGLONG (+72, 8byte) qpoke st,72,値 / qpeek(st,72) ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global MINIDUMP_PROCESS_VM_COUNTERS_1, pack=4
#field short Revision
#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 PrivateUsage
#endstruct
stdim st, MINIDUMP_PROCESS_VM_COUNTERS_1 ; NSTRUCT 変数を確保
st->Revision = 100
mes "Revision=" + st->Revision