Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
abac4b87
Commit
abac4b87
authored
Mar 02, 2024
by
Eric Pouech
Committed by
Alexandre Julliard
Mar 13, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
include: Update minidumpapiset.h.
Signed-off-by:
Eric Pouech
<
epouech@codeweavers.com
>
parent
5f76872e
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
575 additions
and
123 deletions
+575
-123
minidumpapiset.h
include/minidumpapiset.h
+575
-123
No files found.
include/minidumpapiset.h
View file @
abac4b87
...
@@ -30,6 +30,7 @@ extern "C" {
...
@@ -30,6 +30,7 @@ extern "C" {
typedef
DWORD
RVA
;
typedef
DWORD
RVA
;
typedef
ULONG64
RVA64
;
typedef
ULONG64
RVA64
;
#define RVA_TO_ADDR(map,rva) ((void *)((ULONG_PTR)(map) + (rva)))
typedef
enum
_MINIDUMP_TYPE
typedef
enum
_MINIDUMP_TYPE
{
{
...
@@ -48,129 +49,24 @@ typedef enum _MINIDUMP_TYPE
...
@@ -48,129 +49,24 @@ typedef enum _MINIDUMP_TYPE
MiniDumpWithFullMemoryInfo
=
0x00000800
,
MiniDumpWithFullMemoryInfo
=
0x00000800
,
MiniDumpWithThreadInfo
=
0x00001000
,
MiniDumpWithThreadInfo
=
0x00001000
,
MiniDumpWithCodeSegs
=
0x00002000
,
MiniDumpWithCodeSegs
=
0x00002000
,
MiniDumpValidTypeFlags
=
0x01ffffff
,
}
MINIDUMP_TYPE
;
typedef
enum
_MINIDUMP_CALLBACK_TYPE
{
ModuleCallback
,
ThreadCallback
,
ThreadExCallback
,
IncludeThreadCallback
,
IncludeModuleCallback
,
MemoryCallback
,
}
MINIDUMP_CALLBACK_TYPE
;
typedef
struct
_MINIDUMP_THREAD_CALLBACK
{
ULONG
ThreadId
;
HANDLE
ThreadHandle
;
#if defined(__aarch64__)
ULONG
Pad
;
#endif
CONTEXT
Context
;
ULONG
SizeOfContext
;
ULONG64
StackBase
;
ULONG64
StackEnd
;
}
MINIDUMP_THREAD_CALLBACK
,
*
PMINIDUMP_THREAD_CALLBACK
;
typedef
struct
_MINIDUMP_THREAD_EX_CALLBACK
{
ULONG
ThreadId
;
HANDLE
ThreadHandle
;
#if defined(__aarch64__)
ULONG
Pad
;
#endif
CONTEXT
Context
;
ULONG
SizeOfContext
;
ULONG64
StackBase
;
ULONG64
StackEnd
;
ULONG64
BackingStoreBase
;
ULONG64
BackingStoreEnd
;
}
MINIDUMP_THREAD_EX_CALLBACK
,
*
PMINIDUMP_THREAD_EX_CALLBACK
;
typedef
struct
_MINIDUMP_INCLUDE_THREAD_CALLBACK
{
ULONG
ThreadId
;
}
MINIDUMP_INCLUDE_THREAD_CALLBACK
,
*
PMINIDUMP_INCLUDE_THREAD_CALLBACK
;
typedef
enum
_THREAD_WRITE_FLAGS
{
ThreadWriteThread
=
0x0001
,
ThreadWriteStack
=
0x0002
,
ThreadWriteContext
=
0x0004
,
ThreadWriteBackingStore
=
0x0008
,
ThreadWriteInstructionWindow
=
0x0010
,
ThreadWriteThreadData
=
0x0020
,
ThreadWriteThreadInfo
=
0x0040
}
THREAD_WRITE_FLAGS
;
typedef
struct
_MINIDUMP_MODULE_CALLBACK
{
PWCHAR
FullPath
;
ULONG64
BaseOfImage
;
ULONG
SizeOfImage
;
ULONG
CheckSum
;
ULONG
TimeDateStamp
;
VS_FIXEDFILEINFO
VersionInfo
;
PVOID
CvRecord
;
ULONG
SizeOfCvRecord
;
PVOID
MiscRecord
;
ULONG
SizeOfMiscRecord
;
}
MINIDUMP_MODULE_CALLBACK
,
*
PMINIDUMP_MODULE_CALLBACK
;
typedef
struct
_MINIDUMP_INCLUDE_MODULE_CALLBACK
{
ULONG64
BaseOfImage
;
}
MINIDUMP_INCLUDE_MODULE_CALLBACK
,
*
PMINIDUMP_INCLUDE_MODULE_CALLBACK
;
typedef
enum
_MODULE_WRITE_FLAGS
{
ModuleWriteModule
=
0x0001
,
ModuleWriteDataSeg
=
0x0002
,
ModuleWriteMiscRecord
=
0x0004
,
ModuleWriteCvRecord
=
0x0008
,
ModuleReferencedByMemory
=
0x0010
,
ModuleWriteTlsData
=
0x0020
,
ModuleWriteCodeSegs
=
0x0040
,
}
MODULE_WRITE_FLAGS
;
typedef
struct
_MINIDUMP_CALLBACK_INPUT
MiniDumpWithoutAuxiliaryState
=
0x00004000
,
{
MiniDumpWithFullAuxiliaryState
=
0x00008000
,
ULONG
ProcessId
;
MiniDumpWithPrivateWriteCopyMemory
=
0x00010000
,
HANDLE
ProcessHandle
;
MiniDumpIgnoreInaccessibleMemory
=
0x00020000
,
ULONG
CallbackType
;
MiniDumpWithTokenInformation
=
0x00040000
,
union
MiniDumpWithModuleHeaders
=
0x00080000
,
{
MiniDumpFilterTriage
=
0x00100000
,
MINIDUMP_THREAD_CALLBACK
Thread
;
MiniDumpWithAvxXStateContext
=
0x00200000
,
MINIDUMP_THREAD_EX_CALLBACK
ThreadEx
;
MiniDumpWithIptTrace
=
0x00400000
,
MINIDUMP_MODULE_CALLBACK
Module
;
MiniDumpValidTypeFlags
=
0x007fffff
,
MINIDUMP_INCLUDE_THREAD_CALLBACK
IncludeThread
;
}
MINIDUMP_TYPE
;
MINIDUMP_INCLUDE_MODULE_CALLBACK
IncludeModule
;
}
DUMMYUNIONNAME
;
}
MINIDUMP_CALLBACK_INPUT
,
*
PMINIDUMP_CALLBACK_INPUT
;
typedef
struct
_MINIDUMP_CALLBACK_OUTPUT
typedef
enum
_MINIDUMP_SECONDARY_FLAGS
{
{
union
MiniSecondaryWithoutPowerInfo
=
0x00000001
,
{
MiniSecondaryValidFlags
=
0x00000001
,
ULONG
ModuleWriteFlags
;
}
MINIDUMP_SECONDARY_FLAGS
;
ULONG
ThreadWriteFlags
;
struct
{
ULONG64
MemoryBase
;
ULONG
MemorySize
;
}
DUMMYSTRUCTNAME
;
}
DUMMYUNIONNAME
;
}
MINIDUMP_CALLBACK_OUTPUT
,
*
PMINIDUMP_CALLBACK_OUTPUT
;
typedef
BOOL
(
WINAPI
*
MINIDUMP_CALLBACK_ROUTINE
)(
PVOID
,
const
PMINIDUMP_CALLBACK_INPUT
,
PMINIDUMP_CALLBACK_OUTPUT
);
typedef
struct
_MINIDUMP_CALLBACK_INFORMATION
{
MINIDUMP_CALLBACK_ROUTINE
CallbackRoutine
;
void
*
CallbackParam
;
}
MINIDUMP_CALLBACK_INFORMATION
,
*
PMINIDUMP_CALLBACK_INFORMATION
;
typedef
struct
_MINIDUMP_LOCATION_DESCRIPTOR
typedef
struct
_MINIDUMP_LOCATION_DESCRIPTOR
{
{
...
@@ -208,6 +104,14 @@ typedef struct _MINIDUMP_EXCEPTION_INFORMATION
...
@@ -208,6 +104,14 @@ typedef struct _MINIDUMP_EXCEPTION_INFORMATION
BOOL
ClientPointers
;
BOOL
ClientPointers
;
}
MINIDUMP_EXCEPTION_INFORMATION
,
*
PMINIDUMP_EXCEPTION_INFORMATION
;
}
MINIDUMP_EXCEPTION_INFORMATION
,
*
PMINIDUMP_EXCEPTION_INFORMATION
;
typedef
struct
_MINIDUMP_EXCEPTION_INFORMATION64
{
DWORD
ThreadId
;
ULONG64
ExceptionRecord
;
ULONG64
ContextRecord
;
BOOL
ClientPointers
;
}
MINIDUMP_EXCEPTION_INFORMATION64
,
*
PMINIDUMP_EXCEPTION_INFORMATION64
;
typedef
struct
MINIDUMP_EXCEPTION_STREAM
typedef
struct
MINIDUMP_EXCEPTION_STREAM
{
{
ULONG32
ThreadId
;
ULONG32
ThreadId
;
...
@@ -256,8 +160,23 @@ typedef struct _MINIDUMP_MEMORY64_LIST
...
@@ -256,8 +160,23 @@ typedef struct _MINIDUMP_MEMORY64_LIST
MINIDUMP_MEMORY_DESCRIPTOR64
MemoryRanges
[
1
];
/* FIXME: 0-sized array not supported */
MINIDUMP_MEMORY_DESCRIPTOR64
MemoryRanges
[
1
];
/* FIXME: 0-sized array not supported */
}
MINIDUMP_MEMORY64_LIST
,
*
PMINIDUMP_MEMORY64_LIST
;
}
MINIDUMP_MEMORY64_LIST
,
*
PMINIDUMP_MEMORY64_LIST
;
#define MINIDUMP_MISC1_PROCESS_ID 0x00000001
typedef
struct
_XSTATE_CONFIG_FEATURE_MSC_INFO
#define MINIDUMP_MISC1_PROCESS_TIMES 0x00000002
{
ULONG32
SizeOfInfo
;
ULONG32
ContextSize
;
ULONG64
EnabledFeatures
;
XSTATE_FEATURE
Features
[
MAXIMUM_XSTATE_FEATURES
];
}
XSTATE_CONFIG_FEATURE_MSC_INFO
,
*
PXSTATE_CONFIG_FEATURE_MSC_INFO
;
#define MINIDUMP_MISC1_PROCESS_ID 0x00000001
#define MINIDUMP_MISC1_PROCESS_TIMES 0x00000002
#define MINIDUMP_MISC1_PROCESSOR_POWER_INFO 0x00000004
#define MINIDUMP_MISC3_PROCESS_INTEGRITY 0x00000010
#define MINIDUMP_MISC3_PROCESS_EXECUTE_FLAGS 0x00000020
#define MINIDUMP_MISC3_TIMEZONE 0x00000040
#define MINIDUMP_MISC3_PROTECTED_PROCESS 0x00000080
#define MINIDUMP_MISC4_BUILDSTRING 0x00000100
#define MINIDUMP_MISC5_PROCESS_COOKIE 0x00000200
typedef
struct
_MINIDUMP_MISC_INFO
typedef
struct
_MINIDUMP_MISC_INFO
{
{
...
@@ -269,6 +188,87 @@ typedef struct _MINIDUMP_MISC_INFO
...
@@ -269,6 +188,87 @@ typedef struct _MINIDUMP_MISC_INFO
ULONG32
ProcessKernelTime
;
ULONG32
ProcessKernelTime
;
}
MINIDUMP_MISC_INFO
,
*
PMINIDUMP_MISC_INFO
;
}
MINIDUMP_MISC_INFO
,
*
PMINIDUMP_MISC_INFO
;
typedef
struct
_MINIDUMP_MISC_INFO_2
{
ULONG32
SizeOfInfo
;
ULONG32
Flags1
;
ULONG32
ProcessId
;
ULONG32
ProcessCreateTime
;
ULONG32
ProcessUserTime
;
ULONG32
ProcessKernelTime
;
ULONG32
ProcessorMaxMhz
;
ULONG32
ProcessorCurrentMhz
;
ULONG32
ProcessorMhzLimit
;
ULONG32
ProcessorMaxIdleState
;
ULONG32
ProcessorCurrentIdleState
;
}
MINIDUMP_MISC_INFO_2
,
*
PMINIDUMP_MISC_INFO_2
;
typedef
struct
_MINIDUMP_MISC_INFO_3
{
ULONG32
SizeOfInfo
;
ULONG32
Flags1
;
ULONG32
ProcessId
;
ULONG32
ProcessCreateTime
;
ULONG32
ProcessUserTime
;
ULONG32
ProcessKernelTime
;
ULONG32
ProcessorMaxMhz
;
ULONG32
ProcessorCurrentMhz
;
ULONG32
ProcessorMhzLimit
;
ULONG32
ProcessorMaxIdleState
;
ULONG32
ProcessorCurrentIdleState
;
ULONG32
ProcessIntegrityLevel
;
ULONG32
ProcessExecuteFlags
;
ULONG32
ProtectedProcess
;
ULONG32
TimeZoneId
;
TIME_ZONE_INFORMATION
TimeZone
;
}
MINIDUMP_MISC_INFO_3
,
*
PMINIDUMP_MISC_INFO_3
;
typedef
struct
_MINIDUMP_MISC_INFO_4
{
ULONG32
SizeOfInfo
;
ULONG32
Flags1
;
ULONG32
ProcessId
;
ULONG32
ProcessCreateTime
;
ULONG32
ProcessUserTime
;
ULONG32
ProcessKernelTime
;
ULONG32
ProcessorMaxMhz
;
ULONG32
ProcessorCurrentMhz
;
ULONG32
ProcessorMhzLimit
;
ULONG32
ProcessorMaxIdleState
;
ULONG32
ProcessorCurrentIdleState
;
ULONG32
ProcessIntegrityLevel
;
ULONG32
ProcessExecuteFlags
;
ULONG32
ProtectedProcess
;
ULONG32
TimeZoneId
;
TIME_ZONE_INFORMATION
TimeZone
;
WCHAR
BuildString
[
MAX_PATH
];
WCHAR
DbgBldStr
[
40
];
}
MINIDUMP_MISC_INFO_4
,
*
PMINIDUMP_MISC_INFO_4
;
typedef
struct
_MINIDUMP_MISC_INFO_5
{
ULONG32
SizeOfInfo
;
ULONG32
Flags1
;
ULONG32
ProcessId
;
ULONG32
ProcessCreateTime
;
ULONG32
ProcessUserTime
;
ULONG32
ProcessKernelTime
;
ULONG32
ProcessorMaxMhz
;
ULONG32
ProcessorCurrentMhz
;
ULONG32
ProcessorMhzLimit
;
ULONG32
ProcessorMaxIdleState
;
ULONG32
ProcessorCurrentIdleState
;
ULONG32
ProcessIntegrityLevel
;
ULONG32
ProcessExecuteFlags
;
ULONG32
ProtectedProcess
;
ULONG32
TimeZoneId
;
TIME_ZONE_INFORMATION
TimeZone
;
WCHAR
BuildString
[
MAX_PATH
];
WCHAR
DbgBldStr
[
40
];
XSTATE_CONFIG_FEATURE_MSC_INFO
XStateData
;
ULONG32
ProcessCookie
;
}
MINIDUMP_MISC_INFO_5
,
*
PMINIDUMP_MISC_INFO_5
;
typedef
struct
_MINIDUMP_MODULE
typedef
struct
_MINIDUMP_MODULE
{
{
ULONG64
BaseOfImage
;
ULONG64
BaseOfImage
;
...
@@ -369,7 +369,7 @@ typedef struct _MINIDUMP_USER_STREAM
...
@@ -369,7 +369,7 @@ typedef struct _MINIDUMP_USER_STREAM
typedef
struct
_MINIDUMP_USER_STREAM_INFORMATION
typedef
struct
_MINIDUMP_USER_STREAM_INFORMATION
{
{
ULONG
UserStreamCount
;
ULONG
32
UserStreamCount
;
PMINIDUMP_USER_STREAM
UserStreamArray
;
PMINIDUMP_USER_STREAM
UserStreamArray
;
}
MINIDUMP_USER_STREAM_INFORMATION
,
*
PMINIDUMP_USER_STREAM_INFORMATION
;
}
MINIDUMP_USER_STREAM_INFORMATION
,
*
PMINIDUMP_USER_STREAM_INFORMATION
;
...
@@ -442,6 +442,458 @@ typedef struct _MINIDUMP_UNLOADED_MODULE_LIST
...
@@ -442,6 +442,458 @@ typedef struct _MINIDUMP_UNLOADED_MODULE_LIST
ULONG32
NumberOfEntries
;
ULONG32
NumberOfEntries
;
}
MINIDUMP_UNLOADED_MODULE_LIST
,
*
PMINIDUMP_UNLOADED_MODULE_LIST
;
}
MINIDUMP_UNLOADED_MODULE_LIST
,
*
PMINIDUMP_UNLOADED_MODULE_LIST
;
typedef
struct
_MINIDUMP_FUNCTION_TABLE_DESCRIPTOR
{
ULONG64
MinimumAddress
;
ULONG64
MaximumAddress
;
ULONG64
BaseAddress
;
ULONG32
EntryCount
;
ULONG32
SizeOfAlignPad
;
}
MINIDUMP_FUNCTION_TABLE_DESCRIPTOR
,
*
PMINIDUMP_FUNCTION_TABLE_DESCRIPTOR
;
typedef
struct
_MINIDUMP_FUNCTION_TABLE_STREAM
{
ULONG32
SizeOfHeader
;
ULONG32
SizeOfDescriptor
;
ULONG32
SizeOfNativeDescriptor
;
ULONG32
SizeOfFunctionEntry
;
ULONG32
NumberOfDescriptors
;
ULONG32
SizeOfAlignPad
;
}
MINIDUMP_FUNCTION_TABLE_STREAM
,
*
PMINIDUMP_FUNCTION_TABLE_STREAM
;
typedef
struct
_MINIDUMP_MEMORY_INFO
{
ULONG64
BaseAddress
;
ULONG64
AllocationBase
;
ULONG32
AllocationProtect
;
ULONG32
__alignment1
;
ULONG64
RegionSize
;
ULONG32
State
;
ULONG32
Protect
;
ULONG32
Type
;
ULONG32
__alignment2
;
}
MINIDUMP_MEMORY_INFO
,
*
PMINIDUMP_MEMORY_INFO
;
typedef
struct
_MINIDUMP_MEMORY_INFO_LIST
{
ULONG
SizeOfHeader
;
ULONG
SizeOfEntry
;
ULONG64
NumberOfEntries
;
}
MINIDUMP_MEMORY_INFO_LIST
,
*
PMINIDUMP_MEMORY_INFO_LIST
;
typedef
struct
_MINIDUMP_THREAD_NAME
{
ULONG
ThreadId
;
RVA64
RvaOfThreadName
;
}
MINIDUMP_THREAD_NAME
,
*
PMINIDUMP_THREAD_NAME
;
typedef
struct
_MINIDUMP_THREAD_NAME_LIST
{
ULONG
NumberOfThreadNames
;
MINIDUMP_THREAD_NAME
ThreadNames
[
1
];
/* FIXME: 0-sized array not supported */
}
MINIDUMP_THREAD_NAME_LIST
,
*
PMINIDUMP_THREAD_NAME_LIST
;
typedef
struct
_MINIDUMP_TOKEN_INFO_HEADER
{
ULONG32
TokenSize
;
ULONG32
TokenId
;
ULONG64
TokenHandle
;
}
MINIDUMP_TOKEN_INFO_HEADER
,
*
PMINIDUMP_TOKEN_INFO_HEADER
;
typedef
struct
_MINIDUMP_TOKEN_INFO_LIST
{
ULONG32
TokenListSize
;
ULONG32
TokenListEntries
;
ULONG32
ListHeaderSize
;
ULONG32
ElementHeaderSize
;
}
MINIDUMP_TOKEN_INFO_LIST
,
*
PMINIDUMP_TOKEN_INFO_LIST
;
typedef
struct
_MINIDUMP_PROCESS_VM_COUNTERS_1
{
USHORT
Revision
;
ULONG
PageFaultCount
;
ULONG64
PeakWorkingSetSize
;
ULONG64
WorkingSetSize
;
ULONG64
QuotaPeakPagedPoolUsage
;
ULONG64
QuotaPagedPoolUsage
;
ULONG64
QuotaPeakNonPagedPoolUsage
;
ULONG64
QuotaNonPagedPoolUsage
;
ULONG64
PagefileUsage
;
ULONG64
PeakPagefileUsage
;
ULONG64
PrivateUsage
;
}
MINIDUMP_PROCESS_VM_COUNTERS_1
,
*
PMINIDUMP_PROCESS_VM_COUNTERS_1
;
#define MINIDUMP_PROCESS_VM_COUNTERS 0x0001
#define MINIDUMP_PROCESS_VM_COUNTERS_VIRTUALSIZE 0x0002
#define MINIDUMP_PROCESS_VM_COUNTERS_EX 0x0004
#define MINIDUMP_PROCESS_VM_COUNTERS_EX2 0x0008
#define MINIDUMP_PROCESS_VM_COUNTERS_JOB 0x0010
typedef
struct
_MINIDUMP_PROCESS_VM_COUNTERS_2
{
USHORT
Revision
;
USHORT
Flags
;
ULONG
PageFaultCount
;
ULONG64
PeakWorkingSetSize
;
ULONG64
WorkingSetSize
;
ULONG64
QuotaPeakPagedPoolUsage
;
ULONG64
QuotaPagedPoolUsage
;
ULONG64
QuotaPeakNonPagedPoolUsage
;
ULONG64
QuotaNonPagedPoolUsage
;
ULONG64
PagefileUsage
;
ULONG64
PeakPagefileUsage
;
ULONG64
PeakVirtualSize
;
ULONG64
VirtualSize
;
ULONG64
PrivateUsage
;
ULONG64
PrivateWorkingSetSize
;
ULONG64
SharedCommitUsage
;
ULONG64
JobSharedCommitUsage
;
ULONG64
JobPrivateCommitUsage
;
ULONG64
JobPeakPrivateCommitUsage
;
ULONG64
JobPrivateCommitLimit
;
ULONG64
JobTotalCommitLimit
;
}
MINIDUMP_PROCESS_VM_COUNTERS_2
,
*
PMINIDUMP_PROCESS_VM_COUNTERS_2
;
typedef
struct
_MINIDUMP_SYSTEM_BASIC_INFORMATION
{
ULONG
TimerResolution
;
ULONG
PageSize
;
ULONG
NumberOfPhysicalPages
;
ULONG
LowestPhysicalPageNumber
;
ULONG
HighestPhysicalPageNumber
;
ULONG
AllocationGranularity
;
ULONG64
MinimumUserModeAddress
;
ULONG64
MaximumUserModeAddress
;
ULONG64
ActiveProcessorsAffinityMask
;
ULONG
NumberOfProcessors
;
}
MINIDUMP_SYSTEM_BASIC_INFORMATION
,
*
PMINIDUMP_SYSTEM_BASIC_INFORMATION
;
typedef
struct
_MINIDUMP_SYSTEM_FILECACHE_INFORMATION
{
ULONG64
CurrentSize
;
ULONG64
PeakSize
;
ULONG
PageFaultCount
;
ULONG64
MinimumWorkingSet
;
ULONG64
MaximumWorkingSet
;
ULONG64
CurrentSizeIncludingTransitionInPages
;
ULONG64
PeakSizeIncludingTransitionInPages
;
ULONG
TransitionRePurposeCount
;
ULONG
Flags
;
}
MINIDUMP_SYSTEM_FILECACHE_INFORMATION
,
*
PMINIDUMP_SYSTEM_FILECACHE_INFORMATION
;
typedef
struct
_MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION
{
ULONG64
AvailablePages
;
ULONG64
CommittedPages
;
ULONG64
CommitLimit
;
ULONG64
PeakCommitment
;
}
MINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION
,
*
PMINIDUMP_SYSTEM_BASIC_PERFORMANCE_INFORMATION
;
typedef
struct
_MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION
{
ULONG64
IdleProcessTime
;
ULONG64
IoReadTransferCount
;
ULONG64
IoWriteTransferCount
;
ULONG64
IoOtherTransferCount
;
ULONG
IoReadOperationCount
;
ULONG
IoWriteOperationCount
;
ULONG
IoOtherOperationCount
;
ULONG
AvailablePages
;
ULONG
CommittedPages
;
ULONG
CommitLimit
;
ULONG
PeakCommitment
;
ULONG
PageFaultCount
;
ULONG
CopyOnWriteCount
;
ULONG
TransitionCount
;
ULONG
CacheTransitionCount
;
ULONG
DemandZeroCount
;
ULONG
PageReadCount
;
ULONG
PageReadIoCount
;
ULONG
CacheReadCount
;
ULONG
CacheIoCount
;
ULONG
DirtyPagesWriteCount
;
ULONG
DirtyWriteIoCount
;
ULONG
MappedPagesWriteCount
;
ULONG
MappedWriteIoCount
;
ULONG
PagedPoolPages
;
ULONG
NonPagedPoolPages
;
ULONG
PagedPoolAllocs
;
ULONG
PagedPoolFrees
;
ULONG
NonPagedPoolAllocs
;
ULONG
NonPagedPoolFrees
;
ULONG
FreeSystemPtes
;
ULONG
ResidentSystemCodePage
;
ULONG
TotalSystemDriverPages
;
ULONG
TotalSystemCodePages
;
ULONG
NonPagedPoolLookasideHits
;
ULONG
PagedPoolLookasideHits
;
ULONG
AvailablePagedPoolPages
;
ULONG
ResidentSystemCachePage
;
ULONG
ResidentPagedPoolPage
;
ULONG
ResidentSystemDriverPage
;
ULONG
CcFastReadNoWait
;
ULONG
CcFastReadWait
;
ULONG
CcFastReadResourceMiss
;
ULONG
CcFastReadNotPossible
;
ULONG
CcFastMdlReadNoWait
;
ULONG
CcFastMdlReadWait
;
ULONG
CcFastMdlReadResourceMiss
;
ULONG
CcFastMdlReadNotPossible
;
ULONG
CcMapDataNoWait
;
ULONG
CcMapDataWait
;
ULONG
CcMapDataNoWaitMiss
;
ULONG
CcMapDataWaitMiss
;
ULONG
CcPinMappedDataCount
;
ULONG
CcPinReadNoWait
;
ULONG
CcPinReadWait
;
ULONG
CcPinReadNoWaitMiss
;
ULONG
CcPinReadWaitMiss
;
ULONG
CcCopyReadNoWait
;
ULONG
CcCopyReadWait
;
ULONG
CcCopyReadNoWaitMiss
;
ULONG
CcCopyReadWaitMiss
;
ULONG
CcMdlReadNoWait
;
ULONG
CcMdlReadWait
;
ULONG
CcMdlReadNoWaitMiss
;
ULONG
CcMdlReadWaitMiss
;
ULONG
CcReadAheadIos
;
ULONG
CcLazyWriteIos
;
ULONG
CcLazyWritePages
;
ULONG
CcDataFlushes
;
ULONG
CcDataPages
;
ULONG
ContextSwitches
;
ULONG
FirstLevelTbFills
;
ULONG
SecondLevelTbFills
;
ULONG
SystemCalls
;
ULONG64
CcTotalDirtyPages
;
ULONG64
CcDirtyPageThreshold
;
LONG64
ResidentAvailablePages
;
ULONG64
SharedCommittedPages
;
}
MINIDUMP_SYSTEM_PERFORMANCE_INFORMATION
,
*
PMINIDUMP_SYSTEM_PERFORMANCE_INFORMATION
;
#define MINIDUMP_SYSMEMINFO1_FILECACHE_TRANSITIONREPURPOSECOUNT_FLAGS 0x0001
#define MINIDUMP_SYSMEMINFO1_BASICPERF 0x0002
#define MINIDUMP_SYSMEMINFO1_PERF_CCTOTALDIRTYPAGES_CCDIRTYPAGETHRESHOLD 0x0004
#define MINIDUMP_SYSMEMINFO1_PERF_RESIDENTAVAILABLEPAGES_SHAREDCOMMITPAGES 0x0008
typedef
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
;
}
MINIDUMP_SYSTEM_MEMORY_INFO_1
,
*
PMINIDUMP_SYSTEM_MEMORY_INFO_1
;
typedef
MINIDUMP_SYSTEM_MEMORY_INFO_1
MINIDUMP_SYSTEM_MEMORY_INFO_N
;
typedef
MINIDUMP_SYSTEM_MEMORY_INFO_N
*
PMINIDUMP_SYSTEM_MEMORY_INFO_N
;
typedef
enum
_MINIDUMP_CALLBACK_TYPE
{
ModuleCallback
,
ThreadCallback
,
ThreadExCallback
,
IncludeThreadCallback
,
IncludeModuleCallback
,
MemoryCallback
,
CancelCallback
,
WriteKernelMinidumpCallback
,
KernelMinidumpStatusCallback
,
RemoveMemoryCallback
,
IncludeVmRegionCallback
,
IoStartCallback
,
IoWriteAllCallback
,
IoFinishCallback
,
ReadMemoryFailureCallback
,
SecondaryFlagsCallback
,
IsProcessSnapshotCallback
,
VmStartCallback
,
VmQueryCallback
,
VmPreReadCallback
,
VmPostReadCallback
,
}
MINIDUMP_CALLBACK_TYPE
;
typedef
struct
_MINIDUMP_THREAD_CALLBACK
{
ULONG
ThreadId
;
HANDLE
ThreadHandle
;
#if defined(__aarch64__)
ULONG
Pad
;
#endif
CONTEXT
Context
;
ULONG
SizeOfContext
;
ULONG64
StackBase
;
ULONG64
StackEnd
;
}
MINIDUMP_THREAD_CALLBACK
,
*
PMINIDUMP_THREAD_CALLBACK
;
typedef
struct
_MINIDUMP_THREAD_EX_CALLBACK
{
ULONG
ThreadId
;
HANDLE
ThreadHandle
;
#if defined(__aarch64__)
ULONG
Pad
;
#endif
CONTEXT
Context
;
ULONG
SizeOfContext
;
ULONG64
StackBase
;
ULONG64
StackEnd
;
ULONG64
BackingStoreBase
;
ULONG64
BackingStoreEnd
;
}
MINIDUMP_THREAD_EX_CALLBACK
,
*
PMINIDUMP_THREAD_EX_CALLBACK
;
typedef
struct
_MINIDUMP_INCLUDE_THREAD_CALLBACK
{
ULONG
ThreadId
;
}
MINIDUMP_INCLUDE_THREAD_CALLBACK
,
*
PMINIDUMP_INCLUDE_THREAD_CALLBACK
;
typedef
enum
_THREAD_WRITE_FLAGS
{
ThreadWriteThread
=
0x0001
,
ThreadWriteStack
=
0x0002
,
ThreadWriteContext
=
0x0004
,
ThreadWriteBackingStore
=
0x0008
,
ThreadWriteInstructionWindow
=
0x0010
,
ThreadWriteThreadData
=
0x0020
,
ThreadWriteThreadInfo
=
0x0040
}
THREAD_WRITE_FLAGS
;
typedef
struct
_MINIDUMP_MODULE_CALLBACK
{
PWCHAR
FullPath
;
ULONG64
BaseOfImage
;
ULONG
SizeOfImage
;
ULONG
CheckSum
;
ULONG
TimeDateStamp
;
VS_FIXEDFILEINFO
VersionInfo
;
PVOID
CvRecord
;
ULONG
SizeOfCvRecord
;
PVOID
MiscRecord
;
ULONG
SizeOfMiscRecord
;
}
MINIDUMP_MODULE_CALLBACK
,
*
PMINIDUMP_MODULE_CALLBACK
;
typedef
struct
_MINIDUMP_INCLUDE_MODULE_CALLBACK
{
ULONG64
BaseOfImage
;
}
MINIDUMP_INCLUDE_MODULE_CALLBACK
,
*
PMINIDUMP_INCLUDE_MODULE_CALLBACK
;
typedef
enum
_MODULE_WRITE_FLAGS
{
ModuleWriteModule
=
0x0001
,
ModuleWriteDataSeg
=
0x0002
,
ModuleWriteMiscRecord
=
0x0004
,
ModuleWriteCvRecord
=
0x0008
,
ModuleReferencedByMemory
=
0x0010
,
ModuleWriteTlsData
=
0x0020
,
ModuleWriteCodeSegs
=
0x0040
,
}
MODULE_WRITE_FLAGS
;
typedef
struct
_MINIDUMP_IO_CALLBACK
{
HANDLE
Handle
;
ULONG64
Offset
;
PVOID
Buffer
;
ULONG
BufferBytes
;
}
MINIDUMP_IO_CALLBACK
,
*
PMINIDUMP_IO_CALLBACK
;
typedef
struct
_MINIDUMP_READ_MEMORY_FAILURE_CALLBACK
{
ULONG64
Offset
;
ULONG
Bytes
;
HRESULT
FailureStatus
;
}
MINIDUMP_READ_MEMORY_FAILURE_CALLBACK
,
*
PMINIDUMP_READ_MEMORY_FAILURE_CALLBACK
;
typedef
struct
_MINIDUMP_VM_QUERY_CALLBACK
{
ULONG64
Offset
;
}
MINIDUMP_VM_QUERY_CALLBACK
,
*
PMINIDUMP_VM_QUERY_CALLBACK
;
typedef
struct
_MINIDUMP_VM_PRE_READ_CALLBACK
{
ULONG64
Offset
;
PVOID
Buffer
;
ULONG
Size
;
}
MINIDUMP_VM_PRE_READ_CALLBACK
,
*
PMINIDUMP_VM_PRE_READ_CALLBACK
;
typedef
struct
_MINIDUMP_VM_POST_READ_CALLBACK
{
ULONG64
Offset
;
PVOID
Buffer
;
ULONG
Size
;
ULONG
Completed
;
HRESULT
Status
;
}
MINIDUMP_VM_POST_READ_CALLBACK
,
*
PMINIDUMP_VM_POST_READ_CALLBACK
;
typedef
struct
_MINIDUMP_CALLBACK_INPUT
{
ULONG
ProcessId
;
HANDLE
ProcessHandle
;
ULONG
CallbackType
;
union
{
HRESULT
Status
;
MINIDUMP_THREAD_CALLBACK
Thread
;
MINIDUMP_THREAD_EX_CALLBACK
ThreadEx
;
MINIDUMP_MODULE_CALLBACK
Module
;
MINIDUMP_INCLUDE_THREAD_CALLBACK
IncludeThread
;
MINIDUMP_INCLUDE_MODULE_CALLBACK
IncludeModule
;
MINIDUMP_IO_CALLBACK
Io
;
MINIDUMP_READ_MEMORY_FAILURE_CALLBACK
ReadMemoryFailure
;
ULONG
SecondaryFlags
;
MINIDUMP_VM_QUERY_CALLBACK
VmQuery
;
MINIDUMP_VM_PRE_READ_CALLBACK
VmPreRead
;
MINIDUMP_VM_POST_READ_CALLBACK
VmPostRead
;
};
}
MINIDUMP_CALLBACK_INPUT
,
*
PMINIDUMP_CALLBACK_INPUT
;
typedef
struct
_MINIDUMP_CALLBACK_OUTPUT
{
union
{
ULONG
ModuleWriteFlags
;
ULONG
ThreadWriteFlags
;
ULONG
SecondaryFlags
;
struct
{
ULONG64
MemoryBase
;
ULONG
MemorySize
;
};
struct
{
BOOL
CheckCancel
;
BOOL
Cancel
;
};
HANDLE
Handle
;
struct
{
MINIDUMP_MEMORY_INFO
VmRegion
;
BOOL
Continue
;
};
struct
{
HRESULT
VmQueryStatus
;
MINIDUMP_MEMORY_INFO
VmQueryResult
;
};
struct
{
HRESULT
VmReadStatus
;
ULONG
VmReadBytesCompleted
;
};
HRESULT
Status
;
};
}
MINIDUMP_CALLBACK_OUTPUT
,
*
PMINIDUMP_CALLBACK_OUTPUT
;
typedef
BOOL
(
WINAPI
*
MINIDUMP_CALLBACK_ROUTINE
)(
PVOID
,
const
PMINIDUMP_CALLBACK_INPUT
,
PMINIDUMP_CALLBACK_OUTPUT
);
typedef
struct
_MINIDUMP_CALLBACK_INFORMATION
{
MINIDUMP_CALLBACK_ROUTINE
CallbackRoutine
;
void
*
CallbackParam
;
}
MINIDUMP_CALLBACK_INFORMATION
,
*
PMINIDUMP_CALLBACK_INFORMATION
;
typedef
enum
_MINIDUMP_STREAM_TYPE
typedef
enum
_MINIDUMP_STREAM_TYPE
{
{
UnusedStream
=
0
,
UnusedStream
=
0
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment