ReactOS  0.4.15-dev-2972-gda2a567
fxbugcheck.h
Go to the documentation of this file.
1 /*++
2 
3 Copyright (c) Microsoft Corporation
4 
5 Module Name:
6 
7  FxBugcheck.h
8 
9 Abstract:
10  This module contains private macros/defines for crashdumps.
11 
12 --*/
13 
14 #ifndef __FXBUGCHECK_H__
15 #define __FXBUGCHECK_H__
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 //
22 // Macro for doing pointer arithmetic.
23 //
24 #define Add2Ptr(P,I) ((PVOID)((PUCHAR)(P) + (I)))
25 
26 //
27 // This macro takes a length & rounds it up to a multiple of the alignment
28 // Alignment is given as a power of 2
29 //
30 #define EXP_ALIGN_UP_PTR_ON_BOUNDARY(_length, _alignment) \
31  (PVOID) ((((ULONG_PTR) (_length)) + ((_alignment)-1)) & \
32  ~(ULONG_PTR)((_alignment) - 1))
33 
34 //
35 // Checks if 1st argument is aligned on given power of 2 boundary specified
36 // by 2nd argument
37 //
38 #define EXP_IS_PTR_ALIGNED_ON_BOUNDARY(_pointer, _alignment) \
39  ((((ULONG_PTR) (_pointer)) & ((_alignment) - 1)) == 0)
40 
41 
42 //
43 // This macro takes a size and rounds it down to a multiple of the alignemnt.
44 // Alignment doesn't need to be a power of 2.
45 //
46 #define EXP_ALIGN_DOWN_ON_BOUNDARY(_size, _alignment) \
47  ((_size) - ((_size) % _alignment))
48 
49 //
50 // Define the max data size the bugcheck callback can write. Per callback the
51 // total size is around 16K on 32bit OS (32K on 64bit OS).
52 //
53 #ifdef _WIN64
54 #define FX_MAX_DUMP_SIZE (32*1024)
55 #else
56 #define FX_MAX_DUMP_SIZE (16*1024)
57 #endif
58 
59 //
60 // Maximum number of CPUs supported by the driver tracker.
61 //
62 #define FX_DRIVER_TRACKER_MAX_CPUS 256 // Max Win7 processors.
63 
64 //
65 // The initial/increment size of the array to hold driver info.
66 //
67 #define FX_DUMP_DRIVER_INFO_INCREMENT 10 // # entries.
68 
69 //
70 // The max size of the array to hold the driver info. This is the max data
71 // we can write into the minidump.
72 //
73 #define FX_MAX_DUMP_DRIVER_INFO_COUNT \
74  (FX_MAX_DUMP_SIZE/sizeof(FX_DUMP_DRIVER_INFO_ENTRY))
75 
76 //
77 // During run-time we store info about the loaded drivers in an array
78 // of FX_DUMP_DRIVER_INFO_ENTRY struct entries, on a crash we write the
79 // entire array in the minidump for postmortem analysis.
80 //
86 
87 #ifdef __cplusplus
88 } // extern "C"
89 #endif
90 
91 #endif // __FXBUGCHECK_H__
char CHAR
Definition: xmlstorage.h:175
Definition: fxbugcheck.h:81
struct _FX_DUMP_DRIVER_INFO_ENTRY * PFX_DUMP_DRIVER_INFO_ENTRY
struct _FX_DUMP_DRIVER_INFO_ENTRY FX_DUMP_DRIVER_INFO_ENTRY
CHAR DriverName[WDF_DRIVER_GLOBALS_NAME_LEN]
Definition: fxbugcheck.h:84
WDF_VERSION Version
Definition: fxbugcheck.h:83
PFX_DRIVER_GLOBALS FxDriverGlobals
Definition: fxbugcheck.h:82
#define WDF_DRIVER_GLOBALS_NAME_LEN
Definition: wdfglobals.h:51