ホーム › System.Diagnostics.Debug › MINIDUMP_SYSTEM_MEMORY_INFO_1
MINIDUMP_SYSTEM_MEMORY_INFO_1
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| Revision | WORD | 2 | +0 | +0 | この構造体のリビジョン番号。 |
| Flags | WORD | 2 | +2 | +2 | 有効なフィールドを示すフラグ。 |
| BasicInfo | MINIDUMP_SYSTEM_BASIC_INFORMATION | 52 | +4 | +4 | システム基本情報(MINIDUMP_SYSTEM_BASIC_INFORMATION)。 |
| FileCacheInfo | MINIDUMP_SYSTEM_FILECACHE_INFORMATION | 60 | +56 | +56 | ファイルキャッシュ情報(MINIDUMP_SYSTEM_FILECACHE_INFORMATION)。 |
| BasicPerfInfo | MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION | 32 | +116 | +116 | 基本パフォーマンス情報。 |
| PerfInfo | MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION | 344 | +148 | +148 | 詳細パフォーマンス情報(MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION)。 |
各言語での定義
#include <windows.h>
// MINIDUMP_SYSTEM_BASIC_INFORMATION (x64 52 / x86 52 バイト)
#pragma pack(push, 4)
typedef struct MINIDUMP_SYSTEM_BASIC_INFORMATION {
DWORD TimerResolution;
DWORD PageSize;
DWORD NumberOfPhysicalPages;
DWORD LowestPhysicalPageNumber;
DWORD HighestPhysicalPageNumber;
DWORD AllocationGranularity;
ULONGLONG MinimumUserModeAddress;
ULONGLONG MaximumUserModeAddress;
ULONGLONG ActiveProcessorsAffinityMask;
DWORD NumberOfProcessors;
} MINIDUMP_SYSTEM_BASIC_INFORMATION;
#pragma pack(pop)
// 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)
// MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION (x64 32 / x86 32 バイト)
#pragma pack(push, 4)
typedef struct MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION {
ULONGLONG AvailablePages;
ULONGLONG CommittedPages;
ULONGLONG CommitLimit;
ULONGLONG PeakCommitment;
} MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION;
#pragma pack(pop)
// MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION (x64 344 / x86 344 バイト)
#pragma pack(push, 4)
typedef struct MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION {
ULONGLONG IdleProcessTime;
ULONGLONG IoReadTransferCount;
ULONGLONG IoWriteTransferCount;
ULONGLONG IoOtherTransferCount;
DWORD IoReadOperationCount;
DWORD IoWriteOperationCount;
DWORD IoOtherOperationCount;
DWORD AvailablePages;
DWORD CommittedPages;
DWORD CommitLimit;
DWORD PeakCommitment;
DWORD PageFaultCount;
DWORD CopyOnWriteCount;
DWORD TransitionCount;
DWORD CacheTransitionCount;
DWORD DemandZeroCount;
DWORD PageReadCount;
DWORD PageReadIoCount;
DWORD CacheReadCount;
DWORD CacheIoCount;
DWORD DirtyPagesWriteCount;
DWORD DirtyWriteIoCount;
DWORD MappedPagesWriteCount;
DWORD MappedWriteIoCount;
DWORD PagedPoolPages;
DWORD NonPagedPoolPages;
DWORD PagedPoolAllocs;
DWORD PagedPoolFrees;
DWORD NonPagedPoolAllocs;
DWORD NonPagedPoolFrees;
DWORD FreeSystemPtes;
DWORD ResidentSystemCodePage;
DWORD TotalSystemDriverPages;
DWORD TotalSystemCodePages;
DWORD NonPagedPoolLookasideHits;
DWORD PagedPoolLookasideHits;
DWORD AvailablePagedPoolPages;
DWORD ResidentSystemCachePage;
DWORD ResidentPagedPoolPage;
DWORD ResidentSystemDriverPage;
DWORD CcFastReadNoWait;
DWORD CcFastReadWait;
DWORD CcFastReadResourceMiss;
DWORD CcFastReadNotPossible;
DWORD CcFastMdlReadNoWait;
DWORD CcFastMdlReadWait;
DWORD CcFastMdlReadResourceMiss;
DWORD CcFastMdlReadNotPossible;
DWORD CcMapDataNoWait;
DWORD CcMapDataWait;
DWORD CcMapDataNoWaitMiss;
DWORD CcMapDataWaitMiss;
DWORD CcPinMappedDataCount;
DWORD CcPinReadNoWait;
DWORD CcPinReadWait;
DWORD CcPinReadNoWaitMiss;
DWORD CcPinReadWaitMiss;
DWORD CcCopyReadNoWait;
DWORD CcCopyReadWait;
DWORD CcCopyReadNoWaitMiss;
DWORD CcCopyReadWaitMiss;
DWORD CcMdlReadNoWait;
DWORD CcMdlReadWait;
DWORD CcMdlReadNoWaitMiss;
DWORD CcMdlReadWaitMiss;
DWORD CcReadAheadIos;
DWORD CcLazyWriteIos;
DWORD CcLazyWritePages;
DWORD CcDataFlushes;
DWORD CcDataPages;
DWORD ContextSwitches;
DWORD FirstLevelTbFills;
DWORD SecondLevelTbFills;
DWORD SystemCalls;
ULONGLONG CcTotalDirtyPages;
ULONGLONG CcDirtyPageThreshold;
LONGLONG ResidentAvailablePages;
ULONGLONG SharedCommittedPages;
} MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION;
#pragma pack(pop)
// MINIDUMP_SYSTEM_MEMORY_INFO_1 (x64 492 / x86 492 バイト)
#pragma pack(push, 4)
typedef struct MINIDUMP_SYSTEM_MEMORY_INFO_1 {
WORD Revision;
WORD Flags;
MINIDUMP_SYSTEM_BASIC_INFORMATION BasicInfo;
MINIDUMP_SYSTEM_FILECACHE_INFORMATION FileCacheInfo;
MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION BasicPerfInfo;
MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION PerfInfo;
} MINIDUMP_SYSTEM_MEMORY_INFO_1;
#pragma pack(pop)using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Unicode)]
public struct MINIDUMP_SYSTEM_BASIC_INFORMATION
{
public uint TimerResolution;
public uint PageSize;
public uint NumberOfPhysicalPages;
public uint LowestPhysicalPageNumber;
public uint HighestPhysicalPageNumber;
public uint AllocationGranularity;
public ulong MinimumUserModeAddress;
public ulong MaximumUserModeAddress;
public ulong ActiveProcessorsAffinityMask;
public uint NumberOfProcessors;
}
[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;
}
[StructLayout(LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Unicode)]
public struct MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION
{
public ulong AvailablePages;
public ulong CommittedPages;
public ulong CommitLimit;
public ulong PeakCommitment;
}
[StructLayout(LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Unicode)]
public struct MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION
{
public ulong IdleProcessTime;
public ulong IoReadTransferCount;
public ulong IoWriteTransferCount;
public ulong IoOtherTransferCount;
public uint IoReadOperationCount;
public uint IoWriteOperationCount;
public uint IoOtherOperationCount;
public uint AvailablePages;
public uint CommittedPages;
public uint CommitLimit;
public uint PeakCommitment;
public uint PageFaultCount;
public uint CopyOnWriteCount;
public uint TransitionCount;
public uint CacheTransitionCount;
public uint DemandZeroCount;
public uint PageReadCount;
public uint PageReadIoCount;
public uint CacheReadCount;
public uint CacheIoCount;
public uint DirtyPagesWriteCount;
public uint DirtyWriteIoCount;
public uint MappedPagesWriteCount;
public uint MappedWriteIoCount;
public uint PagedPoolPages;
public uint NonPagedPoolPages;
public uint PagedPoolAllocs;
public uint PagedPoolFrees;
public uint NonPagedPoolAllocs;
public uint NonPagedPoolFrees;
public uint FreeSystemPtes;
public uint ResidentSystemCodePage;
public uint TotalSystemDriverPages;
public uint TotalSystemCodePages;
public uint NonPagedPoolLookasideHits;
public uint PagedPoolLookasideHits;
public uint AvailablePagedPoolPages;
public uint ResidentSystemCachePage;
public uint ResidentPagedPoolPage;
public uint ResidentSystemDriverPage;
public uint CcFastReadNoWait;
public uint CcFastReadWait;
public uint CcFastReadResourceMiss;
public uint CcFastReadNotPossible;
public uint CcFastMdlReadNoWait;
public uint CcFastMdlReadWait;
public uint CcFastMdlReadResourceMiss;
public uint CcFastMdlReadNotPossible;
public uint CcMapDataNoWait;
public uint CcMapDataWait;
public uint CcMapDataNoWaitMiss;
public uint CcMapDataWaitMiss;
public uint CcPinMappedDataCount;
public uint CcPinReadNoWait;
public uint CcPinReadWait;
public uint CcPinReadNoWaitMiss;
public uint CcPinReadWaitMiss;
public uint CcCopyReadNoWait;
public uint CcCopyReadWait;
public uint CcCopyReadNoWaitMiss;
public uint CcCopyReadWaitMiss;
public uint CcMdlReadNoWait;
public uint CcMdlReadWait;
public uint CcMdlReadNoWaitMiss;
public uint CcMdlReadWaitMiss;
public uint CcReadAheadIos;
public uint CcLazyWriteIos;
public uint CcLazyWritePages;
public uint CcDataFlushes;
public uint CcDataPages;
public uint ContextSwitches;
public uint FirstLevelTbFills;
public uint SecondLevelTbFills;
public uint SystemCalls;
public ulong CcTotalDirtyPages;
public ulong CcDirtyPageThreshold;
public long ResidentAvailablePages;
public ulong SharedCommittedPages;
}
[StructLayout(LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Unicode)]
public struct MINIDUMP_SYSTEM_MEMORY_INFO_1
{
public ushort Revision;
public ushort Flags;
public MINIDUMP_SYSTEM_BASIC_INFORMATION BasicInfo;
public MINIDUMP_SYSTEM_FILECACHE_INFORMATION FileCacheInfo;
public MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION BasicPerfInfo;
public MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION PerfInfo;
}Imports System.Runtime.InteropServices
<StructLayout(LayoutKind.Sequential, Pack:=4, CharSet:=CharSet.Unicode)>
Public Structure MINIDUMP_SYSTEM_BASIC_INFORMATION
Public TimerResolution As UInteger
Public PageSize As UInteger
Public NumberOfPhysicalPages As UInteger
Public LowestPhysicalPageNumber As UInteger
Public HighestPhysicalPageNumber As UInteger
Public AllocationGranularity As UInteger
Public MinimumUserModeAddress As ULong
Public MaximumUserModeAddress As ULong
Public ActiveProcessorsAffinityMask As ULong
Public NumberOfProcessors As UInteger
End Structure
<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 Structure
<StructLayout(LayoutKind.Sequential, Pack:=4, CharSet:=CharSet.Unicode)>
Public Structure MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION
Public AvailablePages As ULong
Public CommittedPages As ULong
Public CommitLimit As ULong
Public PeakCommitment As ULong
End Structure
<StructLayout(LayoutKind.Sequential, Pack:=4, CharSet:=CharSet.Unicode)>
Public Structure MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION
Public IdleProcessTime As ULong
Public IoReadTransferCount As ULong
Public IoWriteTransferCount As ULong
Public IoOtherTransferCount As ULong
Public IoReadOperationCount As UInteger
Public IoWriteOperationCount As UInteger
Public IoOtherOperationCount As UInteger
Public AvailablePages As UInteger
Public CommittedPages As UInteger
Public CommitLimit As UInteger
Public PeakCommitment As UInteger
Public PageFaultCount As UInteger
Public CopyOnWriteCount As UInteger
Public TransitionCount As UInteger
Public CacheTransitionCount As UInteger
Public DemandZeroCount As UInteger
Public PageReadCount As UInteger
Public PageReadIoCount As UInteger
Public CacheReadCount As UInteger
Public CacheIoCount As UInteger
Public DirtyPagesWriteCount As UInteger
Public DirtyWriteIoCount As UInteger
Public MappedPagesWriteCount As UInteger
Public MappedWriteIoCount As UInteger
Public PagedPoolPages As UInteger
Public NonPagedPoolPages As UInteger
Public PagedPoolAllocs As UInteger
Public PagedPoolFrees As UInteger
Public NonPagedPoolAllocs As UInteger
Public NonPagedPoolFrees As UInteger
Public FreeSystemPtes As UInteger
Public ResidentSystemCodePage As UInteger
Public TotalSystemDriverPages As UInteger
Public TotalSystemCodePages As UInteger
Public NonPagedPoolLookasideHits As UInteger
Public PagedPoolLookasideHits As UInteger
Public AvailablePagedPoolPages As UInteger
Public ResidentSystemCachePage As UInteger
Public ResidentPagedPoolPage As UInteger
Public ResidentSystemDriverPage As UInteger
Public CcFastReadNoWait As UInteger
Public CcFastReadWait As UInteger
Public CcFastReadResourceMiss As UInteger
Public CcFastReadNotPossible As UInteger
Public CcFastMdlReadNoWait As UInteger
Public CcFastMdlReadWait As UInteger
Public CcFastMdlReadResourceMiss As UInteger
Public CcFastMdlReadNotPossible As UInteger
Public CcMapDataNoWait As UInteger
Public CcMapDataWait As UInteger
Public CcMapDataNoWaitMiss As UInteger
Public CcMapDataWaitMiss As UInteger
Public CcPinMappedDataCount As UInteger
Public CcPinReadNoWait As UInteger
Public CcPinReadWait As UInteger
Public CcPinReadNoWaitMiss As UInteger
Public CcPinReadWaitMiss As UInteger
Public CcCopyReadNoWait As UInteger
Public CcCopyReadWait As UInteger
Public CcCopyReadNoWaitMiss As UInteger
Public CcCopyReadWaitMiss As UInteger
Public CcMdlReadNoWait As UInteger
Public CcMdlReadWait As UInteger
Public CcMdlReadNoWaitMiss As UInteger
Public CcMdlReadWaitMiss As UInteger
Public CcReadAheadIos As UInteger
Public CcLazyWriteIos As UInteger
Public CcLazyWritePages As UInteger
Public CcDataFlushes As UInteger
Public CcDataPages As UInteger
Public ContextSwitches As UInteger
Public FirstLevelTbFills As UInteger
Public SecondLevelTbFills As UInteger
Public SystemCalls As UInteger
Public CcTotalDirtyPages As ULong
Public CcDirtyPageThreshold As ULong
Public ResidentAvailablePages As Long
Public SharedCommittedPages As ULong
End Structure
<StructLayout(LayoutKind.Sequential, Pack:=4, CharSet:=CharSet.Unicode)>
Public Structure MINIDUMP_SYSTEM_MEMORY_INFO_1
Public Revision As UShort
Public Flags As UShort
Public BasicInfo As MINIDUMP_SYSTEM_BASIC_INFORMATION
Public FileCacheInfo As MINIDUMP_SYSTEM_FILECACHE_INFORMATION
Public BasicPerfInfo As MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION
Public PerfInfo As MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION
End Structureimport ctypes
from ctypes import wintypes
class MINIDUMP_SYSTEM_BASIC_INFORMATION(ctypes.Structure):
_pack_ = 4
_fields_ = [
("TimerResolution", wintypes.DWORD),
("PageSize", wintypes.DWORD),
("NumberOfPhysicalPages", wintypes.DWORD),
("LowestPhysicalPageNumber", wintypes.DWORD),
("HighestPhysicalPageNumber", wintypes.DWORD),
("AllocationGranularity", wintypes.DWORD),
("MinimumUserModeAddress", ctypes.c_ulonglong),
("MaximumUserModeAddress", ctypes.c_ulonglong),
("ActiveProcessorsAffinityMask", ctypes.c_ulonglong),
("NumberOfProcessors", wintypes.DWORD),
]
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),
]
class MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION(ctypes.Structure):
_pack_ = 4
_fields_ = [
("AvailablePages", ctypes.c_ulonglong),
("CommittedPages", ctypes.c_ulonglong),
("CommitLimit", ctypes.c_ulonglong),
("PeakCommitment", ctypes.c_ulonglong),
]
class MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION(ctypes.Structure):
_pack_ = 4
_fields_ = [
("IdleProcessTime", ctypes.c_ulonglong),
("IoReadTransferCount", ctypes.c_ulonglong),
("IoWriteTransferCount", ctypes.c_ulonglong),
("IoOtherTransferCount", ctypes.c_ulonglong),
("IoReadOperationCount", wintypes.DWORD),
("IoWriteOperationCount", wintypes.DWORD),
("IoOtherOperationCount", wintypes.DWORD),
("AvailablePages", wintypes.DWORD),
("CommittedPages", wintypes.DWORD),
("CommitLimit", wintypes.DWORD),
("PeakCommitment", wintypes.DWORD),
("PageFaultCount", wintypes.DWORD),
("CopyOnWriteCount", wintypes.DWORD),
("TransitionCount", wintypes.DWORD),
("CacheTransitionCount", wintypes.DWORD),
("DemandZeroCount", wintypes.DWORD),
("PageReadCount", wintypes.DWORD),
("PageReadIoCount", wintypes.DWORD),
("CacheReadCount", wintypes.DWORD),
("CacheIoCount", wintypes.DWORD),
("DirtyPagesWriteCount", wintypes.DWORD),
("DirtyWriteIoCount", wintypes.DWORD),
("MappedPagesWriteCount", wintypes.DWORD),
("MappedWriteIoCount", wintypes.DWORD),
("PagedPoolPages", wintypes.DWORD),
("NonPagedPoolPages", wintypes.DWORD),
("PagedPoolAllocs", wintypes.DWORD),
("PagedPoolFrees", wintypes.DWORD),
("NonPagedPoolAllocs", wintypes.DWORD),
("NonPagedPoolFrees", wintypes.DWORD),
("FreeSystemPtes", wintypes.DWORD),
("ResidentSystemCodePage", wintypes.DWORD),
("TotalSystemDriverPages", wintypes.DWORD),
("TotalSystemCodePages", wintypes.DWORD),
("NonPagedPoolLookasideHits", wintypes.DWORD),
("PagedPoolLookasideHits", wintypes.DWORD),
("AvailablePagedPoolPages", wintypes.DWORD),
("ResidentSystemCachePage", wintypes.DWORD),
("ResidentPagedPoolPage", wintypes.DWORD),
("ResidentSystemDriverPage", wintypes.DWORD),
("CcFastReadNoWait", wintypes.DWORD),
("CcFastReadWait", wintypes.DWORD),
("CcFastReadResourceMiss", wintypes.DWORD),
("CcFastReadNotPossible", wintypes.DWORD),
("CcFastMdlReadNoWait", wintypes.DWORD),
("CcFastMdlReadWait", wintypes.DWORD),
("CcFastMdlReadResourceMiss", wintypes.DWORD),
("CcFastMdlReadNotPossible", wintypes.DWORD),
("CcMapDataNoWait", wintypes.DWORD),
("CcMapDataWait", wintypes.DWORD),
("CcMapDataNoWaitMiss", wintypes.DWORD),
("CcMapDataWaitMiss", wintypes.DWORD),
("CcPinMappedDataCount", wintypes.DWORD),
("CcPinReadNoWait", wintypes.DWORD),
("CcPinReadWait", wintypes.DWORD),
("CcPinReadNoWaitMiss", wintypes.DWORD),
("CcPinReadWaitMiss", wintypes.DWORD),
("CcCopyReadNoWait", wintypes.DWORD),
("CcCopyReadWait", wintypes.DWORD),
("CcCopyReadNoWaitMiss", wintypes.DWORD),
("CcCopyReadWaitMiss", wintypes.DWORD),
("CcMdlReadNoWait", wintypes.DWORD),
("CcMdlReadWait", wintypes.DWORD),
("CcMdlReadNoWaitMiss", wintypes.DWORD),
("CcMdlReadWaitMiss", wintypes.DWORD),
("CcReadAheadIos", wintypes.DWORD),
("CcLazyWriteIos", wintypes.DWORD),
("CcLazyWritePages", wintypes.DWORD),
("CcDataFlushes", wintypes.DWORD),
("CcDataPages", wintypes.DWORD),
("ContextSwitches", wintypes.DWORD),
("FirstLevelTbFills", wintypes.DWORD),
("SecondLevelTbFills", wintypes.DWORD),
("SystemCalls", wintypes.DWORD),
("CcTotalDirtyPages", ctypes.c_ulonglong),
("CcDirtyPageThreshold", ctypes.c_ulonglong),
("ResidentAvailablePages", ctypes.c_longlong),
("SharedCommittedPages", ctypes.c_ulonglong),
]
class MINIDUMP_SYSTEM_MEMORY_INFO_1(ctypes.Structure):
_pack_ = 4
_fields_ = [
("Revision", ctypes.c_ushort),
("Flags", ctypes.c_ushort),
("BasicInfo", MINIDUMP_SYSTEM_BASIC_INFORMATION),
("FileCacheInfo", MINIDUMP_SYSTEM_FILECACHE_INFORMATION),
("BasicPerfInfo", MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION),
("PerfInfo", MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION),
]#[repr(C, packed(4))]
pub struct MINIDUMP_SYSTEM_BASIC_INFORMATION {
pub TimerResolution: u32,
pub PageSize: u32,
pub NumberOfPhysicalPages: u32,
pub LowestPhysicalPageNumber: u32,
pub HighestPhysicalPageNumber: u32,
pub AllocationGranularity: u32,
pub MinimumUserModeAddress: u64,
pub MaximumUserModeAddress: u64,
pub ActiveProcessorsAffinityMask: u64,
pub NumberOfProcessors: u32,
}
#[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,
}
#[repr(C, packed(4))]
pub struct MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION {
pub AvailablePages: u64,
pub CommittedPages: u64,
pub CommitLimit: u64,
pub PeakCommitment: u64,
}
#[repr(C, packed(4))]
pub struct MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION {
pub IdleProcessTime: u64,
pub IoReadTransferCount: u64,
pub IoWriteTransferCount: u64,
pub IoOtherTransferCount: u64,
pub IoReadOperationCount: u32,
pub IoWriteOperationCount: u32,
pub IoOtherOperationCount: u32,
pub AvailablePages: u32,
pub CommittedPages: u32,
pub CommitLimit: u32,
pub PeakCommitment: u32,
pub PageFaultCount: u32,
pub CopyOnWriteCount: u32,
pub TransitionCount: u32,
pub CacheTransitionCount: u32,
pub DemandZeroCount: u32,
pub PageReadCount: u32,
pub PageReadIoCount: u32,
pub CacheReadCount: u32,
pub CacheIoCount: u32,
pub DirtyPagesWriteCount: u32,
pub DirtyWriteIoCount: u32,
pub MappedPagesWriteCount: u32,
pub MappedWriteIoCount: u32,
pub PagedPoolPages: u32,
pub NonPagedPoolPages: u32,
pub PagedPoolAllocs: u32,
pub PagedPoolFrees: u32,
pub NonPagedPoolAllocs: u32,
pub NonPagedPoolFrees: u32,
pub FreeSystemPtes: u32,
pub ResidentSystemCodePage: u32,
pub TotalSystemDriverPages: u32,
pub TotalSystemCodePages: u32,
pub NonPagedPoolLookasideHits: u32,
pub PagedPoolLookasideHits: u32,
pub AvailablePagedPoolPages: u32,
pub ResidentSystemCachePage: u32,
pub ResidentPagedPoolPage: u32,
pub ResidentSystemDriverPage: u32,
pub CcFastReadNoWait: u32,
pub CcFastReadWait: u32,
pub CcFastReadResourceMiss: u32,
pub CcFastReadNotPossible: u32,
pub CcFastMdlReadNoWait: u32,
pub CcFastMdlReadWait: u32,
pub CcFastMdlReadResourceMiss: u32,
pub CcFastMdlReadNotPossible: u32,
pub CcMapDataNoWait: u32,
pub CcMapDataWait: u32,
pub CcMapDataNoWaitMiss: u32,
pub CcMapDataWaitMiss: u32,
pub CcPinMappedDataCount: u32,
pub CcPinReadNoWait: u32,
pub CcPinReadWait: u32,
pub CcPinReadNoWaitMiss: u32,
pub CcPinReadWaitMiss: u32,
pub CcCopyReadNoWait: u32,
pub CcCopyReadWait: u32,
pub CcCopyReadNoWaitMiss: u32,
pub CcCopyReadWaitMiss: u32,
pub CcMdlReadNoWait: u32,
pub CcMdlReadWait: u32,
pub CcMdlReadNoWaitMiss: u32,
pub CcMdlReadWaitMiss: u32,
pub CcReadAheadIos: u32,
pub CcLazyWriteIos: u32,
pub CcLazyWritePages: u32,
pub CcDataFlushes: u32,
pub CcDataPages: u32,
pub ContextSwitches: u32,
pub FirstLevelTbFills: u32,
pub SecondLevelTbFills: u32,
pub SystemCalls: u32,
pub CcTotalDirtyPages: u64,
pub CcDirtyPageThreshold: u64,
pub ResidentAvailablePages: i64,
pub SharedCommittedPages: u64,
}
#[repr(C, packed(4))]
pub struct MINIDUMP_SYSTEM_MEMORY_INFO_1 {
pub Revision: u16,
pub Flags: u16,
pub BasicInfo: MINIDUMP_SYSTEM_BASIC_INFORMATION,
pub FileCacheInfo: MINIDUMP_SYSTEM_FILECACHE_INFORMATION,
pub BasicPerfInfo: MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION,
pub PerfInfo: MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION,
}import "golang.org/x/sys/windows"
type MINIDUMP_SYSTEM_BASIC_INFORMATION struct {
TimerResolution uint32
PageSize uint32
NumberOfPhysicalPages uint32
LowestPhysicalPageNumber uint32
HighestPhysicalPageNumber uint32
AllocationGranularity uint32
MinimumUserModeAddress uint64
MaximumUserModeAddress uint64
ActiveProcessorsAffinityMask uint64
NumberOfProcessors uint32
}
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_BASIC_PERFORMANCE_INFORMATION struct {
AvailablePages uint64
CommittedPages uint64
CommitLimit uint64
PeakCommitment uint64
}
type MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION struct {
IdleProcessTime uint64
IoReadTransferCount uint64
IoWriteTransferCount uint64
IoOtherTransferCount uint64
IoReadOperationCount uint32
IoWriteOperationCount uint32
IoOtherOperationCount uint32
AvailablePages uint32
CommittedPages uint32
CommitLimit uint32
PeakCommitment uint32
PageFaultCount uint32
CopyOnWriteCount uint32
TransitionCount uint32
CacheTransitionCount uint32
DemandZeroCount uint32
PageReadCount uint32
PageReadIoCount uint32
CacheReadCount uint32
CacheIoCount uint32
DirtyPagesWriteCount uint32
DirtyWriteIoCount uint32
MappedPagesWriteCount uint32
MappedWriteIoCount uint32
PagedPoolPages uint32
NonPagedPoolPages uint32
PagedPoolAllocs uint32
PagedPoolFrees uint32
NonPagedPoolAllocs uint32
NonPagedPoolFrees uint32
FreeSystemPtes uint32
ResidentSystemCodePage uint32
TotalSystemDriverPages uint32
TotalSystemCodePages uint32
NonPagedPoolLookasideHits uint32
PagedPoolLookasideHits uint32
AvailablePagedPoolPages uint32
ResidentSystemCachePage uint32
ResidentPagedPoolPage uint32
ResidentSystemDriverPage uint32
CcFastReadNoWait uint32
CcFastReadWait uint32
CcFastReadResourceMiss uint32
CcFastReadNotPossible uint32
CcFastMdlReadNoWait uint32
CcFastMdlReadWait uint32
CcFastMdlReadResourceMiss uint32
CcFastMdlReadNotPossible uint32
CcMapDataNoWait uint32
CcMapDataWait uint32
CcMapDataNoWaitMiss uint32
CcMapDataWaitMiss uint32
CcPinMappedDataCount uint32
CcPinReadNoWait uint32
CcPinReadWait uint32
CcPinReadNoWaitMiss uint32
CcPinReadWaitMiss uint32
CcCopyReadNoWait uint32
CcCopyReadWait uint32
CcCopyReadNoWaitMiss uint32
CcCopyReadWaitMiss uint32
CcMdlReadNoWait uint32
CcMdlReadWait uint32
CcMdlReadNoWaitMiss uint32
CcMdlReadWaitMiss uint32
CcReadAheadIos uint32
CcLazyWriteIos uint32
CcLazyWritePages uint32
CcDataFlushes uint32
CcDataPages uint32
ContextSwitches uint32
FirstLevelTbFills uint32
SecondLevelTbFills uint32
SystemCalls uint32
CcTotalDirtyPages uint64
CcDirtyPageThreshold uint64
ResidentAvailablePages int64
SharedCommittedPages uint64
}
type MINIDUMP_SYSTEM_MEMORY_INFO_1 struct {
Revision uint16
Flags uint16
BasicInfo MINIDUMP_SYSTEM_BASIC_INFORMATION
FileCacheInfo MINIDUMP_SYSTEM_FILECACHE_INFORMATION
BasicPerfInfo MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION
PerfInfo MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION
}type
MINIDUMP_SYSTEM_BASIC_INFORMATION = packed record
TimerResolution: DWORD;
PageSize: DWORD;
NumberOfPhysicalPages: DWORD;
LowestPhysicalPageNumber: DWORD;
HighestPhysicalPageNumber: DWORD;
AllocationGranularity: DWORD;
MinimumUserModeAddress: UInt64;
MaximumUserModeAddress: UInt64;
ActiveProcessorsAffinityMask: UInt64;
NumberOfProcessors: DWORD;
end;
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;
MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION = packed record
AvailablePages: UInt64;
CommittedPages: UInt64;
CommitLimit: UInt64;
PeakCommitment: UInt64;
end;
MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION = packed record
IdleProcessTime: UInt64;
IoReadTransferCount: UInt64;
IoWriteTransferCount: UInt64;
IoOtherTransferCount: UInt64;
IoReadOperationCount: DWORD;
IoWriteOperationCount: DWORD;
IoOtherOperationCount: DWORD;
AvailablePages: DWORD;
CommittedPages: DWORD;
CommitLimit: DWORD;
PeakCommitment: DWORD;
PageFaultCount: DWORD;
CopyOnWriteCount: DWORD;
TransitionCount: DWORD;
CacheTransitionCount: DWORD;
DemandZeroCount: DWORD;
PageReadCount: DWORD;
PageReadIoCount: DWORD;
CacheReadCount: DWORD;
CacheIoCount: DWORD;
DirtyPagesWriteCount: DWORD;
DirtyWriteIoCount: DWORD;
MappedPagesWriteCount: DWORD;
MappedWriteIoCount: DWORD;
PagedPoolPages: DWORD;
NonPagedPoolPages: DWORD;
PagedPoolAllocs: DWORD;
PagedPoolFrees: DWORD;
NonPagedPoolAllocs: DWORD;
NonPagedPoolFrees: DWORD;
FreeSystemPtes: DWORD;
ResidentSystemCodePage: DWORD;
TotalSystemDriverPages: DWORD;
TotalSystemCodePages: DWORD;
NonPagedPoolLookasideHits: DWORD;
PagedPoolLookasideHits: DWORD;
AvailablePagedPoolPages: DWORD;
ResidentSystemCachePage: DWORD;
ResidentPagedPoolPage: DWORD;
ResidentSystemDriverPage: DWORD;
CcFastReadNoWait: DWORD;
CcFastReadWait: DWORD;
CcFastReadResourceMiss: DWORD;
CcFastReadNotPossible: DWORD;
CcFastMdlReadNoWait: DWORD;
CcFastMdlReadWait: DWORD;
CcFastMdlReadResourceMiss: DWORD;
CcFastMdlReadNotPossible: DWORD;
CcMapDataNoWait: DWORD;
CcMapDataWait: DWORD;
CcMapDataNoWaitMiss: DWORD;
CcMapDataWaitMiss: DWORD;
CcPinMappedDataCount: DWORD;
CcPinReadNoWait: DWORD;
CcPinReadWait: DWORD;
CcPinReadNoWaitMiss: DWORD;
CcPinReadWaitMiss: DWORD;
CcCopyReadNoWait: DWORD;
CcCopyReadWait: DWORD;
CcCopyReadNoWaitMiss: DWORD;
CcCopyReadWaitMiss: DWORD;
CcMdlReadNoWait: DWORD;
CcMdlReadWait: DWORD;
CcMdlReadNoWaitMiss: DWORD;
CcMdlReadWaitMiss: DWORD;
CcReadAheadIos: DWORD;
CcLazyWriteIos: DWORD;
CcLazyWritePages: DWORD;
CcDataFlushes: DWORD;
CcDataPages: DWORD;
ContextSwitches: DWORD;
FirstLevelTbFills: DWORD;
SecondLevelTbFills: DWORD;
SystemCalls: DWORD;
CcTotalDirtyPages: UInt64;
CcDirtyPageThreshold: UInt64;
ResidentAvailablePages: Int64;
SharedCommittedPages: UInt64;
end;
MINIDUMP_SYSTEM_MEMORY_INFO_1 = packed record
Revision: Word;
Flags: Word;
BasicInfo: MINIDUMP_SYSTEM_BASIC_INFORMATION;
FileCacheInfo: MINIDUMP_SYSTEM_FILECACHE_INFORMATION;
BasicPerfInfo: MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION;
PerfInfo: MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION;
end;const MINIDUMP_SYSTEM_BASIC_INFORMATION = extern struct {
TimerResolution: u32,
PageSize: u32,
NumberOfPhysicalPages: u32,
LowestPhysicalPageNumber: u32,
HighestPhysicalPageNumber: u32,
AllocationGranularity: u32,
MinimumUserModeAddress: u64,
MaximumUserModeAddress: u64,
ActiveProcessorsAffinityMask: u64,
NumberOfProcessors: u32,
};
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,
};
const MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION = extern struct {
AvailablePages: u64,
CommittedPages: u64,
CommitLimit: u64,
PeakCommitment: u64,
};
const MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION = extern struct {
IdleProcessTime: u64,
IoReadTransferCount: u64,
IoWriteTransferCount: u64,
IoOtherTransferCount: u64,
IoReadOperationCount: u32,
IoWriteOperationCount: u32,
IoOtherOperationCount: u32,
AvailablePages: u32,
CommittedPages: u32,
CommitLimit: u32,
PeakCommitment: u32,
PageFaultCount: u32,
CopyOnWriteCount: u32,
TransitionCount: u32,
CacheTransitionCount: u32,
DemandZeroCount: u32,
PageReadCount: u32,
PageReadIoCount: u32,
CacheReadCount: u32,
CacheIoCount: u32,
DirtyPagesWriteCount: u32,
DirtyWriteIoCount: u32,
MappedPagesWriteCount: u32,
MappedWriteIoCount: u32,
PagedPoolPages: u32,
NonPagedPoolPages: u32,
PagedPoolAllocs: u32,
PagedPoolFrees: u32,
NonPagedPoolAllocs: u32,
NonPagedPoolFrees: u32,
FreeSystemPtes: u32,
ResidentSystemCodePage: u32,
TotalSystemDriverPages: u32,
TotalSystemCodePages: u32,
NonPagedPoolLookasideHits: u32,
PagedPoolLookasideHits: u32,
AvailablePagedPoolPages: u32,
ResidentSystemCachePage: u32,
ResidentPagedPoolPage: u32,
ResidentSystemDriverPage: u32,
CcFastReadNoWait: u32,
CcFastReadWait: u32,
CcFastReadResourceMiss: u32,
CcFastReadNotPossible: u32,
CcFastMdlReadNoWait: u32,
CcFastMdlReadWait: u32,
CcFastMdlReadResourceMiss: u32,
CcFastMdlReadNotPossible: u32,
CcMapDataNoWait: u32,
CcMapDataWait: u32,
CcMapDataNoWaitMiss: u32,
CcMapDataWaitMiss: u32,
CcPinMappedDataCount: u32,
CcPinReadNoWait: u32,
CcPinReadWait: u32,
CcPinReadNoWaitMiss: u32,
CcPinReadWaitMiss: u32,
CcCopyReadNoWait: u32,
CcCopyReadWait: u32,
CcCopyReadNoWaitMiss: u32,
CcCopyReadWaitMiss: u32,
CcMdlReadNoWait: u32,
CcMdlReadWait: u32,
CcMdlReadNoWaitMiss: u32,
CcMdlReadWaitMiss: u32,
CcReadAheadIos: u32,
CcLazyWriteIos: u32,
CcLazyWritePages: u32,
CcDataFlushes: u32,
CcDataPages: u32,
ContextSwitches: u32,
FirstLevelTbFills: u32,
SecondLevelTbFills: u32,
SystemCalls: u32,
CcTotalDirtyPages: u64,
CcDirtyPageThreshold: u64,
ResidentAvailablePages: i64,
SharedCommittedPages: u64,
};
const MINIDUMP_SYSTEM_MEMORY_INFO_1 = extern struct {
Revision: u16,
Flags: u16,
BasicInfo: MINIDUMP_SYSTEM_BASIC_INFORMATION,
FileCacheInfo: MINIDUMP_SYSTEM_FILECACHE_INFORMATION,
BasicPerfInfo: MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION,
PerfInfo: MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION,
};type
MINIDUMP_SYSTEM_BASIC_INFORMATION {.packed.} = object
TimerResolution: uint32
PageSize: uint32
NumberOfPhysicalPages: uint32
LowestPhysicalPageNumber: uint32
HighestPhysicalPageNumber: uint32
AllocationGranularity: uint32
MinimumUserModeAddress: uint64
MaximumUserModeAddress: uint64
ActiveProcessorsAffinityMask: uint64
NumberOfProcessors: uint32
MINIDUMP_SYSTEM_FILECACHE_INFORMATION {.packed.} = object
CurrentSize: uint64
PeakSize: uint64
PageFaultCount: uint32
MinimumWorkingSet: uint64
MaximumWorkingSet: uint64
CurrentSizeIncludingTransitionInPages: uint64
PeakSizeIncludingTransitionInPages: uint64
TransitionRePurposeCount: uint32
Flags: uint32
MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION {.packed.} = object
AvailablePages: uint64
CommittedPages: uint64
CommitLimit: uint64
PeakCommitment: uint64
MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION {.packed.} = object
IdleProcessTime: uint64
IoReadTransferCount: uint64
IoWriteTransferCount: uint64
IoOtherTransferCount: uint64
IoReadOperationCount: uint32
IoWriteOperationCount: uint32
IoOtherOperationCount: uint32
AvailablePages: uint32
CommittedPages: uint32
CommitLimit: uint32
PeakCommitment: uint32
PageFaultCount: uint32
CopyOnWriteCount: uint32
TransitionCount: uint32
CacheTransitionCount: uint32
DemandZeroCount: uint32
PageReadCount: uint32
PageReadIoCount: uint32
CacheReadCount: uint32
CacheIoCount: uint32
DirtyPagesWriteCount: uint32
DirtyWriteIoCount: uint32
MappedPagesWriteCount: uint32
MappedWriteIoCount: uint32
PagedPoolPages: uint32
NonPagedPoolPages: uint32
PagedPoolAllocs: uint32
PagedPoolFrees: uint32
NonPagedPoolAllocs: uint32
NonPagedPoolFrees: uint32
FreeSystemPtes: uint32
ResidentSystemCodePage: uint32
TotalSystemDriverPages: uint32
TotalSystemCodePages: uint32
NonPagedPoolLookasideHits: uint32
PagedPoolLookasideHits: uint32
AvailablePagedPoolPages: uint32
ResidentSystemCachePage: uint32
ResidentPagedPoolPage: uint32
ResidentSystemDriverPage: uint32
CcFastReadNoWait: uint32
CcFastReadWait: uint32
CcFastReadResourceMiss: uint32
CcFastReadNotPossible: uint32
CcFastMdlReadNoWait: uint32
CcFastMdlReadWait: uint32
CcFastMdlReadResourceMiss: uint32
CcFastMdlReadNotPossible: uint32
CcMapDataNoWait: uint32
CcMapDataWait: uint32
CcMapDataNoWaitMiss: uint32
CcMapDataWaitMiss: uint32
CcPinMappedDataCount: uint32
CcPinReadNoWait: uint32
CcPinReadWait: uint32
CcPinReadNoWaitMiss: uint32
CcPinReadWaitMiss: uint32
CcCopyReadNoWait: uint32
CcCopyReadWait: uint32
CcCopyReadNoWaitMiss: uint32
CcCopyReadWaitMiss: uint32
CcMdlReadNoWait: uint32
CcMdlReadWait: uint32
CcMdlReadNoWaitMiss: uint32
CcMdlReadWaitMiss: uint32
CcReadAheadIos: uint32
CcLazyWriteIos: uint32
CcLazyWritePages: uint32
CcDataFlushes: uint32
CcDataPages: uint32
ContextSwitches: uint32
FirstLevelTbFills: uint32
SecondLevelTbFills: uint32
SystemCalls: uint32
CcTotalDirtyPages: uint64
CcDirtyPageThreshold: uint64
ResidentAvailablePages: int64
SharedCommittedPages: uint64
MINIDUMP_SYSTEM_MEMORY_INFO_1 {.packed.} = object
Revision: uint16
Flags: uint16
BasicInfo: MINIDUMP_SYSTEM_BASIC_INFORMATION
FileCacheInfo: MINIDUMP_SYSTEM_FILECACHE_INFORMATION
BasicPerfInfo: MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION
PerfInfo: MINIDUMP_SYSTEM_PERFORMANCE_INFORMATIONalign(4)
struct MINIDUMP_SYSTEM_BASIC_INFORMATION
{
uint TimerResolution;
uint PageSize;
uint NumberOfPhysicalPages;
uint LowestPhysicalPageNumber;
uint HighestPhysicalPageNumber;
uint AllocationGranularity;
ulong MinimumUserModeAddress;
ulong MaximumUserModeAddress;
ulong ActiveProcessorsAffinityMask;
uint NumberOfProcessors;
}
align(4)
struct MINIDUMP_SYSTEM_FILECACHE_INFORMATION
{
ulong CurrentSize;
ulong PeakSize;
uint PageFaultCount;
ulong MinimumWorkingSet;
ulong MaximumWorkingSet;
ulong CurrentSizeIncludingTransitionInPages;
ulong PeakSizeIncludingTransitionInPages;
uint TransitionRePurposeCount;
uint Flags;
}
align(4)
struct MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION
{
ulong AvailablePages;
ulong CommittedPages;
ulong CommitLimit;
ulong PeakCommitment;
}
align(4)
struct MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION
{
ulong IdleProcessTime;
ulong IoReadTransferCount;
ulong IoWriteTransferCount;
ulong IoOtherTransferCount;
uint IoReadOperationCount;
uint IoWriteOperationCount;
uint IoOtherOperationCount;
uint AvailablePages;
uint CommittedPages;
uint CommitLimit;
uint PeakCommitment;
uint PageFaultCount;
uint CopyOnWriteCount;
uint TransitionCount;
uint CacheTransitionCount;
uint DemandZeroCount;
uint PageReadCount;
uint PageReadIoCount;
uint CacheReadCount;
uint CacheIoCount;
uint DirtyPagesWriteCount;
uint DirtyWriteIoCount;
uint MappedPagesWriteCount;
uint MappedWriteIoCount;
uint PagedPoolPages;
uint NonPagedPoolPages;
uint PagedPoolAllocs;
uint PagedPoolFrees;
uint NonPagedPoolAllocs;
uint NonPagedPoolFrees;
uint FreeSystemPtes;
uint ResidentSystemCodePage;
uint TotalSystemDriverPages;
uint TotalSystemCodePages;
uint NonPagedPoolLookasideHits;
uint PagedPoolLookasideHits;
uint AvailablePagedPoolPages;
uint ResidentSystemCachePage;
uint ResidentPagedPoolPage;
uint ResidentSystemDriverPage;
uint CcFastReadNoWait;
uint CcFastReadWait;
uint CcFastReadResourceMiss;
uint CcFastReadNotPossible;
uint CcFastMdlReadNoWait;
uint CcFastMdlReadWait;
uint CcFastMdlReadResourceMiss;
uint CcFastMdlReadNotPossible;
uint CcMapDataNoWait;
uint CcMapDataWait;
uint CcMapDataNoWaitMiss;
uint CcMapDataWaitMiss;
uint CcPinMappedDataCount;
uint CcPinReadNoWait;
uint CcPinReadWait;
uint CcPinReadNoWaitMiss;
uint CcPinReadWaitMiss;
uint CcCopyReadNoWait;
uint CcCopyReadWait;
uint CcCopyReadNoWaitMiss;
uint CcCopyReadWaitMiss;
uint CcMdlReadNoWait;
uint CcMdlReadWait;
uint CcMdlReadNoWaitMiss;
uint CcMdlReadWaitMiss;
uint CcReadAheadIos;
uint CcLazyWriteIos;
uint CcLazyWritePages;
uint CcDataFlushes;
uint CcDataPages;
uint ContextSwitches;
uint FirstLevelTbFills;
uint SecondLevelTbFills;
uint SystemCalls;
ulong CcTotalDirtyPages;
ulong CcDirtyPageThreshold;
long ResidentAvailablePages;
ulong SharedCommittedPages;
}
align(4)
struct MINIDUMP_SYSTEM_MEMORY_INFO_1
{
ushort Revision;
ushort Flags;
MINIDUMP_SYSTEM_BASIC_INFORMATION BasicInfo;
MINIDUMP_SYSTEM_FILECACHE_INFORMATION FileCacheInfo;
MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION BasicPerfInfo;
MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION PerfInfo;
}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_MEMORY_INFO_1 サイズ: 492 バイト(x64)
dim st, 123 ; 4byte整数×123(構造体サイズ 492 / 4 切り上げ)
; Revision : WORD (+0, 2byte) wpoke st,0,値 / 値 = wpeek(st,0)
; Flags : WORD (+2, 2byte) wpoke st,2,値 / 値 = wpeek(st,2)
; BasicInfo : MINIDUMP_SYSTEM_BASIC_INFORMATION (+4, 52byte) varptr(st)+4 を基点に操作(52byte:入れ子/配列)
; FileCacheInfo : MINIDUMP_SYSTEM_FILECACHE_INFORMATION (+56, 60byte) varptr(st)+56 を基点に操作(60byte:入れ子/配列)
; BasicPerfInfo : MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION (+116, 32byte) varptr(st)+116 を基点に操作(32byte:入れ子/配列)
; PerfInfo : MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION (+148, 344byte) varptr(st)+148 を基点に操作(344byte:入れ子/配列)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
; ※GUID・入れ子構造体はデフォルト型でないため、依存する #defstruct を先に定義(下記に同梱)。
#defstruct global MINIDUMP_SYSTEM_BASIC_INFORMATION, pack=4
#field int TimerResolution
#field int PageSize
#field int NumberOfPhysicalPages
#field int LowestPhysicalPageNumber
#field int HighestPhysicalPageNumber
#field int AllocationGranularity
#field int64 MinimumUserModeAddress
#field int64 MaximumUserModeAddress
#field int64 ActiveProcessorsAffinityMask
#field int NumberOfProcessors
#endstruct
#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
#defstruct global MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION, pack=4
#field int64 AvailablePages
#field int64 CommittedPages
#field int64 CommitLimit
#field int64 PeakCommitment
#endstruct
#defstruct global MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION, pack=4
#field int64 IdleProcessTime
#field int64 IoReadTransferCount
#field int64 IoWriteTransferCount
#field int64 IoOtherTransferCount
#field int IoReadOperationCount
#field int IoWriteOperationCount
#field int IoOtherOperationCount
#field int AvailablePages
#field int CommittedPages
#field int CommitLimit
#field int PeakCommitment
#field int PageFaultCount
#field int CopyOnWriteCount
#field int TransitionCount
#field int CacheTransitionCount
#field int DemandZeroCount
#field int PageReadCount
#field int PageReadIoCount
#field int CacheReadCount
#field int CacheIoCount
#field int DirtyPagesWriteCount
#field int DirtyWriteIoCount
#field int MappedPagesWriteCount
#field int MappedWriteIoCount
#field int PagedPoolPages
#field int NonPagedPoolPages
#field int PagedPoolAllocs
#field int PagedPoolFrees
#field int NonPagedPoolAllocs
#field int NonPagedPoolFrees
#field int FreeSystemPtes
#field int ResidentSystemCodePage
#field int TotalSystemDriverPages
#field int TotalSystemCodePages
#field int NonPagedPoolLookasideHits
#field int PagedPoolLookasideHits
#field int AvailablePagedPoolPages
#field int ResidentSystemCachePage
#field int ResidentPagedPoolPage
#field int ResidentSystemDriverPage
#field int CcFastReadNoWait
#field int CcFastReadWait
#field int CcFastReadResourceMiss
#field int CcFastReadNotPossible
#field int CcFastMdlReadNoWait
#field int CcFastMdlReadWait
#field int CcFastMdlReadResourceMiss
#field int CcFastMdlReadNotPossible
#field int CcMapDataNoWait
#field int CcMapDataWait
#field int CcMapDataNoWaitMiss
#field int CcMapDataWaitMiss
#field int CcPinMappedDataCount
#field int CcPinReadNoWait
#field int CcPinReadWait
#field int CcPinReadNoWaitMiss
#field int CcPinReadWaitMiss
#field int CcCopyReadNoWait
#field int CcCopyReadWait
#field int CcCopyReadNoWaitMiss
#field int CcCopyReadWaitMiss
#field int CcMdlReadNoWait
#field int CcMdlReadWait
#field int CcMdlReadNoWaitMiss
#field int CcMdlReadWaitMiss
#field int CcReadAheadIos
#field int CcLazyWriteIos
#field int CcLazyWritePages
#field int CcDataFlushes
#field int CcDataPages
#field int ContextSwitches
#field int FirstLevelTbFills
#field int SecondLevelTbFills
#field int SystemCalls
#field int64 CcTotalDirtyPages
#field int64 CcDirtyPageThreshold
#field int64 ResidentAvailablePages
#field int64 SharedCommittedPages
#endstruct
#defstruct global MINIDUMP_SYSTEM_MEMORY_INFO_1, pack=4
#field short Revision
#field short Flags
#field MINIDUMP_SYSTEM_BASIC_INFORMATION BasicInfo
#field MINIDUMP_SYSTEM_FILECACHE_INFORMATION FileCacheInfo
#field MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION BasicPerfInfo
#field MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION PerfInfo
#endstruct
stdim st, MINIDUMP_SYSTEM_MEMORY_INFO_1 ; NSTRUCT 変数を確保
st->Revision = 100
mes "Revision=" + st->Revision