ReactOS 0.4.16-dev-258-g81860b4
fxbugcheck.h
Go to the documentation of this file.
1/*++
2
3Copyright (c) Microsoft Corporation
4
5Module Name:
6
7 FxBugcheck.h
8
9Abstract:
10 This module contains private macros/defines for crashdumps.
11
12--*/
13
14#ifndef __FXBUGCHECK_H__
15#define __FXBUGCHECK_H__
16
17#ifdef __cplusplus
18extern "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__
struct _FX_DUMP_DRIVER_INFO_ENTRY * PFX_DUMP_DRIVER_INFO_ENTRY
struct _FX_DUMP_DRIVER_INFO_ENTRY FX_DUMP_DRIVER_INFO_ENTRY
Definition: fxbugcheck.h:81
PFX_DRIVER_GLOBALS FxDriverGlobals
Definition: fxbugcheck.h:82
WDF_VERSION Version
Definition: fxbugcheck.h:83
CHAR DriverName[WDF_DRIVER_GLOBALS_NAME_LEN]
Definition: fxbugcheck.h:84
#define WDF_DRIVER_GLOBALS_NAME_LEN
Definition: wdfglobals.h:51
char CHAR
Definition: xmlstorage.h:175