source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/avrfsdk.h@ 1175

Last change on this file since 1175 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 2.5 KB
Line 
1/**
2* This file is part of the mingw-w64 runtime package.
3* No warranty is given; refer to the file DISCLAIMER within this package.
4*/
5
6#include <winapifamily.h>
7
8#ifndef _AVRFSDK_
9#define _AVRFSDK_
10
11#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
12
13#ifdef __cplusplus
14extern "C" {
15#endif
16
17#define AVRF_MAX_TRACES 32
18
19 enum eHeapAllocationState {
20 HeapFullPageHeap = 0x40000000,
21 HeapMetadata = 0x80000000,
22 HeapStateMask = 0xffff0000
23 };
24
25 enum eHeapEnumerationLevel {
26 HeapEnumerationEverything = 0x0,
27 HeapEnumerationStop = 0xffffffff
28 };
29
30 enum eHANDLE_TRACE_OPERATIONS {
31 OperationDbUnused,
32 OperationDbOPEN,
33 OperationDbCLOSE,
34 OperationDbBADREF
35 };
36
37 enum eAvrfResourceTypes {
38 AvrfResourceHeapAllocation,
39 AvrfResourceHandleTrace,
40 AvrfResourceMax
41 };
42
43 enum eUserAllocationState {
44 AllocationStateUnknown,
45 AllocationStateBusy,
46 AllocationStateFree
47 };
48
49 typedef struct _AVRF_BACKTRACE_INFORMATION {
50 ULONG Depth;
51 ULONG Index;
52 ULONG64 ReturnAddresses[AVRF_MAX_TRACES];
53 } AVRF_BACKTRACE_INFORMATION,*PAVRF_BACKTRACE_INFORMATION;
54
55 typedef struct _AVRF_HEAP_ALLOCATION {
56 ULONG64 HeapHandle;
57 ULONG64 UserAllocation;
58 ULONG64 UserAllocationSize;
59 ULONG64 Allocation;
60 ULONG64 AllocationSize;
61 ULONG UserAllocationState;
62 ULONG HeapState;
63 ULONG64 HeapContext;
64 PAVRF_BACKTRACE_INFORMATION BackTraceInformation;
65 } AVRF_HEAP_ALLOCATION,*PAVRF_HEAP_ALLOCATION;
66
67 typedef struct _AVRF_HANDLE_OPERATION {
68 ULONG64 Handle;
69 ULONG ProcessId;
70 ULONG ThreadId;
71 ULONG OperationType;
72 ULONG Spare0;
73 AVRF_BACKTRACE_INFORMATION BackTraceInformation;
74 } AVRF_HANDLE_OPERATION,*PAVRF_HANDLE_OPERATION;
75
76 typedef ULONG (NTAPI *AVRF_RESOURCE_ENUMERATE_CALLBACK) (PVOID ResourceDescription, PVOID EnumerationContext, PULONG EnumerationLevel);
77 typedef ULONG (NTAPI *AVRF_HEAPALLOCATION_ENUMERATE_CALLBACK) (PAVRF_HEAP_ALLOCATION HeapAllocation, PVOID EnumerationContext, PULONG EnumerationLevel);
78 typedef ULONG (NTAPI *AVRF_HANDLEOPERATION_ENUMERATE_CALLBACK) (PAVRF_HANDLE_OPERATION HandleOperation, PVOID EnumerationContext, PULONG EnumerationLevel);
79
80#define AVRF_ENUM_RESOURCES_FLAGS_SUSPEND 0x0001
81#define AVRF_ENUM_RESOURCES_FLAGS_DONT_RESOLVE_TRACES 0x0002
82
83 ULONG NTAPI VerifierEnumerateResource (HANDLE Process, ULONG Flags, ULONG ResourceType, AVRF_RESOURCE_ENUMERATE_CALLBACK ResourceCallback, PVOID EnumerationContext);
84 WINBOOL NTAPI VerifierIsPerUserSettingsEnabled (VOID);
85
86#ifdef __cplusplus
87}
88#endif
89
90#endif
91#endif
Note: See TracBrowser for help on using the repository browser.