ホーム › System.Diagnostics.Debug › MINIDUMP_SYSTEM_FILECACHE_INFORMATION
MINIDUMP_SYSTEM_FILECACHE_INFORMATION
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| CurrentSize | ULONGLONG | 8 | +0 | +0 | 現在のファイルキャッシュサイズ(バイト)。 |
| PeakSize | ULONGLONG | 8 | +8 | +8 | ファイルキャッシュのピークサイズ。 |
| PageFaultCount | DWORD | 4 | +16 | +16 | ファイルキャッシュのページフォルト数。 |
| MinimumWorkingSet | ULONGLONG | 8 | +20 | +20 | 最小ワーキングセットサイズ。 |
| MaximumWorkingSet | ULONGLONG | 8 | +28 | +28 | 最大ワーキングセットサイズ。 |
| CurrentSizeIncludingTransitionInPages | ULONGLONG | 8 | +36 | +36 | 遷移ページを含む現在サイズ(ページ数)。 |
| PeakSizeIncludingTransitionInPages | ULONGLONG | 8 | +44 | +44 | 遷移ページを含むピークサイズ(ページ数)。 |
| TransitionRePurposeCount | DWORD | 4 | +52 | +52 | 遷移ページの再利用回数。 |
| Flags | DWORD | 4 | +56 | +56 | ファイルキャッシュのフラグ。 |
各言語での定義
#include <windows.h>
// MINIDUMP_SYSTEM_FILECACHE_INFORMATION (x64 60 / x86 60 バイト)
#pragma pack(push, 4)
typedef struct MINIDUMP_SYSTEM_FILECACHE_INFORMATION {
ULONGLONG CurrentSize;
ULONGLONG PeakSize;
DWORD PageFaultCount;
ULONGLONG MinimumWorkingSet;
ULONGLONG MaximumWorkingSet;
ULONGLONG CurrentSizeIncludingTransitionInPages;
ULONGLONG PeakSizeIncludingTransitionInPages;
DWORD TransitionRePurposeCount;
DWORD Flags;
} MINIDUMP_SYSTEM_FILECACHE_INFORMATION;
#pragma pack(pop)using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Unicode)]
public struct MINIDUMP_SYSTEM_FILECACHE_INFORMATION
{
public ulong CurrentSize;
public ulong PeakSize;
public uint PageFaultCount;
public ulong MinimumWorkingSet;
public ulong MaximumWorkingSet;
public ulong CurrentSizeIncludingTransitionInPages;
public ulong PeakSizeIncludingTransitionInPages;
public uint TransitionRePurposeCount;
public uint Flags;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, Pack:=4, CharSet:=CharSet.Unicode)>
Public Structure MINIDUMP_SYSTEM_FILECACHE_INFORMATION
Public CurrentSize As ULong
Public PeakSize As ULong
Public PageFaultCount As UInteger
Public MinimumWorkingSet As ULong
Public MaximumWorkingSet As ULong
Public CurrentSizeIncludingTransitionInPages As ULong
Public PeakSizeIncludingTransitionInPages As ULong
Public TransitionRePurposeCount As UInteger
Public Flags As UInteger
End Structureimport ctypes
from ctypes import wintypes
class MINIDUMP_SYSTEM_FILECACHE_INFORMATION(ctypes.Structure):
_pack_ = 4
_fields_ = [
("CurrentSize", ctypes.c_ulonglong),
("PeakSize", ctypes.c_ulonglong),
("PageFaultCount", wintypes.DWORD),
("MinimumWorkingSet", ctypes.c_ulonglong),
("MaximumWorkingSet", ctypes.c_ulonglong),
("CurrentSizeIncludingTransitionInPages", ctypes.c_ulonglong),
("PeakSizeIncludingTransitionInPages", ctypes.c_ulonglong),
("TransitionRePurposeCount", wintypes.DWORD),
("Flags", wintypes.DWORD),
]#[repr(C, packed(4))]
pub struct MINIDUMP_SYSTEM_FILECACHE_INFORMATION {
pub CurrentSize: u64,
pub PeakSize: u64,
pub PageFaultCount: u32,
pub MinimumWorkingSet: u64,
pub MaximumWorkingSet: u64,
pub CurrentSizeIncludingTransitionInPages: u64,
pub PeakSizeIncludingTransitionInPages: u64,
pub TransitionRePurposeCount: u32,
pub Flags: u32,
}import "golang.org/x/sys/windows"
type MINIDUMP_SYSTEM_FILECACHE_INFORMATION struct {
CurrentSize uint64
PeakSize uint64
PageFaultCount uint32
MinimumWorkingSet uint64
MaximumWorkingSet uint64
CurrentSizeIncludingTransitionInPages uint64
PeakSizeIncludingTransitionInPages uint64
TransitionRePurposeCount uint32
Flags uint32
}type
MINIDUMP_SYSTEM_FILECACHE_INFORMATION = packed record
CurrentSize: UInt64;
PeakSize: UInt64;
PageFaultCount: DWORD;
MinimumWorkingSet: UInt64;
MaximumWorkingSet: UInt64;
CurrentSizeIncludingTransitionInPages: UInt64;
PeakSizeIncludingTransitionInPages: UInt64;
TransitionRePurposeCount: DWORD;
Flags: DWORD;
end;const MINIDUMP_SYSTEM_FILECACHE_INFORMATION = extern struct {
CurrentSize: u64,
PeakSize: u64,
PageFaultCount: u32,
MinimumWorkingSet: u64,
MaximumWorkingSet: u64,
CurrentSizeIncludingTransitionInPages: u64,
PeakSizeIncludingTransitionInPages: u64,
TransitionRePurposeCount: u32,
Flags: u32,
};type
MINIDUMP_SYSTEM_FILECACHE_INFORMATION {.packed.} = object
CurrentSize: uint64
PeakSize: uint64
PageFaultCount: uint32
MinimumWorkingSet: uint64
MaximumWorkingSet: uint64
CurrentSizeIncludingTransitionInPages: uint64
PeakSizeIncludingTransitionInPages: uint64
TransitionRePurposeCount: uint32
Flags: uint32align(4)
struct MINIDUMP_SYSTEM_FILECACHE_INFORMATION
{
ulong CurrentSize;
ulong PeakSize;
uint PageFaultCount;
ulong MinimumWorkingSet;
ulong MaximumWorkingSet;
ulong CurrentSizeIncludingTransitionInPages;
ulong PeakSizeIncludingTransitionInPages;
uint TransitionRePurposeCount;
uint Flags;
}HSP用 定義
HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。
; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; MINIDUMP_SYSTEM_FILECACHE_INFORMATION サイズ: 60 バイト(x64)
dim st, 15 ; 4byte整数×15(構造体サイズ 60 / 4 切り上げ)
; CurrentSize : ULONGLONG (+0, 8byte) qpoke st,0,値 / qpeek(st,0) ※IronHSPのみ。3.7/3.8は lpoke st,0,下位 : lpoke st,4,上位
; PeakSize : ULONGLONG (+8, 8byte) qpoke st,8,値 / qpeek(st,8) ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; PageFaultCount : DWORD (+16, 4byte) st.4 = 値 / 値 = st.4 (lpoke/lpeek も可)
; MinimumWorkingSet : ULONGLONG (+20, 8byte) qpoke st,20,値 / qpeek(st,20) ※IronHSPのみ。3.7/3.8は lpoke st,20,下位 : lpoke st,24,上位
; MaximumWorkingSet : ULONGLONG (+28, 8byte) qpoke st,28,値 / qpeek(st,28) ※IronHSPのみ。3.7/3.8は lpoke st,28,下位 : lpoke st,32,上位
; CurrentSizeIncludingTransitionInPages : ULONGLONG (+36, 8byte) qpoke st,36,値 / qpeek(st,36) ※IronHSPのみ。3.7/3.8は lpoke st,36,下位 : lpoke st,40,上位
; PeakSizeIncludingTransitionInPages : ULONGLONG (+44, 8byte) qpoke st,44,値 / qpeek(st,44) ※IronHSPのみ。3.7/3.8は lpoke st,44,下位 : lpoke st,48,上位
; TransitionRePurposeCount : DWORD (+52, 4byte) st.13 = 値 / 値 = st.13 (lpoke/lpeek も可)
; Flags : DWORD (+56, 4byte) st.14 = 値 / 値 = st.14 (lpoke/lpeek も可)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global MINIDUMP_SYSTEM_FILECACHE_INFORMATION, pack=4
#field int64 CurrentSize
#field int64 PeakSize
#field int PageFaultCount
#field int64 MinimumWorkingSet
#field int64 MaximumWorkingSet
#field int64 CurrentSizeIncludingTransitionInPages
#field int64 PeakSizeIncludingTransitionInPages
#field int TransitionRePurposeCount
#field int Flags
#endstruct
stdim st, MINIDUMP_SYSTEM_FILECACHE_INFORMATION ; NSTRUCT 変数を確保
st->CurrentSize = 100
mes "CurrentSize=" + st->CurrentSize