summaryrefslogtreecommitdiffstats
path: root/toolkit/crashreporter/google-breakpad/src/google_breakpad
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/crashreporter/google-breakpad/src/google_breakpad')
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/common/breakpad_types.h68
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_amd64.h235
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_arm.h151
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_arm64.h192
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_mips.h176
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_ppc.h159
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_ppc64.h134
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_sparc.h163
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_x86.h174
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_fuchsia.h58
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_linux.h129
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_mac.h314
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_ps3.h67
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_solaris.h94
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_win32.h5575
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_format.h1178
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_size.h113
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/basic_source_line_resolver.h148
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/call_stack.h97
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/code_module.h104
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/code_modules.h108
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/dump_context.h116
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/dump_object.h53
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/exception_record.h124
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/exploitability.h82
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/fast_source_line_resolver.h100
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/memory_region.h79
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/microdump.h135
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/microdump_processor.h64
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/minidump.h1498
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/minidump_processor.h147
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/proc_maps_linux.h60
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/process_result.h66
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/process_state.h220
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/source_line_resolver_base.h128
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/source_line_resolver_interface.h117
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/stack_frame.h144
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/stack_frame_cpu.h405
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/stack_frame_symbolizer.h110
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/stackwalker.h257
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/symbol_supplier.h99
-rw-r--r--toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/system_info.h106
42 files changed, 13547 insertions, 0 deletions
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/breakpad_types.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/breakpad_types.h
new file mode 100644
index 0000000000..d8828043ff
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/breakpad_types.h
@@ -0,0 +1,68 @@
+/* Copyright (c) 2006, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* breakpad_types.h: Precise-width types
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * This file ensures that types uintN_t are defined for N = 8, 16, 32, and
+ * 64. Types of precise widths are crucial to the task of writing data
+ * structures on one platform and reading them on another.
+ *
+ * Author: Mark Mentovai */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_BREAKPAD_TYPES_H__
+#define GOOGLE_BREAKPAD_COMMON_BREAKPAD_TYPES_H__
+
+#if (defined(_INTTYPES_H) || defined(_INTTYPES_H_)) && \
+ !defined(__STDC_FORMAT_MACROS)
+#error "inttypes.h has already been included before this header file, but "
+#error "without __STDC_FORMAT_MACROS defined."
+#endif
+
+#ifndef __STDC_FORMAT_MACROS
+#define __STDC_FORMAT_MACROS
+#endif /* __STDC_FORMAT_MACROS */
+#include <inttypes.h>
+
+typedef struct {
+ uint64_t high;
+ uint64_t low;
+} uint128_struct;
+
+typedef uint64_t breakpad_time_t;
+
+/* Try to get PRIx64 from inttypes.h, but if it's not defined, fall back to
+ * llx, which is the format string for "long long" - this is a 64-bit
+ * integral type on many systems. */
+#ifndef PRIx64
+#define PRIx64 "llx"
+#endif /* !PRIx64 */
+
+#endif /* GOOGLE_BREAKPAD_COMMON_BREAKPAD_TYPES_H__ */
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_amd64.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_amd64.h
new file mode 100644
index 0000000000..4256706d77
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_amd64.h
@@ -0,0 +1,235 @@
+/* Copyright (c) 2006, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_format.h: A cross-platform reimplementation of minidump-related
+ * portions of DbgHelp.h from the Windows Platform SDK.
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * This file contains the necessary definitions to read minidump files
+ * produced on amd64. These files may be read on any platform provided
+ * that the alignments of these structures on the processing system are
+ * identical to the alignments of these structures on the producing system.
+ * For this reason, precise-sized types are used. The structures defined
+ * by this file have been laid out to minimize alignment problems by ensuring
+ * ensuring that all members are aligned on their natural boundaries. In
+ * In some cases, tail-padding may be significant when different ABIs specify
+ * different tail-padding behaviors. To avoid problems when reading or
+ * writing affected structures, MD_*_SIZE macros are provided where needed,
+ * containing the useful size of the structures without padding.
+ *
+ * Structures that are defined by Microsoft to contain a zero-length array
+ * are instead defined here to contain an array with one element, as
+ * zero-length arrays are forbidden by standard C and C++. In these cases,
+ * *_minsize constants are provided to be used in place of sizeof. For a
+ * cleaner interface to these sizes when using C++, see minidump_size.h.
+ *
+ * These structures are also sufficient to populate minidump files.
+ *
+ * These definitions may be extended to support handling minidump files
+ * for other CPUs and other operating systems.
+ *
+ * Because precise data type sizes are crucial for this implementation to
+ * function properly and portably in terms of interoperability with minidumps
+ * produced by DbgHelp on Windows, a set of primitive types with known sizes
+ * are used as the basis of each structure defined by this file. DbgHelp
+ * on Windows is assumed to be the reference implementation; this file
+ * seeks to provide a cross-platform compatible implementation. To avoid
+ * collisions with the types and values defined and used by DbgHelp in the
+ * event that this implementation is used on Windows, each type and value
+ * defined here is given a new name, beginning with "MD". Names of the
+ * equivalent types and values in the Windows Platform SDK are given in
+ * comments.
+ *
+ * Author: Mark Mentovai
+ * Change to split into its own file: Neal Sidhwaney */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_AMD64_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_AMD64_H__
+
+
+/*
+ * AMD64 support, see WINNT.H
+ */
+
+typedef struct {
+ uint16_t control_word;
+ uint16_t status_word;
+ uint8_t tag_word;
+ uint8_t reserved1;
+ uint16_t error_opcode;
+ uint32_t error_offset;
+ uint16_t error_selector;
+ uint16_t reserved2;
+ uint32_t data_offset;
+ uint16_t data_selector;
+ uint16_t reserved3;
+ uint32_t mx_csr;
+ uint32_t mx_csr_mask;
+ uint128_struct float_registers[8];
+ uint128_struct xmm_registers[16];
+ uint8_t reserved4[96];
+} MDXmmSaveArea32AMD64; /* XMM_SAVE_AREA32 */
+
+#define MD_CONTEXT_AMD64_VR_COUNT 26
+
+typedef struct {
+ /*
+ * Register parameter home addresses.
+ */
+ uint64_t p1_home;
+ uint64_t p2_home;
+ uint64_t p3_home;
+ uint64_t p4_home;
+ uint64_t p5_home;
+ uint64_t p6_home;
+
+ /* The next field determines the layout of the structure, and which parts
+ * of it are populated */
+ uint32_t context_flags;
+ uint32_t mx_csr;
+
+ /* The next register is included with MD_CONTEXT_AMD64_CONTROL */
+ uint16_t cs;
+
+ /* The next 4 registers are included with MD_CONTEXT_AMD64_SEGMENTS */
+ uint16_t ds;
+ uint16_t es;
+ uint16_t fs;
+ uint16_t gs;
+
+ /* The next 2 registers are included with MD_CONTEXT_AMD64_CONTROL */
+ uint16_t ss;
+ uint32_t eflags;
+
+ /* The next 6 registers are included with MD_CONTEXT_AMD64_DEBUG_REGISTERS */
+ uint64_t dr0;
+ uint64_t dr1;
+ uint64_t dr2;
+ uint64_t dr3;
+ uint64_t dr6;
+ uint64_t dr7;
+
+ /* The next 4 registers are included with MD_CONTEXT_AMD64_INTEGER */
+ uint64_t rax;
+ uint64_t rcx;
+ uint64_t rdx;
+ uint64_t rbx;
+
+ /* The next register is included with MD_CONTEXT_AMD64_CONTROL */
+ uint64_t rsp;
+
+ /* The next 11 registers are included with MD_CONTEXT_AMD64_INTEGER */
+ uint64_t rbp;
+ uint64_t rsi;
+ uint64_t rdi;
+ uint64_t r8;
+ uint64_t r9;
+ uint64_t r10;
+ uint64_t r11;
+ uint64_t r12;
+ uint64_t r13;
+ uint64_t r14;
+ uint64_t r15;
+
+ /* The next register is included with MD_CONTEXT_AMD64_CONTROL */
+ uint64_t rip;
+
+ /* The next set of registers are included with
+ * MD_CONTEXT_AMD64_FLOATING_POINT
+ */
+ union {
+ MDXmmSaveArea32AMD64 flt_save;
+ struct {
+ uint128_struct header[2];
+ uint128_struct legacy[8];
+ uint128_struct xmm0;
+ uint128_struct xmm1;
+ uint128_struct xmm2;
+ uint128_struct xmm3;
+ uint128_struct xmm4;
+ uint128_struct xmm5;
+ uint128_struct xmm6;
+ uint128_struct xmm7;
+ uint128_struct xmm8;
+ uint128_struct xmm9;
+ uint128_struct xmm10;
+ uint128_struct xmm11;
+ uint128_struct xmm12;
+ uint128_struct xmm13;
+ uint128_struct xmm14;
+ uint128_struct xmm15;
+ } sse_registers;
+ };
+
+ uint128_struct vector_register[MD_CONTEXT_AMD64_VR_COUNT];
+ uint64_t vector_control;
+
+ /* The next 5 registers are included with MD_CONTEXT_AMD64_DEBUG_REGISTERS */
+ uint64_t debug_control;
+ uint64_t last_branch_to_rip;
+ uint64_t last_branch_from_rip;
+ uint64_t last_exception_to_rip;
+ uint64_t last_exception_from_rip;
+
+} MDRawContextAMD64; /* CONTEXT */
+
+/* For (MDRawContextAMD64).context_flags. These values indicate the type of
+ * context stored in the structure. The high 24 bits identify the CPU, the
+ * low 8 bits identify the type of context saved. */
+#define MD_CONTEXT_AMD64 0x00100000 /* CONTEXT_AMD64 */
+#define MD_CONTEXT_AMD64_CONTROL (MD_CONTEXT_AMD64 | 0x00000001)
+ /* CONTEXT_CONTROL */
+#define MD_CONTEXT_AMD64_INTEGER (MD_CONTEXT_AMD64 | 0x00000002)
+ /* CONTEXT_INTEGER */
+#define MD_CONTEXT_AMD64_SEGMENTS (MD_CONTEXT_AMD64 | 0x00000004)
+ /* CONTEXT_SEGMENTS */
+#define MD_CONTEXT_AMD64_FLOATING_POINT (MD_CONTEXT_AMD64 | 0x00000008)
+ /* CONTEXT_FLOATING_POINT */
+#define MD_CONTEXT_AMD64_DEBUG_REGISTERS (MD_CONTEXT_AMD64 | 0x00000010)
+ /* CONTEXT_DEBUG_REGISTERS */
+#define MD_CONTEXT_AMD64_XSTATE (MD_CONTEXT_AMD64 | 0x00000040)
+ /* CONTEXT_XSTATE */
+
+/* WinNT.h refers to CONTEXT_MMX_REGISTERS but doesn't appear to define it
+ * I think it really means CONTEXT_FLOATING_POINT.
+ */
+
+#define MD_CONTEXT_AMD64_FULL (MD_CONTEXT_AMD64_CONTROL | \
+ MD_CONTEXT_AMD64_INTEGER | \
+ MD_CONTEXT_AMD64_FLOATING_POINT)
+ /* CONTEXT_FULL */
+
+#define MD_CONTEXT_AMD64_ALL (MD_CONTEXT_AMD64_FULL | \
+ MD_CONTEXT_AMD64_SEGMENTS | \
+ MD_CONTEXT_X86_DEBUG_REGISTERS)
+ /* CONTEXT_ALL */
+
+
+#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_AMD64_H__ */
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_arm.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_arm.h
new file mode 100644
index 0000000000..6a71138337
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_arm.h
@@ -0,0 +1,151 @@
+/* Copyright (c) 2009, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_format.h: A cross-platform reimplementation of minidump-related
+ * portions of DbgHelp.h from the Windows Platform SDK.
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * This file contains the necessary definitions to read minidump files
+ * produced on ARM. These files may be read on any platform provided
+ * that the alignments of these structures on the processing system are
+ * identical to the alignments of these structures on the producing system.
+ * For this reason, precise-sized types are used. The structures defined
+ * by this file have been laid out to minimize alignment problems by
+ * ensuring that all members are aligned on their natural boundaries.
+ * In some cases, tail-padding may be significant when different ABIs specify
+ * different tail-padding behaviors. To avoid problems when reading or
+ * writing affected structures, MD_*_SIZE macros are provided where needed,
+ * containing the useful size of the structures without padding.
+ *
+ * Structures that are defined by Microsoft to contain a zero-length array
+ * are instead defined here to contain an array with one element, as
+ * zero-length arrays are forbidden by standard C and C++. In these cases,
+ * *_minsize constants are provided to be used in place of sizeof. For a
+ * cleaner interface to these sizes when using C++, see minidump_size.h.
+ *
+ * These structures are also sufficient to populate minidump files.
+ *
+ * Because precise data type sizes are crucial for this implementation to
+ * function properly and portably, a set of primitive types with known sizes
+ * are used as the basis of each structure defined by this file.
+ *
+ * Author: Julian Seward
+ */
+
+/*
+ * ARM support
+ */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM_H__
+
+#define MD_FLOATINGSAVEAREA_ARM_FPR_COUNT 32
+#define MD_FLOATINGSAVEAREA_ARM_FPEXTRA_COUNT 8
+
+/*
+ * Note that these structures *do not* map directly to the CONTEXT
+ * structure defined in WinNT.h in the Windows Mobile SDK. That structure
+ * does not accomodate VFPv3, and I'm unsure if it was ever used in the
+ * wild anyway, as Windows CE only seems to produce "cedumps" which
+ * are not exactly minidumps.
+ */
+typedef struct {
+ uint64_t fpscr; /* FPU status register */
+
+ /* 32 64-bit floating point registers, d0 .. d31. */
+ uint64_t regs[MD_FLOATINGSAVEAREA_ARM_FPR_COUNT];
+
+ /* Miscellaneous control words */
+ uint32_t extra[MD_FLOATINGSAVEAREA_ARM_FPEXTRA_COUNT];
+} MDFloatingSaveAreaARM;
+
+#define MD_CONTEXT_ARM_GPR_COUNT 16
+
+typedef struct {
+ /* The next field determines the layout of the structure, and which parts
+ * of it are populated
+ */
+ uint32_t context_flags;
+
+ /* 16 32-bit integer registers, r0 .. r15
+ * Note the following fixed uses:
+ * r13 is the stack pointer
+ * r14 is the link register
+ * r15 is the program counter
+ */
+ uint32_t iregs[MD_CONTEXT_ARM_GPR_COUNT];
+
+ /* CPSR (flags, basically): 32 bits:
+ bit 31 - N (negative)
+ bit 30 - Z (zero)
+ bit 29 - C (carry)
+ bit 28 - V (overflow)
+ bit 27 - Q (saturation flag, sticky)
+ All other fields -- ignore */
+ uint32_t cpsr;
+
+ /* The next field is included with MD_CONTEXT_ARM_FLOATING_POINT */
+ MDFloatingSaveAreaARM float_save;
+
+} MDRawContextARM;
+
+/* Indices into iregs for registers with a dedicated or conventional
+ * purpose.
+ */
+enum MDARMRegisterNumbers {
+ MD_CONTEXT_ARM_REG_IOS_FP = 7,
+ MD_CONTEXT_ARM_REG_FP = 11,
+ MD_CONTEXT_ARM_REG_SP = 13,
+ MD_CONTEXT_ARM_REG_LR = 14,
+ MD_CONTEXT_ARM_REG_PC = 15
+};
+
+/* For (MDRawContextARM).context_flags. These values indicate the type of
+ * context stored in the structure. */
+/* CONTEXT_ARM from the Windows CE 5.0 SDK. This value isn't correct
+ * because this bit can be used for flags. Presumably this value was
+ * never actually used in minidumps, but only in "CEDumps" which
+ * are a whole parallel minidump file format for Windows CE.
+ * Therefore, Breakpad defines its own value for ARM CPUs.
+ */
+#define MD_CONTEXT_ARM_OLD 0x00000040
+/* This value was chosen to avoid likely conflicts with MD_CONTEXT_*
+ * for other CPUs. */
+#define MD_CONTEXT_ARM 0x40000000
+#define MD_CONTEXT_ARM_INTEGER (MD_CONTEXT_ARM | 0x00000002)
+#define MD_CONTEXT_ARM_FLOATING_POINT (MD_CONTEXT_ARM | 0x00000004)
+
+#define MD_CONTEXT_ARM_FULL (MD_CONTEXT_ARM_INTEGER | \
+ MD_CONTEXT_ARM_FLOATING_POINT)
+
+#define MD_CONTEXT_ARM_ALL (MD_CONTEXT_ARM_INTEGER | \
+ MD_CONTEXT_ARM_FLOATING_POINT)
+
+#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM_H__ */
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_arm64.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_arm64.h
new file mode 100644
index 0000000000..a94962009e
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_arm64.h
@@ -0,0 +1,192 @@
+/* Copyright 2013 Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_format.h: A cross-platform reimplementation of minidump-related
+ * portions of DbgHelp.h from the Windows Platform SDK.
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * This file contains the necessary definitions to read minidump files
+ * produced on ARM. These files may be read on any platform provided
+ * that the alignments of these structures on the processing system are
+ * identical to the alignments of these structures on the producing system.
+ * For this reason, precise-sized types are used. The structures defined
+ * by this file have been laid out to minimize alignment problems by
+ * ensuring that all members are aligned on their natural boundaries.
+ * In some cases, tail-padding may be significant when different ABIs specify
+ * different tail-padding behaviors. To avoid problems when reading or
+ * writing affected structures, MD_*_SIZE macros are provided where needed,
+ * containing the useful size of the structures without padding.
+ *
+ * Structures that are defined by Microsoft to contain a zero-length array
+ * are instead defined here to contain an array with one element, as
+ * zero-length arrays are forbidden by standard C and C++. In these cases,
+ * *_minsize constants are provided to be used in place of sizeof. For a
+ * cleaner interface to these sizes when using C++, see minidump_size.h.
+ *
+ * These structures are also sufficient to populate minidump files.
+ *
+ * Because precise data type sizes are crucial for this implementation to
+ * function properly and portably, a set of primitive types with known sizes
+ * are used as the basis of each structure defined by this file.
+ *
+ * Author: Colin Blundell
+ */
+
+/*
+ * ARM64 support
+ */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM64_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM64_H__
+
+#include "google_breakpad/common/breakpad_types.h"
+
+#define MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT 32
+#define MD_CONTEXT_ARM64_GPR_COUNT 33
+
+typedef struct {
+ /* 32 128-bit floating point registers, d0 .. d31. */
+ uint128_struct regs[MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT];
+
+ uint32_t fpcr; /* FPU control register */
+ uint32_t fpsr; /* FPU status register */
+} MDFloatingSaveAreaARM64;
+
+/* For (MDRawContextARM64).context_flags. These values indicate the type of
+ * context stored in the structure. */
+#define MD_CONTEXT_ARM64 0x00400000
+#define MD_CONTEXT_ARM64_CONTROL (MD_CONTEXT_ARM64 | 0x00000001)
+#define MD_CONTEXT_ARM64_INTEGER (MD_CONTEXT_ARM64 | 0x00000002)
+#define MD_CONTEXT_ARM64_FLOATING_POINT (MD_CONTEXT_ARM64 | 0x00000004)
+#define MD_CONTEXT_ARM64_DEBUG (MD_CONTEXT_ARM64 | 0x00000008)
+#define MD_CONTEXT_ARM64_FULL (MD_CONTEXT_ARM64_CONTROL | \
+ MD_CONTEXT_ARM64_INTEGER | \
+ MD_CONTEXT_ARM64_FLOATING_POINT)
+#define MD_CONTEXT_ARM64_ALL (MD_CONTEXT_ARM64_FULL | MD_CONTEXT_ARM64_DEBUG)
+
+/* Use the same 32-bit alignment when accessing these structures from 64-bit
+ * code as is used natively in 32-bit code. */
+#pragma pack(push, 4)
+
+typedef struct {
+ /* Determines which fields of this struct are populated */
+ uint32_t context_flags;
+
+ /* CPSR (flags, basically): 32 bits:
+ bit 31 - N (negative)
+ bit 30 - Z (zero)
+ bit 29 - C (carry)
+ bit 28 - V (overflow)
+ bit 27 - Q (saturation flag, sticky)
+ All other fields -- ignore */
+ uint32_t cpsr;
+
+ /* 33 64-bit integer registers, x0 .. x31 + the PC
+ * Note the following fixed uses:
+ * x29 is the frame pointer
+ * x30 is the link register
+ * x31 is the stack pointer
+ * The PC is effectively x32.
+ */
+ uint64_t iregs[MD_CONTEXT_ARM64_GPR_COUNT];
+
+ /* The next field is included with MD_CONTEXT64_ARM_FLOATING_POINT */
+ MDFloatingSaveAreaARM64 float_save;
+
+ uint32_t bcr[8];
+ uint64_t bvr[8];
+ uint32_t wcr[2];
+ uint64_t wvr[2];
+} MDRawContextARM64;
+
+typedef struct {
+ uint32_t fpsr; /* FPU status register */
+ uint32_t fpcr; /* FPU control register */
+
+ /* 32 128-bit floating point registers, d0 .. d31. */
+ uint128_struct regs[MD_FLOATINGSAVEAREA_ARM64_FPR_COUNT];
+} MDFloatingSaveAreaARM64_Old;
+
+typedef struct {
+ /* The next field determines the layout of the structure, and which parts
+ * of it are populated
+ */
+ uint64_t context_flags;
+
+ /* 33 64-bit integer registers, x0 .. x31 + the PC
+ * Note the following fixed uses:
+ * x29 is the frame pointer
+ * x30 is the link register
+ * x31 is the stack pointer
+ * The PC is effectively x32.
+ */
+ uint64_t iregs[MD_CONTEXT_ARM64_GPR_COUNT];
+
+ /* CPSR (flags, basically): 32 bits:
+ bit 31 - N (negative)
+ bit 30 - Z (zero)
+ bit 29 - C (carry)
+ bit 28 - V (overflow)
+ bit 27 - Q (saturation flag, sticky)
+ All other fields -- ignore */
+ uint32_t cpsr;
+
+ /* The next field is included with MD_CONTEXT64_ARM_FLOATING_POINT */
+ MDFloatingSaveAreaARM64_Old float_save;
+
+} MDRawContextARM64_Old;
+
+#pragma pack(pop)
+
+/* Indices into iregs for registers with a dedicated or conventional
+ * purpose.
+ */
+enum MDARM64RegisterNumbers {
+ MD_CONTEXT_ARM64_REG_FP = 29,
+ MD_CONTEXT_ARM64_REG_LR = 30,
+ MD_CONTEXT_ARM64_REG_SP = 31,
+ MD_CONTEXT_ARM64_REG_PC = 32
+};
+
+/* For (MDRawContextARM64_Old).context_flags. These values indicate the type of
+ * context stored in the structure. MD_CONTEXT_ARM64_OLD is Breakpad-defined.
+ * This value was chosen to avoid likely conflicts with MD_CONTEXT_*
+ * for other CPUs. */
+#define MD_CONTEXT_ARM64_OLD 0x80000000
+#define MD_CONTEXT_ARM64_INTEGER_OLD (MD_CONTEXT_ARM64_OLD | 0x00000002)
+#define MD_CONTEXT_ARM64_FLOATING_POINT_OLD (MD_CONTEXT_ARM64_OLD | 0x00000004)
+
+#define MD_CONTEXT_ARM64_FULL_OLD (MD_CONTEXT_ARM64_INTEGER_OLD | \
+ MD_CONTEXT_ARM64_FLOATING_POINT_OLD)
+
+#define MD_CONTEXT_ARM64_ALL_OLD (MD_CONTEXT_ARM64_INTEGER_OLD | \
+ MD_CONTEXT_ARM64_FLOATING_POINT_OLD)
+
+#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_ARM64_H__ */
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_mips.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_mips.h
new file mode 100644
index 0000000000..f4e2b5891c
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_mips.h
@@ -0,0 +1,176 @@
+/* Copyright (c) 2013, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_format.h: A cross-platform reimplementation of minidump-related
+ * portions of DbgHelp.h from the Windows Platform SDK.
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * This file contains the necessary definitions to read minidump files
+ * produced on MIPS. These files may be read on any platform provided
+ * that the alignments of these structures on the processing system are
+ * identical to the alignments of these structures on the producing system.
+ * For this reason, precise-sized types are used. The structures defined
+ * by this file have been laid out to minimize alignment problems by
+ * ensuring that all members are aligned on their natural boundaries.
+ * In some cases, tail-padding may be significant when different ABIs specify
+ * different tail-padding behaviors. To avoid problems when reading or
+ * writing affected structures, MD_*_SIZE macros are provided where needed,
+ * containing the useful size of the structures without padding.
+ *
+ * Structures that are defined by Microsoft to contain a zero-length array
+ * are instead defined here to contain an array with one element, as
+ * zero-length arrays are forbidden by standard C and C++. In these cases,
+ * *_minsize constants are provided to be used in place of sizeof. For a
+ * cleaner interface to these sizes when using C++, see minidump_size.h.
+ *
+ * These structures are also sufficient to populate minidump files.
+ *
+ * Because precise data type sizes are crucial for this implementation to
+ * function properly and portably, a set of primitive types with known sizes
+ * are used as the basis of each structure defined by this file.
+ *
+ * Author: Chris Dearman
+ */
+
+/*
+ * MIPS support
+ */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_MIPS_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_MIPS_H__
+
+#define MD_CONTEXT_MIPS_GPR_COUNT 32
+#define MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT 32
+#define MD_CONTEXT_MIPS_DSP_COUNT 3
+
+/*
+ * Note that these structures *do not* map directly to the CONTEXT
+ * structure defined in WinNT.h in the Windows Mobile SDK. That structure
+ * does not accomodate VFPv3, and I'm unsure if it was ever used in the
+ * wild anyway, as Windows CE only seems to produce "cedumps" which
+ * are not exactly minidumps.
+ */
+typedef struct {
+ /* 32 64-bit floating point registers, f0..f31 */
+ uint64_t regs[MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT];
+
+ uint32_t fpcsr; /* FPU status register. */
+ uint32_t fir; /* FPU implementation register. */
+} MDFloatingSaveAreaMIPS;
+
+typedef struct {
+ /* The next field determines the layout of the structure, and which parts
+ * of it are populated.
+ */
+ uint32_t context_flags;
+ uint32_t _pad0;
+
+ /* 32 64-bit integer registers, r0..r31.
+ * Note the following fixed uses:
+ * r29 is the stack pointer.
+ * r31 is the return address.
+ */
+ uint64_t iregs[MD_CONTEXT_MIPS_GPR_COUNT];
+
+ /* multiply/divide result. */
+ uint64_t mdhi, mdlo;
+
+ /* DSP accumulators. */
+ uint32_t hi[MD_CONTEXT_MIPS_DSP_COUNT];
+ uint32_t lo[MD_CONTEXT_MIPS_DSP_COUNT];
+ uint32_t dsp_control;
+ uint32_t _pad1;
+
+ uint64_t epc;
+ uint64_t badvaddr;
+ uint32_t status;
+ uint32_t cause;
+
+ /* The next field is included with MD_CONTEXT_MIPS_FLOATING_POINT. */
+ MDFloatingSaveAreaMIPS float_save;
+
+} MDRawContextMIPS;
+
+/* Indices into iregs for registers with a dedicated or conventional
+ * purpose.
+ */
+enum MDMIPSRegisterNumbers {
+ MD_CONTEXT_MIPS_REG_S0 = 16,
+ MD_CONTEXT_MIPS_REG_S1 = 17,
+ MD_CONTEXT_MIPS_REG_S2 = 18,
+ MD_CONTEXT_MIPS_REG_S3 = 19,
+ MD_CONTEXT_MIPS_REG_S4 = 20,
+ MD_CONTEXT_MIPS_REG_S5 = 21,
+ MD_CONTEXT_MIPS_REG_S6 = 22,
+ MD_CONTEXT_MIPS_REG_S7 = 23,
+ MD_CONTEXT_MIPS_REG_GP = 28,
+ MD_CONTEXT_MIPS_REG_SP = 29,
+ MD_CONTEXT_MIPS_REG_FP = 30,
+ MD_CONTEXT_MIPS_REG_RA = 31,
+};
+
+/* For (MDRawContextMIPS).context_flags. These values indicate the type of
+ * context stored in the structure. */
+/* CONTEXT_MIPS from the Windows CE 5.0 SDK. This value isn't correct
+ * because this bit can be used for flags. Presumably this value was
+ * never actually used in minidumps, but only in "CEDumps" which
+ * are a whole parallel minidump file format for Windows CE.
+ * Therefore, Breakpad defines its own value for MIPS CPUs.
+ */
+#define MD_CONTEXT_MIPS 0x00040000
+#define MD_CONTEXT_MIPS_INTEGER (MD_CONTEXT_MIPS | 0x00000002)
+#define MD_CONTEXT_MIPS_FLOATING_POINT (MD_CONTEXT_MIPS | 0x00000004)
+#define MD_CONTEXT_MIPS_DSP (MD_CONTEXT_MIPS | 0x00000008)
+
+#define MD_CONTEXT_MIPS_FULL (MD_CONTEXT_MIPS_INTEGER | \
+ MD_CONTEXT_MIPS_FLOATING_POINT | \
+ MD_CONTEXT_MIPS_DSP)
+
+#define MD_CONTEXT_MIPS_ALL (MD_CONTEXT_MIPS_INTEGER | \
+ MD_CONTEXT_MIPS_FLOATING_POINT \
+ MD_CONTEXT_MIPS_DSP)
+
+/**
+ * Breakpad defines for MIPS64
+ */
+#define MD_CONTEXT_MIPS64 0x00080000
+#define MD_CONTEXT_MIPS64_INTEGER (MD_CONTEXT_MIPS64 | 0x00000002)
+#define MD_CONTEXT_MIPS64_FLOATING_POINT (MD_CONTEXT_MIPS64 | 0x00000004)
+#define MD_CONTEXT_MIPS64_DSP (MD_CONTEXT_MIPS64 | 0x00000008)
+
+#define MD_CONTEXT_MIPS64_FULL (MD_CONTEXT_MIPS64_INTEGER | \
+ MD_CONTEXT_MIPS64_FLOATING_POINT | \
+ MD_CONTEXT_MIPS64_DSP)
+
+#define MD_CONTEXT_MIPS64_ALL (MD_CONTEXT_MIPS64_INTEGER | \
+ MD_CONTEXT_MIPS64_FLOATING_POINT \
+ MD_CONTEXT_MIPS64_DSP)
+
+#endif // GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_MIPS_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_ppc.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_ppc.h
new file mode 100644
index 0000000000..fcc85cd9b0
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_ppc.h
@@ -0,0 +1,159 @@
+/* Copyright (c) 2006, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_format.h: A cross-platform reimplementation of minidump-related
+ * portions of DbgHelp.h from the Windows Platform SDK.
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * This file contains the necessary definitions to read minidump files
+ * produced on ppc. These files may be read on any platform provided
+ * that the alignments of these structures on the processing system are
+ * identical to the alignments of these structures on the producing system.
+ * For this reason, precise-sized types are used. The structures defined
+ * by this file have been laid out to minimize alignment problems by ensuring
+ * ensuring that all members are aligned on their natural boundaries. In
+ * In some cases, tail-padding may be significant when different ABIs specify
+ * different tail-padding behaviors. To avoid problems when reading or
+ * writing affected structures, MD_*_SIZE macros are provided where needed,
+ * containing the useful size of the structures without padding.
+ *
+ * Structures that are defined by Microsoft to contain a zero-length array
+ * are instead defined here to contain an array with one element, as
+ * zero-length arrays are forbidden by standard C and C++. In these cases,
+ * *_minsize constants are provided to be used in place of sizeof. For a
+ * cleaner interface to these sizes when using C++, see minidump_size.h.
+ *
+ * These structures are also sufficient to populate minidump files.
+ *
+ * These definitions may be extended to support handling minidump files
+ * for other CPUs and other operating systems.
+ *
+ * Because precise data type sizes are crucial for this implementation to
+ * function properly and portably in terms of interoperability with minidumps
+ * produced by DbgHelp on Windows, a set of primitive types with known sizes
+ * are used as the basis of each structure defined by this file. DbgHelp
+ * on Windows is assumed to be the reference implementation; this file
+ * seeks to provide a cross-platform compatible implementation. To avoid
+ * collisions with the types and values defined and used by DbgHelp in the
+ * event that this implementation is used on Windows, each type and value
+ * defined here is given a new name, beginning with "MD". Names of the
+ * equivalent types and values in the Windows Platform SDK are given in
+ * comments.
+ *
+ * Author: Mark Mentovai
+ * Change to split into its own file: Neal Sidhwaney */
+
+/*
+ * Breakpad minidump extension for PowerPC support. Based on Darwin/Mac OS X'
+ * mach/ppc/_types.h
+ */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC_H__
+
+/* Use the same 32-bit alignment when accessing these structures from 64-bit
+ * code as is used natively in 32-bit code. */
+#pragma pack(push, 4)
+
+#define MD_FLOATINGSAVEAREA_PPC_FPR_COUNT 32
+
+typedef struct {
+ /* fpregs is a double[32] in mach/ppc/_types.h, but a uint64_t is used
+ * here for precise sizing. */
+ uint64_t fpregs[MD_FLOATINGSAVEAREA_PPC_FPR_COUNT];
+ uint32_t fpscr_pad;
+ uint32_t fpscr; /* Status/control */
+} MDFloatingSaveAreaPPC; /* Based on ppc_float_state */
+
+
+#define MD_VECTORSAVEAREA_PPC_VR_COUNT 32
+
+typedef struct {
+ /* Vector registers (including vscr) are 128 bits, but mach/ppc/_types.h
+ * exposes them as four 32-bit quantities. */
+ uint128_struct save_vr[MD_VECTORSAVEAREA_PPC_VR_COUNT];
+ uint128_struct save_vscr; /* Status/control */
+ uint32_t save_pad5[4];
+ uint32_t save_vrvalid; /* Indicates which vector registers are saved */
+ uint32_t save_pad6[7];
+} MDVectorSaveAreaPPC; /* ppc_vector_state */
+
+
+#define MD_CONTEXT_PPC_GPR_COUNT 32
+
+typedef struct {
+ /* context_flags is not present in ppc_thread_state, but it aids
+ * identification of MDRawContextPPC among other raw context types,
+ * and it guarantees alignment when we get to float_save. */
+ uint32_t context_flags;
+
+ uint32_t srr0; /* Machine status save/restore: stores pc
+ * (instruction) */
+ uint32_t srr1; /* Machine status save/restore: stores msr
+ * (ps, program/machine state) */
+ /* ppc_thread_state contains 32 fields, r0 .. r31. Here, an array is
+ * used for brevity. */
+ uint32_t gpr[MD_CONTEXT_PPC_GPR_COUNT];
+ uint32_t cr; /* Condition */
+ uint32_t xer; /* Integer (fiXed-point) exception */
+ uint32_t lr; /* Link */
+ uint32_t ctr; /* Count */
+ uint32_t mq; /* Multiply/Quotient (PPC 601, POWER only) */
+ uint32_t vrsave; /* Vector save */
+
+ /* float_save and vector_save aren't present in ppc_thread_state, but
+ * are represented in separate structures that still define a thread's
+ * context. */
+ MDFloatingSaveAreaPPC float_save;
+ MDVectorSaveAreaPPC vector_save;
+} MDRawContextPPC; /* Based on ppc_thread_state */
+
+/* Indices into gpr for registers with a dedicated or conventional purpose. */
+enum MDPPCRegisterNumbers {
+ MD_CONTEXT_PPC_REG_SP = 1
+};
+
+#pragma pack(pop)
+
+/* For (MDRawContextPPC).context_flags. These values indicate the type of
+ * context stored in the structure. MD_CONTEXT_PPC is Breakpad-defined. Its
+ * value was chosen to avoid likely conflicts with MD_CONTEXT_* for other
+ * CPUs. */
+#define MD_CONTEXT_PPC 0x20000000
+#define MD_CONTEXT_PPC_BASE (MD_CONTEXT_PPC | 0x00000001)
+#define MD_CONTEXT_PPC_FLOATING_POINT (MD_CONTEXT_PPC | 0x00000008)
+#define MD_CONTEXT_PPC_VECTOR (MD_CONTEXT_PPC | 0x00000020)
+
+#define MD_CONTEXT_PPC_FULL MD_CONTEXT_PPC_BASE
+#define MD_CONTEXT_PPC_ALL (MD_CONTEXT_PPC_FULL | \
+ MD_CONTEXT_PPC_FLOATING_POINT | \
+ MD_CONTEXT_PPC_VECTOR)
+
+#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC_H__ */
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_ppc64.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_ppc64.h
new file mode 100644
index 0000000000..61f4193865
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_ppc64.h
@@ -0,0 +1,134 @@
+/* Copyright (c) 2008, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_format.h: A cross-platform reimplementation of minidump-related
+ * portions of DbgHelp.h from the Windows Platform SDK.
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * This file contains the necessary definitions to read minidump files
+ * produced on ppc64. These files may be read on any platform provided
+ * that the alignments of these structures on the processing system are
+ * identical to the alignments of these structures on the producing system.
+ * For this reason, precise-sized types are used. The structures defined
+ * by this file have been laid out to minimize alignment problems by ensuring
+ * ensuring that all members are aligned on their natural boundaries. In
+ * In some cases, tail-padding may be significant when different ABIs specify
+ * different tail-padding behaviors. To avoid problems when reading or
+ * writing affected structures, MD_*_SIZE macros are provided where needed,
+ * containing the useful size of the structures without padding.
+ *
+ * Structures that are defined by Microsoft to contain a zero-length array
+ * are instead defined here to contain an array with one element, as
+ * zero-length arrays are forbidden by standard C and C++. In these cases,
+ * *_minsize constants are provided to be used in place of sizeof. For a
+ * cleaner interface to these sizes when using C++, see minidump_size.h.
+ *
+ * These structures are also sufficient to populate minidump files.
+ *
+ * These definitions may be extended to support handling minidump files
+ * for other CPUs and other operating systems.
+ *
+ * Because precise data type sizes are crucial for this implementation to
+ * function properly and portably in terms of interoperability with minidumps
+ * produced by DbgHelp on Windows, a set of primitive types with known sizes
+ * are used as the basis of each structure defined by this file. DbgHelp
+ * on Windows is assumed to be the reference implementation; this file
+ * seeks to provide a cross-platform compatible implementation. To avoid
+ * collisions with the types and values defined and used by DbgHelp in the
+ * event that this implementation is used on Windows, each type and value
+ * defined here is given a new name, beginning with "MD". Names of the
+ * equivalent types and values in the Windows Platform SDK are given in
+ * comments.
+ *
+ * Author: Neal Sidhwaney */
+
+
+/*
+ * Breakpad minidump extension for PPC64 support. Based on Darwin/Mac OS X'
+ * mach/ppc/_types.h
+ */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC64_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC64_H__
+
+#include "minidump_cpu_ppc.h"
+
+// these types are the same in ppc64 & ppc
+typedef MDFloatingSaveAreaPPC MDFloatingSaveAreaPPC64;
+typedef MDVectorSaveAreaPPC MDVectorSaveAreaPPC64;
+
+#define MD_CONTEXT_PPC64_GPR_COUNT MD_CONTEXT_PPC_GPR_COUNT
+
+typedef struct {
+ /* context_flags is not present in ppc_thread_state, but it aids
+ * identification of MDRawContextPPC among other raw context types,
+ * and it guarantees alignment when we get to float_save. */
+ uint64_t context_flags;
+
+ uint64_t srr0; /* Machine status save/restore: stores pc
+ * (instruction) */
+ uint64_t srr1; /* Machine status save/restore: stores msr
+ * (ps, program/machine state) */
+ /* ppc_thread_state contains 32 fields, r0 .. r31. Here, an array is
+ * used for brevity. */
+ uint64_t gpr[MD_CONTEXT_PPC64_GPR_COUNT];
+ uint64_t cr; /* Condition */
+ uint64_t xer; /* Integer (fiXed-point) exception */
+ uint64_t lr; /* Link */
+ uint64_t ctr; /* Count */
+ uint64_t vrsave; /* Vector save */
+
+ /* float_save and vector_save aren't present in ppc_thread_state, but
+ * are represented in separate structures that still define a thread's
+ * context. */
+ MDFloatingSaveAreaPPC float_save;
+ MDVectorSaveAreaPPC vector_save;
+} MDRawContextPPC64; /* Based on ppc_thread_state */
+
+/* Indices into gpr for registers with a dedicated or conventional purpose. */
+enum MDPPC64RegisterNumbers {
+ MD_CONTEXT_PPC64_REG_SP = 1
+};
+
+/* For (MDRawContextPPC).context_flags. These values indicate the type of
+ * context stored in the structure. MD_CONTEXT_PPC is Breakpad-defined. Its
+ * value was chosen to avoid likely conflicts with MD_CONTEXT_* for other
+ * CPUs. */
+#define MD_CONTEXT_PPC64 0x01000000
+#define MD_CONTEXT_PPC64_BASE (MD_CONTEXT_PPC64 | 0x00000001)
+#define MD_CONTEXT_PPC64_FLOATING_POINT (MD_CONTEXT_PPC64 | 0x00000008)
+#define MD_CONTEXT_PPC64_VECTOR (MD_CONTEXT_PPC64 | 0x00000020)
+
+#define MD_CONTEXT_PPC64_FULL MD_CONTEXT_PPC64_BASE
+#define MD_CONTEXT_PPC64_ALL (MD_CONTEXT_PPC64_FULL | \
+ MD_CONTEXT_PPC64_FLOATING_POINT | \
+ MD_CONTEXT_PPC64_VECTOR)
+
+#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_PPC64_H__ */
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_sparc.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_sparc.h
new file mode 100644
index 0000000000..95c08b1743
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_sparc.h
@@ -0,0 +1,163 @@
+/* Copyright (c) 2006, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_format.h: A cross-platform reimplementation of minidump-related
+ * portions of DbgHelp.h from the Windows Platform SDK.
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * This file contains the necessary definitions to read minidump files
+ * produced on sparc. These files may be read on any platform provided
+ * that the alignments of these structures on the processing system are
+ * identical to the alignments of these structures on the producing system.
+ * For this reason, precise-sized types are used. The structures defined
+ * by this file have been laid out to minimize alignment problems by ensuring
+ * ensuring that all members are aligned on their natural boundaries. In
+ * In some cases, tail-padding may be significant when different ABIs specify
+ * different tail-padding behaviors. To avoid problems when reading or
+ * writing affected structures, MD_*_SIZE macros are provided where needed,
+ * containing the useful size of the structures without padding.
+ *
+ * Structures that are defined by Microsoft to contain a zero-length array
+ * are instead defined here to contain an array with one element, as
+ * zero-length arrays are forbidden by standard C and C++. In these cases,
+ * *_minsize constants are provided to be used in place of sizeof. For a
+ * cleaner interface to these sizes when using C++, see minidump_size.h.
+ *
+ * These structures are also sufficient to populate minidump files.
+ *
+ * These definitions may be extended to support handling minidump files
+ * for other CPUs and other operating systems.
+ *
+ * Because precise data type sizes are crucial for this implementation to
+ * function properly and portably in terms of interoperability with minidumps
+ * produced by DbgHelp on Windows, a set of primitive types with known sizes
+ * are used as the basis of each structure defined by this file. DbgHelp
+ * on Windows is assumed to be the reference implementation; this file
+ * seeks to provide a cross-platform compatible implementation. To avoid
+ * collisions with the types and values defined and used by DbgHelp in the
+ * event that this implementation is used on Windows, each type and value
+ * defined here is given a new name, beginning with "MD". Names of the
+ * equivalent types and values in the Windows Platform SDK are given in
+ * comments.
+ *
+ * Author: Mark Mentovai
+ * Change to split into its own file: Neal Sidhwaney */
+
+/*
+ * SPARC support, see (solaris)sys/procfs_isa.h also
+ */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_SPARC_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_SPARC_H__
+
+#define MD_FLOATINGSAVEAREA_SPARC_FPR_COUNT 32
+
+typedef struct {
+
+ /* FPU floating point regs */
+ uint64_t regs[MD_FLOATINGSAVEAREA_SPARC_FPR_COUNT];
+
+ uint64_t filler;
+ uint64_t fsr; /* FPU status register */
+} MDFloatingSaveAreaSPARC; /* FLOATING_SAVE_AREA */
+
+#define MD_CONTEXT_SPARC_GPR_COUNT 32
+
+typedef struct {
+ /* The next field determines the layout of the structure, and which parts
+ * of it are populated
+ */
+ uint32_t context_flags;
+ uint32_t flag_pad;
+ /*
+ * General register access (SPARC).
+ * Don't confuse definitions here with definitions in <sys/regset.h>.
+ * Registers are 32 bits for ILP32, 64 bits for LP64.
+ * SPARC V7/V8 is for 32bit, SPARC V9 is for 64bit
+ */
+
+ /* 32 Integer working registers */
+
+ /* g_r[0-7] global registers(g0-g7)
+ * g_r[8-15] out registers(o0-o7)
+ * g_r[16-23] local registers(l0-l7)
+ * g_r[24-31] in registers(i0-i7)
+ */
+ uint64_t g_r[MD_CONTEXT_SPARC_GPR_COUNT];
+
+ /* several control registers */
+
+ /* Processor State register(PSR) for SPARC V7/V8
+ * Condition Code register (CCR) for SPARC V9
+ */
+ uint64_t ccr;
+
+ uint64_t pc; /* Program Counter register (PC) */
+ uint64_t npc; /* Next Program Counter register (nPC) */
+ uint64_t y; /* Y register (Y) */
+
+ /* Address Space Identifier register (ASI) for SPARC V9
+ * WIM for SPARC V7/V8
+ */
+ uint64_t asi;
+
+ /* Floating-Point Registers State register (FPRS) for SPARC V9
+ * TBR for for SPARC V7/V8
+ */
+ uint64_t fprs;
+
+ /* The next field is included with MD_CONTEXT_SPARC_FLOATING_POINT */
+ MDFloatingSaveAreaSPARC float_save;
+
+} MDRawContextSPARC; /* CONTEXT_SPARC */
+
+/* Indices into g_r for registers with a dedicated or conventional purpose. */
+enum MDSPARCRegisterNumbers {
+ MD_CONTEXT_SPARC_REG_SP = 14
+};
+
+/* For (MDRawContextSPARC).context_flags. These values indicate the type of
+ * context stored in the structure. MD_CONTEXT_SPARC is Breakpad-defined. Its
+ * value was chosen to avoid likely conflicts with MD_CONTEXT_* for other
+ * CPUs. */
+#define MD_CONTEXT_SPARC 0x10000000
+#define MD_CONTEXT_SPARC_CONTROL (MD_CONTEXT_SPARC | 0x00000001)
+#define MD_CONTEXT_SPARC_INTEGER (MD_CONTEXT_SPARC | 0x00000002)
+#define MD_CONTEXT_SAPARC_FLOATING_POINT (MD_CONTEXT_SPARC | 0x00000004)
+#define MD_CONTEXT_SAPARC_EXTRA (MD_CONTEXT_SPARC | 0x00000008)
+
+#define MD_CONTEXT_SPARC_FULL (MD_CONTEXT_SPARC_CONTROL | \
+ MD_CONTEXT_SPARC_INTEGER)
+
+#define MD_CONTEXT_SPARC_ALL (MD_CONTEXT_SPARC_FULL | \
+ MD_CONTEXT_SAPARC_FLOATING_POINT | \
+ MD_CONTEXT_SAPARC_EXTRA)
+
+#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_SPARC_H__ */
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_x86.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_x86.h
new file mode 100644
index 0000000000..e09cb7cb52
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_cpu_x86.h
@@ -0,0 +1,174 @@
+/* Copyright (c) 2006, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_format.h: A cross-platform reimplementation of minidump-related
+ * portions of DbgHelp.h from the Windows Platform SDK.
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * This file contains the necessary definitions to read minidump files
+ * produced on x86. These files may be read on any platform provided
+ * that the alignments of these structures on the processing system are
+ * identical to the alignments of these structures on the producing system.
+ * For this reason, precise-sized types are used. The structures defined
+ * by this file have been laid out to minimize alignment problems by ensuring
+ * ensuring that all members are aligned on their natural boundaries. In
+ * In some cases, tail-padding may be significant when different ABIs specify
+ * different tail-padding behaviors. To avoid problems when reading or
+ * writing affected structures, MD_*_SIZE macros are provided where needed,
+ * containing the useful size of the structures without padding.
+ *
+ * Structures that are defined by Microsoft to contain a zero-length array
+ * are instead defined here to contain an array with one element, as
+ * zero-length arrays are forbidden by standard C and C++. In these cases,
+ * *_minsize constants are provided to be used in place of sizeof. For a
+ * cleaner interface to these sizes when using C++, see minidump_size.h.
+ *
+ * These structures are also sufficient to populate minidump files.
+ *
+ * These definitions may be extended to support handling minidump files
+ * for other CPUs and other operating systems.
+ *
+ * Because precise data type sizes are crucial for this implementation to
+ * function properly and portably in terms of interoperability with minidumps
+ * produced by DbgHelp on Windows, a set of primitive types with known sizes
+ * are used as the basis of each structure defined by this file. DbgHelp
+ * on Windows is assumed to be the reference implementation; this file
+ * seeks to provide a cross-platform compatible implementation. To avoid
+ * collisions with the types and values defined and used by DbgHelp in the
+ * event that this implementation is used on Windows, each type and value
+ * defined here is given a new name, beginning with "MD". Names of the
+ * equivalent types and values in the Windows Platform SDK are given in
+ * comments.
+ *
+ * Author: Mark Mentovai */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_X86_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_X86_H__
+
+#define MD_FLOATINGSAVEAREA_X86_REGISTERAREA_SIZE 80
+ /* SIZE_OF_80387_REGISTERS */
+
+typedef struct {
+ uint32_t control_word;
+ uint32_t status_word;
+ uint32_t tag_word;
+ uint32_t error_offset;
+ uint32_t error_selector;
+ uint32_t data_offset;
+ uint32_t data_selector;
+
+ /* register_area contains eight 80-bit (x87 "long double") quantities for
+ * floating-point registers %st0 (%mm0) through %st7 (%mm7). */
+ uint8_t register_area[MD_FLOATINGSAVEAREA_X86_REGISTERAREA_SIZE];
+ uint32_t cr0_npx_state;
+} MDFloatingSaveAreaX86; /* FLOATING_SAVE_AREA */
+
+
+#define MD_CONTEXT_X86_EXTENDED_REGISTERS_SIZE 512
+ /* MAXIMUM_SUPPORTED_EXTENSION */
+
+typedef struct {
+ /* The next field determines the layout of the structure, and which parts
+ * of it are populated */
+ uint32_t context_flags;
+
+ /* The next 6 registers are included with MD_CONTEXT_X86_DEBUG_REGISTERS */
+ uint32_t dr0;
+ uint32_t dr1;
+ uint32_t dr2;
+ uint32_t dr3;
+ uint32_t dr6;
+ uint32_t dr7;
+
+ /* The next field is included with MD_CONTEXT_X86_FLOATING_POINT */
+ MDFloatingSaveAreaX86 float_save;
+
+ /* The next 4 registers are included with MD_CONTEXT_X86_SEGMENTS */
+ uint32_t gs;
+ uint32_t fs;
+ uint32_t es;
+ uint32_t ds;
+ /* The next 6 registers are included with MD_CONTEXT_X86_INTEGER */
+ uint32_t edi;
+ uint32_t esi;
+ uint32_t ebx;
+ uint32_t edx;
+ uint32_t ecx;
+ uint32_t eax;
+
+ /* The next 6 registers are included with MD_CONTEXT_X86_CONTROL */
+ uint32_t ebp;
+ uint32_t eip;
+ uint32_t cs; /* WinNT.h says "must be sanitized" */
+ uint32_t eflags; /* WinNT.h says "must be sanitized" */
+ uint32_t esp;
+ uint32_t ss;
+
+ /* The next field is included with MD_CONTEXT_X86_EXTENDED_REGISTERS.
+ * It contains vector (MMX/SSE) registers. It it laid out in the
+ * format used by the fxsave and fsrstor instructions, so it includes
+ * a copy of the x87 floating-point registers as well. See FXSAVE in
+ * "Intel Architecture Software Developer's Manual, Volume 2." */
+ uint8_t extended_registers[
+ MD_CONTEXT_X86_EXTENDED_REGISTERS_SIZE];
+} MDRawContextX86; /* CONTEXT */
+
+/* For (MDRawContextX86).context_flags. These values indicate the type of
+ * context stored in the structure. The high 24 bits identify the CPU, the
+ * low 8 bits identify the type of context saved. */
+#define MD_CONTEXT_X86 0x00010000
+ /* CONTEXT_i386, CONTEXT_i486: identifies CPU */
+#define MD_CONTEXT_X86_CONTROL (MD_CONTEXT_X86 | 0x00000001)
+ /* CONTEXT_CONTROL */
+#define MD_CONTEXT_X86_INTEGER (MD_CONTEXT_X86 | 0x00000002)
+ /* CONTEXT_INTEGER */
+#define MD_CONTEXT_X86_SEGMENTS (MD_CONTEXT_X86 | 0x00000004)
+ /* CONTEXT_SEGMENTS */
+#define MD_CONTEXT_X86_FLOATING_POINT (MD_CONTEXT_X86 | 0x00000008)
+ /* CONTEXT_FLOATING_POINT */
+#define MD_CONTEXT_X86_DEBUG_REGISTERS (MD_CONTEXT_X86 | 0x00000010)
+ /* CONTEXT_DEBUG_REGISTERS */
+#define MD_CONTEXT_X86_EXTENDED_REGISTERS (MD_CONTEXT_X86 | 0x00000020)
+ /* CONTEXT_EXTENDED_REGISTERS */
+#define MD_CONTEXT_X86_XSTATE (MD_CONTEXT_X86 | 0x00000040)
+ /* CONTEXT_XSTATE */
+
+#define MD_CONTEXT_X86_FULL (MD_CONTEXT_X86_CONTROL | \
+ MD_CONTEXT_X86_INTEGER | \
+ MD_CONTEXT_X86_SEGMENTS)
+ /* CONTEXT_FULL */
+
+#define MD_CONTEXT_X86_ALL (MD_CONTEXT_X86_FULL | \
+ MD_CONTEXT_X86_FLOATING_POINT | \
+ MD_CONTEXT_X86_DEBUG_REGISTERS | \
+ MD_CONTEXT_X86_EXTENDED_REGISTERS)
+ /* CONTEXT_ALL */
+
+#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_CPU_X86_H__ */
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_fuchsia.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_fuchsia.h
new file mode 100644
index 0000000000..f26a8a2ae0
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_fuchsia.h
@@ -0,0 +1,58 @@
+/* Copyright (c) 2019, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_exception_fuchsia.h: A definition of exception codes for Fuchsia.
+ *
+ * Author: Ivan Penkov */
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_FUCHSIA_H_
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_FUCHSIA_H_
+
+#include <stddef.h>
+
+#include "google_breakpad/common/breakpad_types.h"
+
+// Based on zircon/system/public/zircon/syscalls/exception.h
+typedef enum {
+ // Architectural exceptions
+ MD_EXCEPTION_CODE_FUCHSIA_GENERAL = 0x8,
+ MD_EXCEPTION_CODE_FUCHSIA_FATAL_PAGE_FAULT = 0x108,
+ MD_EXCEPTION_CODE_FUCHSIA_UNDEFINED_INSTRUCTION = 0x208,
+ MD_EXCEPTION_CODE_FUCHSIA_SW_BREAKPOINT = 0x308,
+ MD_EXCEPTION_CODE_FUCHSIA_HW_BREAKPOINT = 0x408,
+ MD_EXCEPTION_CODE_FUCHSIA_UNALIGNED_ACCESS = 0x508,
+ //
+ // Synthetic exceptions
+ MD_EXCEPTION_CODE_FUCHSIA_THREAD_STARTING = 0x8008,
+ MD_EXCEPTION_CODE_FUCHSIA_THREAD_EXITING = 0x8108,
+ MD_EXCEPTION_CODE_FUCHSIA_POLICY_ERROR = 0x8208,
+ MD_EXCEPTION_CODE_FUCHSIA_PROCESS_STARTING = 0x8308,
+} MDExceptionCodeFuchsia;
+
+#endif // GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_FUCHSIA_H_
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_linux.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_linux.h
new file mode 100644
index 0000000000..19e2f2588c
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_linux.h
@@ -0,0 +1,129 @@
+/* Copyright (c) 2006, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_exception_linux.h: A definition of exception codes for
+ * Linux
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * Author: Mark Mentovai
+ * Split into its own file: Neal Sidhwaney */
+
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_LINUX_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_LINUX_H__
+
+#include <stddef.h>
+
+#include "google_breakpad/common/breakpad_types.h"
+
+
+/* For (MDException).exception_code. These values come from bits/signum.h.
+ */
+typedef enum {
+ MD_EXCEPTION_CODE_LIN_SIGHUP = 1, /* Hangup (POSIX) */
+ MD_EXCEPTION_CODE_LIN_SIGINT = 2, /* Interrupt (ANSI) */
+ MD_EXCEPTION_CODE_LIN_SIGQUIT = 3, /* Quit (POSIX) */
+ MD_EXCEPTION_CODE_LIN_SIGILL = 4, /* Illegal instruction (ANSI) */
+ MD_EXCEPTION_CODE_LIN_SIGTRAP = 5, /* Trace trap (POSIX) */
+ MD_EXCEPTION_CODE_LIN_SIGABRT = 6, /* Abort (ANSI) */
+ MD_EXCEPTION_CODE_LIN_SIGBUS = 7, /* BUS error (4.2 BSD) */
+ MD_EXCEPTION_CODE_LIN_SIGFPE = 8, /* Floating-point exception (ANSI) */
+ MD_EXCEPTION_CODE_LIN_SIGKILL = 9, /* Kill, unblockable (POSIX) */
+ MD_EXCEPTION_CODE_LIN_SIGUSR1 = 10, /* User-defined signal 1 (POSIX). */
+ MD_EXCEPTION_CODE_LIN_SIGSEGV = 11, /* Segmentation violation (ANSI) */
+ MD_EXCEPTION_CODE_LIN_SIGUSR2 = 12, /* User-defined signal 2 (POSIX) */
+ MD_EXCEPTION_CODE_LIN_SIGPIPE = 13, /* Broken pipe (POSIX) */
+ MD_EXCEPTION_CODE_LIN_SIGALRM = 14, /* Alarm clock (POSIX) */
+ MD_EXCEPTION_CODE_LIN_SIGTERM = 15, /* Termination (ANSI) */
+ MD_EXCEPTION_CODE_LIN_SIGSTKFLT = 16, /* Stack faultd */
+ MD_EXCEPTION_CODE_LIN_SIGCHLD = 17, /* Child status has changed (POSIX) */
+ MD_EXCEPTION_CODE_LIN_SIGCONT = 18, /* Continue (POSIX) */
+ MD_EXCEPTION_CODE_LIN_SIGSTOP = 19, /* Stop, unblockable (POSIX) */
+ MD_EXCEPTION_CODE_LIN_SIGTSTP = 20, /* Keyboard stop (POSIX) */
+ MD_EXCEPTION_CODE_LIN_SIGTTIN = 21, /* Background read from tty (POSIX) */
+ MD_EXCEPTION_CODE_LIN_SIGTTOU = 22, /* Background write to tty (POSIX) */
+ MD_EXCEPTION_CODE_LIN_SIGURG = 23,
+ /* Urgent condition on socket (4.2 BSD) */
+ MD_EXCEPTION_CODE_LIN_SIGXCPU = 24, /* CPU limit exceeded (4.2 BSD) */
+ MD_EXCEPTION_CODE_LIN_SIGXFSZ = 25,
+ /* File size limit exceeded (4.2 BSD) */
+ MD_EXCEPTION_CODE_LIN_SIGVTALRM = 26, /* Virtual alarm clock (4.2 BSD) */
+ MD_EXCEPTION_CODE_LIN_SIGPROF = 27, /* Profiling alarm clock (4.2 BSD) */
+ MD_EXCEPTION_CODE_LIN_SIGWINCH = 28, /* Window size change (4.3 BSD, Sun) */
+ MD_EXCEPTION_CODE_LIN_SIGIO = 29, /* I/O now possible (4.2 BSD) */
+ MD_EXCEPTION_CODE_LIN_SIGPWR = 30, /* Power failure restart (System V) */
+ MD_EXCEPTION_CODE_LIN_SIGSYS = 31, /* Bad system call */
+ MD_EXCEPTION_CODE_LIN_DUMP_REQUESTED = 0xFFFFFFFF /* No exception,
+ dump requested. */
+} MDExceptionCodeLinux;
+
+/* For (MDException).exception_flags. These values come from
+ * asm-generic/siginfo.h.
+ */
+typedef enum {
+ /* Generic */
+ MD_EXCEPTION_FLAG_LIN_SI_USER = 0,
+ MD_EXCEPTION_FLAG_LIN_SI_KERNEL = 0x80,
+
+ /* SIGILL */
+ MD_EXCEPTION_FLAG_LIN_ILL_ILLOPC = 1,
+ MD_EXCEPTION_FLAG_LIN_ILL_ILLOPN = 2,
+ MD_EXCEPTION_FLAG_LIN_ILL_ILLADR = 3,
+ MD_EXCEPTION_FLAG_LIN_ILL_ILLTRP = 4,
+ MD_EXCEPTION_FLAG_LIN_ILL_PRVOPC = 5,
+ MD_EXCEPTION_FLAG_LIN_ILL_PRVREG = 6,
+ MD_EXCEPTION_FLAG_LIN_ILL_COPROC = 7,
+ MD_EXCEPTION_FLAG_LIN_ILL_BADSTK = 8,
+
+ /* SIGFPE */
+ MD_EXCEPTION_FLAG_LIN_FPE_INTDIV = 1,
+ MD_EXCEPTION_FLAG_LIN_FPE_INTOVF = 2,
+ MD_EXCEPTION_FLAG_LIN_FPE_FLTDIV = 3,
+ MD_EXCEPTION_FLAG_LIN_FPE_FLTOVF = 4,
+ MD_EXCEPTION_FLAG_LIN_FPE_FLTUND = 5,
+ MD_EXCEPTION_FLAG_LIN_FPE_FLTRES = 6,
+ MD_EXCEPTION_FLAG_LIN_FPE_FLTINV = 7,
+ MD_EXCEPTION_FLAG_LIN_FPE_FLTSUB = 8,
+
+ /* SIGSEGV */
+ MD_EXCEPTION_FLAG_LIN_SEGV_MAPERR = 1,
+ MD_EXCEPTION_FLAG_LIN_SEGV_ACCERR = 2,
+ MD_EXCEPTION_FLAG_LIN_SEGV_BNDERR = 3,
+ MD_EXCEPTION_FLAG_LIN_SEGV_PKUERR = 4,
+
+ /* SIGBUS */
+ MD_EXCEPTION_FLAG_LIN_BUS_ADRALN = 1,
+ MD_EXCEPTION_FLAG_LIN_BUS_ADRERR = 2,
+ MD_EXCEPTION_FLAG_LIN_BUS_OBJERR = 3,
+ MD_EXCEPTION_FLAG_LIN_BUS_MCEERR_AR = 4,
+ MD_EXCEPTION_FLAG_LIN_BUS_MCEERR_AO = 5,
+} MDExceptionFlagLinux;
+
+#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_LINUX_H__ */
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_mac.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_mac.h
new file mode 100644
index 0000000000..b26d6c0af0
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_mac.h
@@ -0,0 +1,314 @@
+/* Copyright (c) 2006, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_exception_mac.h: A definition of exception codes for Mac
+ * OS X
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * Author: Mark Mentovai
+ * Split into its own file: Neal Sidhwaney */
+
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_MAC_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_MAC_H__
+
+#include <stddef.h>
+
+#include "google_breakpad/common/breakpad_types.h"
+
+/* For (MDException).exception_code. Breakpad minidump extension for Mac OS X
+ * support. Based on Darwin/Mac OS X' mach/exception_types.h. This is
+ * what Mac OS X calls an "exception", not a "code". */
+typedef enum {
+ /* Exception code. The high 16 bits of exception_code contains one of
+ * these values. */
+ MD_EXCEPTION_MAC_BAD_ACCESS = 1, /* code can be a kern_return_t */
+ /* EXC_BAD_ACCESS */
+ MD_EXCEPTION_MAC_BAD_INSTRUCTION = 2, /* code is CPU-specific */
+ /* EXC_BAD_INSTRUCTION */
+ MD_EXCEPTION_MAC_ARITHMETIC = 3, /* code is CPU-specific */
+ /* EXC_ARITHMETIC */
+ MD_EXCEPTION_MAC_EMULATION = 4, /* code is CPU-specific */
+ /* EXC_EMULATION */
+ MD_EXCEPTION_MAC_SOFTWARE = 5,
+ /* EXC_SOFTWARE */
+ MD_EXCEPTION_MAC_BREAKPOINT = 6, /* code is CPU-specific */
+ /* EXC_BREAKPOINT */
+ MD_EXCEPTION_MAC_SYSCALL = 7,
+ /* EXC_SYSCALL */
+ MD_EXCEPTION_MAC_MACH_SYSCALL = 8,
+ /* EXC_MACH_SYSCALL */
+ MD_EXCEPTION_MAC_RPC_ALERT = 9,
+ /* EXC_RPC_ALERT */
+ MD_EXCEPTION_MAC_RESOURCE = 11,
+ /* EXC_RESOURCE */
+ MD_EXCEPTION_MAC_GUARD = 12,
+ /* EXC_GUARD */
+ MD_EXCEPTION_MAC_SIMULATED = 0x43507378
+ /* Fake exception code used by Crashpad's SimulateCrash ('CPsx'). */
+} MDExceptionMac;
+
+/* For (MDException).exception_flags. Breakpad minidump extension for Mac OS X
+ * support. Based on Darwin/Mac OS X' mach/ppc/exception.h and
+ * mach/i386/exception.h. This is what Mac OS X calls a "code". */
+typedef enum {
+ /* With MD_EXCEPTION_BAD_ACCESS. These are relevant kern_return_t values
+ * from mach/kern_return.h. */
+ MD_EXCEPTION_CODE_MAC_INVALID_ADDRESS = 1,
+ /* KERN_INVALID_ADDRESS */
+ MD_EXCEPTION_CODE_MAC_PROTECTION_FAILURE = 2,
+ /* KERN_PROTECTION_FAILURE */
+ MD_EXCEPTION_CODE_MAC_NO_ACCESS = 8,
+ /* KERN_NO_ACCESS */
+ MD_EXCEPTION_CODE_MAC_MEMORY_FAILURE = 9,
+ /* KERN_MEMORY_FAILURE */
+ MD_EXCEPTION_CODE_MAC_MEMORY_ERROR = 10,
+ /* KERN_MEMORY_ERROR */
+ MD_EXCEPTION_CODE_MAC_CODESIGN_ERROR = 50,
+ /* KERN_CODESIGN_ERROR */
+
+ /* With MD_EXCEPTION_SOFTWARE */
+ MD_EXCEPTION_CODE_MAC_BAD_SYSCALL = 0x00010000, /* Mach SIGSYS */
+ MD_EXCEPTION_CODE_MAC_BAD_PIPE = 0x00010001, /* Mach SIGPIPE */
+ MD_EXCEPTION_CODE_MAC_ABORT = 0x00010002, /* Mach SIGABRT */
+ /* Custom values */
+ MD_EXCEPTION_CODE_MAC_NS_EXCEPTION = 0xDEADC0DE, /* uncaught NSException */
+
+ /* With MD_EXCEPTION_MAC_BAD_ACCESS on arm */
+ MD_EXCEPTION_CODE_MAC_ARM_DA_ALIGN = 0x0101, /* EXC_ARM_DA_ALIGN */
+ MD_EXCEPTION_CODE_MAC_ARM_DA_DEBUG = 0x0102, /* EXC_ARM_DA_DEBUG */
+
+ /* With MD_EXCEPTION_MAC_BAD_INSTRUCTION on arm */
+ MD_EXCEPTION_CODE_MAC_ARM_UNDEFINED = 1, /* EXC_ARM_UNDEFINED */
+
+ /* With MD_EXCEPTION_MAC_BREAKPOINT on arm */
+ MD_EXCEPTION_CODE_MAC_ARM_BREAKPOINT = 1, /* EXC_ARM_BREAKPOINT */
+
+ /* With MD_EXCEPTION_MAC_BAD_ACCESS on ppc */
+ MD_EXCEPTION_CODE_MAC_PPC_VM_PROT_READ = 0x0101,
+ /* EXC_PPC_VM_PROT_READ */
+ MD_EXCEPTION_CODE_MAC_PPC_BADSPACE = 0x0102,
+ /* EXC_PPC_BADSPACE */
+ MD_EXCEPTION_CODE_MAC_PPC_UNALIGNED = 0x0103,
+ /* EXC_PPC_UNALIGNED */
+
+ /* With MD_EXCEPTION_MAC_BAD_INSTRUCTION on ppc */
+ MD_EXCEPTION_CODE_MAC_PPC_INVALID_SYSCALL = 1,
+ /* EXC_PPC_INVALID_SYSCALL */
+ MD_EXCEPTION_CODE_MAC_PPC_UNIMPLEMENTED_INSTRUCTION = 2,
+ /* EXC_PPC_UNIPL_INST */
+ MD_EXCEPTION_CODE_MAC_PPC_PRIVILEGED_INSTRUCTION = 3,
+ /* EXC_PPC_PRIVINST */
+ MD_EXCEPTION_CODE_MAC_PPC_PRIVILEGED_REGISTER = 4,
+ /* EXC_PPC_PRIVREG */
+ MD_EXCEPTION_CODE_MAC_PPC_TRACE = 5,
+ /* EXC_PPC_TRACE */
+ MD_EXCEPTION_CODE_MAC_PPC_PERFORMANCE_MONITOR = 6,
+ /* EXC_PPC_PERFMON */
+
+ /* With MD_EXCEPTION_MAC_ARITHMETIC on ppc */
+ MD_EXCEPTION_CODE_MAC_PPC_OVERFLOW = 1,
+ /* EXC_PPC_OVERFLOW */
+ MD_EXCEPTION_CODE_MAC_PPC_ZERO_DIVIDE = 2,
+ /* EXC_PPC_ZERO_DIVIDE */
+ MD_EXCEPTION_CODE_MAC_PPC_FLOAT_INEXACT = 3,
+ /* EXC_FLT_INEXACT */
+ MD_EXCEPTION_CODE_MAC_PPC_FLOAT_ZERO_DIVIDE = 4,
+ /* EXC_PPC_FLT_ZERO_DIVIDE */
+ MD_EXCEPTION_CODE_MAC_PPC_FLOAT_UNDERFLOW = 5,
+ /* EXC_PPC_FLT_UNDERFLOW */
+ MD_EXCEPTION_CODE_MAC_PPC_FLOAT_OVERFLOW = 6,
+ /* EXC_PPC_FLT_OVERFLOW */
+ MD_EXCEPTION_CODE_MAC_PPC_FLOAT_NOT_A_NUMBER = 7,
+ /* EXC_PPC_FLT_NOT_A_NUMBER */
+
+ /* With MD_EXCEPTION_MAC_EMULATION on ppc */
+ MD_EXCEPTION_CODE_MAC_PPC_NO_EMULATION = 8,
+ /* EXC_PPC_NOEMULATION */
+ MD_EXCEPTION_CODE_MAC_PPC_ALTIVEC_ASSIST = 9,
+ /* EXC_PPC_ALTIVECASSIST */
+
+ /* With MD_EXCEPTION_MAC_SOFTWARE on ppc */
+ MD_EXCEPTION_CODE_MAC_PPC_TRAP = 0x00000001, /* EXC_PPC_TRAP */
+ MD_EXCEPTION_CODE_MAC_PPC_MIGRATE = 0x00010100, /* EXC_PPC_MIGRATE */
+
+ /* With MD_EXCEPTION_MAC_BREAKPOINT on ppc */
+ MD_EXCEPTION_CODE_MAC_PPC_BREAKPOINT = 1, /* EXC_PPC_BREAKPOINT */
+
+ /* With MD_EXCEPTION_MAC_BAD_INSTRUCTION on x86, see also x86 interrupt
+ * values below. */
+ MD_EXCEPTION_CODE_MAC_X86_INVALID_OPERATION = 1, /* EXC_I386_INVOP */
+
+ /* With MD_EXCEPTION_MAC_ARITHMETIC on x86 */
+ MD_EXCEPTION_CODE_MAC_X86_DIV = 1, /* EXC_I386_DIV */
+ MD_EXCEPTION_CODE_MAC_X86_INTO = 2, /* EXC_I386_INTO */
+ MD_EXCEPTION_CODE_MAC_X86_NOEXT = 3, /* EXC_I386_NOEXT */
+ MD_EXCEPTION_CODE_MAC_X86_EXTOVR = 4, /* EXC_I386_EXTOVR */
+ MD_EXCEPTION_CODE_MAC_X86_EXTERR = 5, /* EXC_I386_EXTERR */
+ MD_EXCEPTION_CODE_MAC_X86_EMERR = 6, /* EXC_I386_EMERR */
+ MD_EXCEPTION_CODE_MAC_X86_BOUND = 7, /* EXC_I386_BOUND */
+ MD_EXCEPTION_CODE_MAC_X86_SSEEXTERR = 8, /* EXC_I386_SSEEXTERR */
+
+ /* With MD_EXCEPTION_MAC_BREAKPOINT on x86 */
+ MD_EXCEPTION_CODE_MAC_X86_SGL = 1, /* EXC_I386_SGL */
+ MD_EXCEPTION_CODE_MAC_X86_BPT = 2, /* EXC_I386_BPT */
+
+ /* With MD_EXCEPTION_MAC_BAD_INSTRUCTION on x86. These are the raw
+ * x86 interrupt codes. Most of these are mapped to other Mach
+ * exceptions and codes, are handled, or should not occur in user space.
+ * A few of these will do occur with MD_EXCEPTION_MAC_BAD_INSTRUCTION. */
+ /* EXC_I386_DIVERR = 0: mapped to EXC_ARITHMETIC/EXC_I386_DIV */
+ /* EXC_I386_SGLSTP = 1: mapped to EXC_BREAKPOINT/EXC_I386_SGL */
+ /* EXC_I386_NMIFLT = 2: should not occur in user space */
+ /* EXC_I386_BPTFLT = 3: mapped to EXC_BREAKPOINT/EXC_I386_BPT */
+ /* EXC_I386_INTOFLT = 4: mapped to EXC_ARITHMETIC/EXC_I386_INTO */
+ /* EXC_I386_BOUNDFLT = 5: mapped to EXC_ARITHMETIC/EXC_I386_BOUND */
+ /* EXC_I386_INVOPFLT = 6: mapped to EXC_BAD_INSTRUCTION/EXC_I386_INVOP */
+ /* EXC_I386_NOEXTFLT = 7: should be handled by the kernel */
+ /* EXC_I386_DBLFLT = 8: should be handled (if possible) by the kernel */
+ /* EXC_I386_EXTOVRFLT = 9: mapped to EXC_BAD_ACCESS/(PROT_READ|PROT_EXEC) */
+ MD_EXCEPTION_CODE_MAC_X86_INVALID_TASK_STATE_SEGMENT = 10,
+ /* EXC_INVTSSFLT */
+ MD_EXCEPTION_CODE_MAC_X86_SEGMENT_NOT_PRESENT = 11,
+ /* EXC_SEGNPFLT */
+ MD_EXCEPTION_CODE_MAC_X86_STACK_FAULT = 12,
+ /* EXC_STKFLT */
+ MD_EXCEPTION_CODE_MAC_X86_GENERAL_PROTECTION_FAULT = 13,
+ /* EXC_GPFLT */
+ /* EXC_I386_PGFLT = 14: should not occur in user space */
+ /* EXC_I386_EXTERRFLT = 16: mapped to EXC_ARITHMETIC/EXC_I386_EXTERR */
+ MD_EXCEPTION_CODE_MAC_X86_ALIGNMENT_FAULT = 17
+ /* EXC_ALIGNFLT (for vector operations) */
+ /* EXC_I386_ENOEXTFLT = 32: should be handled by the kernel */
+ /* EXC_I386_ENDPERR = 33: should not occur */
+} MDExceptionCodeMac;
+
+// The following definitions were taken from Darwin/XNU kernel sources.
+// See https://github.com/apple/darwin-xnu/blob/main/osfmk/kern/exc_resource.h
+
+typedef enum MDMacExcResourceType {
+ MD_MAC_EXC_RESOURCE_TYPE_CPU = 1,
+ MD_MAC_EXC_RESOURCE_TYPE_WAKEUPS = 2,
+ MD_MAC_EXC_RESOURCE_TYPE_MEMORY = 3,
+ MD_MAC_EXC_RESOURCE_TYPE_IO = 4,
+ MD_MAC_EXC_RESOURCE_TYPE_THREADS = 5
+} MDMacExcResourceType;
+
+typedef enum MDMacExcResourceFlavorCpu {
+ MD_MAC_EXC_RESOURCE_FLAVOR_CPU_MONITOR = 1,
+ MD_MAC_EXC_RESOURCE_FLAVOR_CPU_MONITOR_FATAL = 2
+} MDMacExcResourceFlavorCpu;
+
+typedef enum MDMacExcResourceFlavorWakeup {
+ MD_MAC_EXC_RESOURCE_FLAVOR_WAKEUPS_MONITOR = 1,
+} MDMacExcResourceFlavorWakeup;
+
+typedef enum MDMacExcResourceFlavorMemory {
+ MD_MAC_EXC_RESOURCE_FLAVOR_HIGH_WATERMARK = 1,
+} MDMacExcResourceFlavorMemory;
+
+typedef enum MDMacExcResourceIOFlavor {
+ MD_MAC_EXC_RESOURCE_FLAVOR_IO_PHYSICAL_WRITES = 1,
+ MD_MAC_EXC_RESOURCE_FLAVOR_IO_LOGICAL_WRITES = 2,
+} MDMacExcResourceIOFlavor;
+
+typedef enum MDMacExcResourceThreadsFlavor {
+ MD_MAC_EXC_RESOURCE_FLAVOR_THREADS_HIGH_WATERMARK = 1,
+} MDMacExcResourceThreadsFlavor;
+
+// See https://github.com/apple/darwin-xnu/blob/main/osfmk/kern/exc_guard.h
+
+typedef enum MDMacExcGuardType {
+ MD_MAC_EXC_GUARD_TYPE_NONE = 0x0,
+ MD_MAC_EXC_GUARD_TYPE_MACH_PORT = 0x1,
+ MD_MAC_EXC_GUARD_TYPE_FD = 0x2,
+ MD_MAC_EXC_GUARD_TYPE_USER = 0x3,
+ MD_MAC_EXC_GUARD_TYPE_VN = 0x4,
+ MD_MAC_EXC_GUARD_TYPE_VIRT_MEMORY = 0x5
+} MDMacExcGuardType;
+
+// See https://github.com/apple/darwin-xnu/osfmk/mach/port.h
+
+typedef enum MDMacExcGuardMachPortFlavor {
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_DESTROY = 1u << 0,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_MOD_REFS = 1u << 1,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_SET_CONTEXT = 1u << 2,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_UNGUARDED = 1u << 3,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_INCORRECT_GUARD = 1u << 4,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_IMMOVABLE = 1u << 5,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_STRICT_REPLY = 1u << 6,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_MSG_FILTERED = 1u << 7,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_INVALID_RIGHT = 1u << 8,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_INVALID_NAME = 1u << 9,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_INVALID_VALUE = 1u << 10,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_INVALID_ARGUMENT = 1u << 11,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_RIGHT_EXISTS = 1u << 12,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_KERN_NO_SPACE = 1u << 13,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_KERN_FAILURE = 1u << 14,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_KERN_RESOURCE = 1u << 15,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_SEND_INVALID_REPLY = 1u << 16,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_SEND_INVALID_VOUCHER = 1u << 17,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_SEND_INVALID_RIGHT = 1u << 18,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_RCV_INVALID_NAME = 1u << 19,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_RCV_GUARDED_DESC = 1u << 20,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_MOD_REFS_NON_FATAL = 1u << 21,
+ MD_MAC_EXC_GUARD_MACH_PORT_FLAVOR_GUARD_EXC_IMMOVABLE_NON_FATAL = 1u << 22,
+} MDMacExcGuardMachPortFlavor;
+
+// See https://github.com/apple/darwin-xnu/blob/main/bsd/sys/guarded.h
+
+typedef enum MDMacExcGuardFDFlavor {
+ MD_MAC_EXC_GUARD_FD_FLAVOR_GUARD_EXC_CLOSE = 1u << 0,
+ MD_MAC_EXC_GUARD_FD_FLAVOR_GUARD_EXC_DUP = 1u << 1,
+ MD_MAC_EXC_GUARD_FD_FLAVOR_GUARD_EXC_NOCLOEXEC = 1u << 2,
+ MD_MAC_EXC_GUARD_FD_FLAVOR_GUARD_EXC_SOCKET_IPC = 1u << 3,
+ MD_MAC_EXC_GUARD_FD_FLAVOR_GUARD_EXC_FILEPORT = 1u << 4,
+ MD_MAC_EXC_GUARD_FD_FLAVOR_GUARD_EXC_MISMATCH = 1u << 5,
+ MD_MAC_EXC_GUARD_FD_FLAVOR_GUARD_EXC_WRITE = 1u << 6
+} MDMacExcGuardFDFlavor;
+
+
+typedef enum MDMacExcGuardVNFlavor {
+ MD_MAC_EXC_GUARD_FD_FLAVOR_GUARD_EXC_RENAME_TO = 1u << 0,
+ MD_MAC_EXC_GUARD_FD_FLAVOR_GUARD_EXC_RENAME_FROM = 1u << 1,
+ MD_MAC_EXC_GUARD_FD_FLAVOR_GUARD_EXC_UNLINK = 1u << 2,
+ MD_MAC_EXC_GUARD_FD_FLAVOR_GUARD_EXC_WRITE_OTHER = 1u << 3,
+ MD_MAC_EXC_GUARD_FD_FLAVOR_GUARD_EXC_TRUNC_OTHER = 1u << 4,
+ MD_MAC_EXC_GUARD_FD_FLAVOR_GUARD_EXC_LINK = 1u << 5,
+ MD_MAC_EXC_GUARD_FD_FLAVOR_GUARD_EXC_EXCHDATA = 1u << 6,
+} MDMacExcGuardVNFlavor;
+
+// See https://github.com/apple/darwin-xnu/osfmk/mach/vm_statistics.h
+
+typedef enum MDMacExcGuardVirtMemoryFlavor {
+ MD_MAC_EXC_GUARD_VIRT_MEMORY_FLAVOR_GUARD_EXC_DEALLOC_GAP = 1u << 0
+} MDMacExcGuardVirtMemoryFlavor;
+
+#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_MAC_OSX_H__ */
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_ps3.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_ps3.h
new file mode 100644
index 0000000000..adff5a6bbc
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_ps3.h
@@ -0,0 +1,67 @@
+/* Copyright (c) 2013, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_exception_ps3.h: A definition of exception codes for
+ * PS3 */
+
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_PS3_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_PS3_H__
+
+#include <stddef.h>
+
+#include "google_breakpad/common/breakpad_types.h"
+
+typedef enum {
+ MD_EXCEPTION_CODE_PS3_UNKNOWN = 0,
+ MD_EXCEPTION_CODE_PS3_TRAP_EXCEP = 1,
+ MD_EXCEPTION_CODE_PS3_PRIV_INSTR = 2,
+ MD_EXCEPTION_CODE_PS3_ILLEGAL_INSTR = 3,
+ MD_EXCEPTION_CODE_PS3_INSTR_STORAGE = 4,
+ MD_EXCEPTION_CODE_PS3_INSTR_SEGMENT = 5,
+ MD_EXCEPTION_CODE_PS3_DATA_STORAGE = 6,
+ MD_EXCEPTION_CODE_PS3_DATA_SEGMENT = 7,
+ MD_EXCEPTION_CODE_PS3_FLOAT_POINT = 8,
+ MD_EXCEPTION_CODE_PS3_DABR_MATCH = 9,
+ MD_EXCEPTION_CODE_PS3_ALIGN_EXCEP = 10,
+ MD_EXCEPTION_CODE_PS3_MEMORY_ACCESS = 11,
+ MD_EXCEPTION_CODE_PS3_COPRO_ALIGN = 12,
+ MD_EXCEPTION_CODE_PS3_COPRO_INVALID_COM = 13,
+ MD_EXCEPTION_CODE_PS3_COPRO_ERR = 14,
+ MD_EXCEPTION_CODE_PS3_COPRO_FIR = 15,
+ MD_EXCEPTION_CODE_PS3_COPRO_DATA_SEGMENT = 16,
+ MD_EXCEPTION_CODE_PS3_COPRO_DATA_STORAGE = 17,
+ MD_EXCEPTION_CODE_PS3_COPRO_STOP_INSTR = 18,
+ MD_EXCEPTION_CODE_PS3_COPRO_HALT_INSTR = 19,
+ MD_EXCEPTION_CODE_PS3_COPRO_HALTINST_UNKNOWN = 20,
+ MD_EXCEPTION_CODE_PS3_COPRO_MEMORY_ACCESS = 21,
+ MD_EXCEPTION_CODE_PS3_GRAPHIC = 22
+} MDExceptionCodePS3;
+
+#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_PS3_H__ */
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_solaris.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_solaris.h
new file mode 100644
index 0000000000..f18ddf4247
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_solaris.h
@@ -0,0 +1,94 @@
+/* Copyright (c) 2006, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_exception_solaris.h: A definition of exception codes for
+ * Solaris
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * Author: Mark Mentovai
+ * Split into its own file: Neal Sidhwaney */
+
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_SOLARIS_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_SOLARIS_H__
+
+#include <stddef.h>
+
+#include "google_breakpad/common/breakpad_types.h"
+
+/* For (MDException).exception_code. These values come from sys/iso/signal_iso.h
+ */
+typedef enum {
+ MD_EXCEPTION_CODE_SOL_SIGHUP = 1, /* Hangup */
+ MD_EXCEPTION_CODE_SOL_SIGINT = 2, /* interrupt (rubout) */
+ MD_EXCEPTION_CODE_SOL_SIGQUIT = 3, /* quit (ASCII FS) */
+ MD_EXCEPTION_CODE_SOL_SIGILL = 4, /* illegal instruction (not reset when caught) */
+ MD_EXCEPTION_CODE_SOL_SIGTRAP = 5, /* trace trap (not reset when caught) */
+ MD_EXCEPTION_CODE_SOL_SIGIOT = 6, /* IOT instruction */
+ MD_EXCEPTION_CODE_SOL_SIGABRT = 6, /* used by abort, replace SIGIOT in the future */
+ MD_EXCEPTION_CODE_SOL_SIGEMT = 7, /* EMT instruction */
+ MD_EXCEPTION_CODE_SOL_SIGFPE = 8, /* floating point exception */
+ MD_EXCEPTION_CODE_SOL_SIGKILL = 9, /* kill (cannot be caught or ignored) */
+ MD_EXCEPTION_CODE_SOL_SIGBUS = 10, /* bus error */
+ MD_EXCEPTION_CODE_SOL_SIGSEGV = 11, /* segmentation violation */
+ MD_EXCEPTION_CODE_SOL_SIGSYS = 12, /* bad argument to system call */
+ MD_EXCEPTION_CODE_SOL_SIGPIPE = 13, /* write on a pipe with no one to read it */
+ MD_EXCEPTION_CODE_SOL_SIGALRM = 14, /* alarm clock */
+ MD_EXCEPTION_CODE_SOL_SIGTERM = 15, /* software termination signal from kill */
+ MD_EXCEPTION_CODE_SOL_SIGUSR1 = 16, /* user defined signal 1 */
+ MD_EXCEPTION_CODE_SOL_SIGUSR2 = 17, /* user defined signal 2 */
+ MD_EXCEPTION_CODE_SOL_SIGCLD = 18, /* child status change */
+ MD_EXCEPTION_CODE_SOL_SIGCHLD = 18, /* child status change alias (POSIX) */
+ MD_EXCEPTION_CODE_SOL_SIGPWR = 19, /* power-fail restart */
+ MD_EXCEPTION_CODE_SOL_SIGWINCH = 20, /* window size change */
+ MD_EXCEPTION_CODE_SOL_SIGURG = 21, /* urgent socket condition */
+ MD_EXCEPTION_CODE_SOL_SIGPOLL = 22, /* pollable event occurred */
+ MD_EXCEPTION_CODE_SOL_SIGIO = 22, /* socket I/O possible (SIGPOLL alias) */
+ MD_EXCEPTION_CODE_SOL_SIGSTOP = 23, /* stop (cannot be caught or ignored) */
+ MD_EXCEPTION_CODE_SOL_SIGTSTP = 24, /* user stop requested from tty */
+ MD_EXCEPTION_CODE_SOL_SIGCONT = 25, /* stopped process has been continued */
+ MD_EXCEPTION_CODE_SOL_SIGTTIN = 26, /* background tty read attempted */
+ MD_EXCEPTION_CODE_SOL_SIGTTOU = 27, /* background tty write attempted */
+ MD_EXCEPTION_CODE_SOL_SIGVTALRM = 28, /* virtual timer expired */
+ MD_EXCEPTION_CODE_SOL_SIGPROF = 29, /* profiling timer expired */
+ MD_EXCEPTION_CODE_SOL_SIGXCPU = 30, /* exceeded cpu limit */
+ MD_EXCEPTION_CODE_SOL_SIGXFSZ = 31, /* exceeded file size limit */
+ MD_EXCEPTION_CODE_SOL_SIGWAITING = 32, /* reserved signal no longer used by threading code */
+ MD_EXCEPTION_CODE_SOL_SIGLWP = 33, /* reserved signal no longer used by threading code */
+ MD_EXCEPTION_CODE_SOL_SIGFREEZE = 34, /* special signal used by CPR */
+ MD_EXCEPTION_CODE_SOL_SIGTHAW = 35, /* special signal used by CPR */
+ MD_EXCEPTION_CODE_SOL_SIGCANCEL = 36, /* reserved signal for thread cancellation */
+ MD_EXCEPTION_CODE_SOL_SIGLOST = 37, /* resource lost (eg, record-lock lost) */
+ MD_EXCEPTION_CODE_SOL_SIGXRES = 38, /* resource control exceeded */
+ MD_EXCEPTION_CODE_SOL_SIGJVM1 = 39, /* reserved signal for Java Virtual Machine */
+ MD_EXCEPTION_CODE_SOL_SIGJVM2 = 40 /* reserved signal for Java Virtual Machine */
+} MDExceptionCodeSolaris;
+
+#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_SOLARIS_H__ */
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_win32.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_win32.h
new file mode 100644
index 0000000000..159f53f663
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_exception_win32.h
@@ -0,0 +1,5575 @@
+/* Copyright (c) 2006, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_exception_win32.h: Definitions of exception codes for
+ * Win32 platform
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * Author: Mark Mentovai
+ * Split into its own file: Neal Sidhwaney */
+
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_WIN32_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_WIN32_H__
+
+#include <stddef.h>
+
+#include "google_breakpad/common/breakpad_types.h"
+
+
+/* For (MDException).exception_code. These values come from WinBase.h */
+typedef enum {
+ MD_EXCEPTION_CODE_WIN_GUARD_PAGE_VIOLATION = 0x80000001,
+ /* EXCEPTION_GUARD_PAGE */
+ MD_EXCEPTION_CODE_WIN_DATATYPE_MISALIGNMENT = 0x80000002,
+ /* EXCEPTION_DATATYPE_MISALIGNMENT */
+ MD_EXCEPTION_CODE_WIN_BREAKPOINT = 0x80000003,
+ /* EXCEPTION_BREAKPOINT */
+ MD_EXCEPTION_CODE_WIN_SINGLE_STEP = 0x80000004,
+ /* EXCEPTION_SINGLE_STEP */
+ MD_EXCEPTION_CODE_WIN_ACCESS_VIOLATION = 0xc0000005,
+ /* EXCEPTION_ACCESS_VIOLATION */
+ MD_EXCEPTION_CODE_WIN_IN_PAGE_ERROR = 0xc0000006,
+ /* EXCEPTION_IN_PAGE_ERROR */
+ MD_EXCEPTION_CODE_WIN_INVALID_HANDLE = 0xc0000008,
+ /* EXCEPTION_INVALID_HANDLE */
+ MD_EXCEPTION_CODE_WIN_ILLEGAL_INSTRUCTION = 0xc000001d,
+ /* EXCEPTION_ILLEGAL_INSTRUCTION */
+ MD_EXCEPTION_CODE_WIN_NONCONTINUABLE_EXCEPTION = 0xc0000025,
+ /* EXCEPTION_NONCONTINUABLE_EXCEPTION */
+ MD_EXCEPTION_CODE_WIN_INVALID_DISPOSITION = 0xc0000026,
+ /* EXCEPTION_INVALID_DISPOSITION */
+ MD_EXCEPTION_CODE_WIN_ARRAY_BOUNDS_EXCEEDED = 0xc000008c,
+ /* EXCEPTION_BOUNDS_EXCEEDED */
+ MD_EXCEPTION_CODE_WIN_FLOAT_DENORMAL_OPERAND = 0xc000008d,
+ /* EXCEPTION_FLT_DENORMAL_OPERAND */
+ MD_EXCEPTION_CODE_WIN_FLOAT_DIVIDE_BY_ZERO = 0xc000008e,
+ /* EXCEPTION_FLT_DIVIDE_BY_ZERO */
+ MD_EXCEPTION_CODE_WIN_FLOAT_INEXACT_RESULT = 0xc000008f,
+ /* EXCEPTION_FLT_INEXACT_RESULT */
+ MD_EXCEPTION_CODE_WIN_FLOAT_INVALID_OPERATION = 0xc0000090,
+ /* EXCEPTION_FLT_INVALID_OPERATION */
+ MD_EXCEPTION_CODE_WIN_FLOAT_OVERFLOW = 0xc0000091,
+ /* EXCEPTION_FLT_OVERFLOW */
+ MD_EXCEPTION_CODE_WIN_FLOAT_STACK_CHECK = 0xc0000092,
+ /* EXCEPTION_FLT_STACK_CHECK */
+ MD_EXCEPTION_CODE_WIN_FLOAT_UNDERFLOW = 0xc0000093,
+ /* EXCEPTION_FLT_UNDERFLOW */
+ MD_EXCEPTION_CODE_WIN_INTEGER_DIVIDE_BY_ZERO = 0xc0000094,
+ /* EXCEPTION_INT_DIVIDE_BY_ZERO */
+ MD_EXCEPTION_CODE_WIN_INTEGER_OVERFLOW = 0xc0000095,
+ /* EXCEPTION_INT_OVERFLOW */
+ MD_EXCEPTION_CODE_WIN_PRIVILEGED_INSTRUCTION = 0xc0000096,
+ /* EXCEPTION_PRIV_INSTRUCTION */
+ MD_EXCEPTION_CODE_WIN_STACK_OVERFLOW = 0xc00000fd,
+ /* EXCEPTION_STACK_OVERFLOW */
+ MD_EXCEPTION_CODE_WIN_BAD_FUNCTION_TABLE = 0xc00000ff,
+ /* EXCEPTION_BAD_FUNCTION_TABLE */
+ MD_EXCEPTION_CODE_WIN_POSSIBLE_DEADLOCK = 0xc0000194,
+ /* EXCEPTION_POSSIBLE_DEADLOCK */
+ MD_EXCEPTION_OUT_OF_MEMORY = 0xe0000008,
+ /* Exception thrown by Chromium allocators to indicate OOM.
+ See base/process/memory.h in Chromium for rationale. */
+ MD_EXCEPTION_CODE_WIN_UNHANDLED_CPP_EXCEPTION = 0xe06d7363,
+ /* Per http://support.microsoft.com/kb/185294,
+ generated by Visual C++ compiler */
+ MD_EXCEPTION_CODE_WIN_SIMULATED = 0x0517a7ed
+ /* Fake exception code used by Crashpad's
+ CrashpadClient::DumpWithoutCrash. */
+} MDExceptionCodeWin;
+
+
+/* For (MDException).exception_information[2], when (MDException).exception_code
+ * is MD_EXCEPTION_CODE_WIN_IN_PAGE_ERROR. This describes the underlying reason
+ * for the error. These values come from ntstatus.h.
+ *
+ * The content of this enum was created from ntstatus.h in the 10 SDK
+ * (version 10.0.19041.0) with
+ *
+ * egrep '#define [A-Z_0-9]+\s+\(\(NTSTATUS\)0x[048C][0-9A-F]+L\)' ntstatus.h
+ * | tr -d '\r'
+ * | sed -r 's@#define ([A-Z_0-9]+)\s+\(\(NTSTATUS\)(0x[048C][0-9A-F]+)L\).*@\2 \1@'
+ * | sort
+ * | sed -r 's@(0x[048C][0-9A-F]+) ([A-Z_0-9]+)@ MD_NTSTATUS_WIN_\2 = \1,@'
+ *
+ * With easy copy to clipboard with
+ * | xclip -selection c # on linux
+ * | clip # on windows
+ * | pbcopy # on mac */
+typedef enum {
+ MD_NTSTATUS_WIN_STATUS_SUCCESS = 0x00000000,
+ MD_NTSTATUS_WIN_STATUS_WAIT_0 = 0x00000000,
+ MD_NTSTATUS_WIN_STATUS_WAIT_1 = 0x00000001,
+ MD_NTSTATUS_WIN_STATUS_WAIT_2 = 0x00000002,
+ MD_NTSTATUS_WIN_STATUS_WAIT_3 = 0x00000003,
+ MD_NTSTATUS_WIN_STATUS_WAIT_63 = 0x0000003F,
+ MD_NTSTATUS_WIN_STATUS_ABANDONED = 0x00000080,
+ MD_NTSTATUS_WIN_STATUS_ABANDONED_WAIT_0 = 0x00000080,
+ MD_NTSTATUS_WIN_STATUS_ABANDONED_WAIT_63 = 0x000000BF,
+ MD_NTSTATUS_WIN_STATUS_USER_APC = 0x000000C0,
+ MD_NTSTATUS_WIN_STATUS_ALREADY_COMPLETE = 0x000000FF,
+ MD_NTSTATUS_WIN_STATUS_KERNEL_APC = 0x00000100,
+ MD_NTSTATUS_WIN_STATUS_ALERTED = 0x00000101,
+ MD_NTSTATUS_WIN_STATUS_TIMEOUT = 0x00000102,
+ MD_NTSTATUS_WIN_STATUS_PENDING = 0x00000103,
+ MD_NTSTATUS_WIN_STATUS_REPARSE = 0x00000104,
+ MD_NTSTATUS_WIN_STATUS_MORE_ENTRIES = 0x00000105,
+ MD_NTSTATUS_WIN_STATUS_NOT_ALL_ASSIGNED = 0x00000106,
+ MD_NTSTATUS_WIN_STATUS_SOME_NOT_MAPPED = 0x00000107,
+ MD_NTSTATUS_WIN_STATUS_OPLOCK_BREAK_IN_PROGRESS = 0x00000108,
+ MD_NTSTATUS_WIN_STATUS_VOLUME_MOUNTED = 0x00000109,
+ MD_NTSTATUS_WIN_STATUS_RXACT_COMMITTED = 0x0000010A,
+ MD_NTSTATUS_WIN_STATUS_NOTIFY_CLEANUP = 0x0000010B,
+ MD_NTSTATUS_WIN_STATUS_NOTIFY_ENUM_DIR = 0x0000010C,
+ MD_NTSTATUS_WIN_STATUS_NO_QUOTAS_FOR_ACCOUNT = 0x0000010D,
+ MD_NTSTATUS_WIN_STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED = 0x0000010E,
+ MD_NTSTATUS_WIN_STATUS_PAGE_FAULT_TRANSITION = 0x00000110,
+ MD_NTSTATUS_WIN_STATUS_PAGE_FAULT_DEMAND_ZERO = 0x00000111,
+ MD_NTSTATUS_WIN_STATUS_PAGE_FAULT_COPY_ON_WRITE = 0x00000112,
+ MD_NTSTATUS_WIN_STATUS_PAGE_FAULT_GUARD_PAGE = 0x00000113,
+ MD_NTSTATUS_WIN_STATUS_PAGE_FAULT_PAGING_FILE = 0x00000114,
+ MD_NTSTATUS_WIN_STATUS_CACHE_PAGE_LOCKED = 0x00000115,
+ MD_NTSTATUS_WIN_STATUS_CRASH_DUMP = 0x00000116,
+ MD_NTSTATUS_WIN_STATUS_BUFFER_ALL_ZEROS = 0x00000117,
+ MD_NTSTATUS_WIN_STATUS_REPARSE_OBJECT = 0x00000118,
+ MD_NTSTATUS_WIN_STATUS_RESOURCE_REQUIREMENTS_CHANGED = 0x00000119,
+ MD_NTSTATUS_WIN_STATUS_TRANSLATION_COMPLETE = 0x00000120,
+ MD_NTSTATUS_WIN_STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY = 0x00000121,
+ MD_NTSTATUS_WIN_STATUS_NOTHING_TO_TERMINATE = 0x00000122,
+ MD_NTSTATUS_WIN_STATUS_PROCESS_NOT_IN_JOB = 0x00000123,
+ MD_NTSTATUS_WIN_STATUS_PROCESS_IN_JOB = 0x00000124,
+ MD_NTSTATUS_WIN_STATUS_VOLSNAP_HIBERNATE_READY = 0x00000125,
+ MD_NTSTATUS_WIN_STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY = 0x00000126,
+ MD_NTSTATUS_WIN_STATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED = 0x00000127,
+ MD_NTSTATUS_WIN_STATUS_INTERRUPT_STILL_CONNECTED = 0x00000128,
+ MD_NTSTATUS_WIN_STATUS_PROCESS_CLONED = 0x00000129,
+ MD_NTSTATUS_WIN_STATUS_FILE_LOCKED_WITH_ONLY_READERS = 0x0000012A,
+ MD_NTSTATUS_WIN_STATUS_FILE_LOCKED_WITH_WRITERS = 0x0000012B,
+ MD_NTSTATUS_WIN_STATUS_VALID_IMAGE_HASH = 0x0000012C,
+ MD_NTSTATUS_WIN_STATUS_VALID_CATALOG_HASH = 0x0000012D,
+ MD_NTSTATUS_WIN_STATUS_VALID_STRONG_CODE_HASH = 0x0000012E,
+ MD_NTSTATUS_WIN_STATUS_GHOSTED = 0x0000012F,
+ MD_NTSTATUS_WIN_STATUS_DATA_OVERWRITTEN = 0x00000130,
+ MD_NTSTATUS_WIN_STATUS_RESOURCEMANAGER_READ_ONLY = 0x00000202,
+ MD_NTSTATUS_WIN_STATUS_RING_PREVIOUSLY_EMPTY = 0x00000210,
+ MD_NTSTATUS_WIN_STATUS_RING_PREVIOUSLY_FULL = 0x00000211,
+ MD_NTSTATUS_WIN_STATUS_RING_PREVIOUSLY_ABOVE_QUOTA = 0x00000212,
+ MD_NTSTATUS_WIN_STATUS_RING_NEWLY_EMPTY = 0x00000213,
+ MD_NTSTATUS_WIN_STATUS_RING_SIGNAL_OPPOSITE_ENDPOINT = 0x00000214,
+ MD_NTSTATUS_WIN_STATUS_OPLOCK_SWITCHED_TO_NEW_HANDLE = 0x00000215,
+ MD_NTSTATUS_WIN_STATUS_OPLOCK_HANDLE_CLOSED = 0x00000216,
+ MD_NTSTATUS_WIN_STATUS_WAIT_FOR_OPLOCK = 0x00000367,
+ MD_NTSTATUS_WIN_STATUS_REPARSE_GLOBAL = 0x00000368,
+ MD_NTSTATUS_WIN_DBG_EXCEPTION_HANDLED = 0x00010001,
+ MD_NTSTATUS_WIN_DBG_CONTINUE = 0x00010002,
+ MD_NTSTATUS_WIN_STATUS_FLT_IO_COMPLETE = 0x001C0001,
+ MD_NTSTATUS_WIN_STATUS_RTPM_CONTEXT_CONTINUE = 0x00293000,
+ MD_NTSTATUS_WIN_STATUS_RTPM_CONTEXT_COMPLETE = 0x00293001,
+ MD_NTSTATUS_WIN_STATUS_HV_PENDING_PAGE_REQUESTS = 0x00350059,
+ MD_NTSTATUS_WIN_STATUS_SPACES_REPAIRED = 0x00E70000,
+ MD_NTSTATUS_WIN_STATUS_SPACES_PAUSE = 0x00E70001,
+ MD_NTSTATUS_WIN_STATUS_SPACES_COMPLETE = 0x00E70002,
+ MD_NTSTATUS_WIN_STATUS_SPACES_REDIRECT = 0x00E70003,
+ MD_NTSTATUS_WIN_STATUS_OBJECT_NAME_EXISTS = 0x40000000,
+ MD_NTSTATUS_WIN_STATUS_THREAD_WAS_SUSPENDED = 0x40000001,
+ MD_NTSTATUS_WIN_STATUS_WORKING_SET_LIMIT_RANGE = 0x40000002,
+ MD_NTSTATUS_WIN_STATUS_IMAGE_NOT_AT_BASE = 0x40000003,
+ MD_NTSTATUS_WIN_STATUS_RXACT_STATE_CREATED = 0x40000004,
+ MD_NTSTATUS_WIN_STATUS_SEGMENT_NOTIFICATION = 0x40000005,
+ MD_NTSTATUS_WIN_STATUS_LOCAL_USER_SESSION_KEY = 0x40000006,
+ MD_NTSTATUS_WIN_STATUS_BAD_CURRENT_DIRECTORY = 0x40000007,
+ MD_NTSTATUS_WIN_STATUS_SERIAL_MORE_WRITES = 0x40000008,
+ MD_NTSTATUS_WIN_STATUS_REGISTRY_RECOVERED = 0x40000009,
+ MD_NTSTATUS_WIN_STATUS_FT_READ_RECOVERY_FROM_BACKUP = 0x4000000A,
+ MD_NTSTATUS_WIN_STATUS_FT_WRITE_RECOVERY = 0x4000000B,
+ MD_NTSTATUS_WIN_STATUS_SERIAL_COUNTER_TIMEOUT = 0x4000000C,
+ MD_NTSTATUS_WIN_STATUS_NULL_LM_PASSWORD = 0x4000000D,
+ MD_NTSTATUS_WIN_STATUS_IMAGE_MACHINE_TYPE_MISMATCH = 0x4000000E,
+ MD_NTSTATUS_WIN_STATUS_RECEIVE_PARTIAL = 0x4000000F,
+ MD_NTSTATUS_WIN_STATUS_RECEIVE_EXPEDITED = 0x40000010,
+ MD_NTSTATUS_WIN_STATUS_RECEIVE_PARTIAL_EXPEDITED = 0x40000011,
+ MD_NTSTATUS_WIN_STATUS_EVENT_DONE = 0x40000012,
+ MD_NTSTATUS_WIN_STATUS_EVENT_PENDING = 0x40000013,
+ MD_NTSTATUS_WIN_STATUS_CHECKING_FILE_SYSTEM = 0x40000014,
+ MD_NTSTATUS_WIN_STATUS_FATAL_APP_EXIT = 0x40000015,
+ MD_NTSTATUS_WIN_STATUS_PREDEFINED_HANDLE = 0x40000016,
+ MD_NTSTATUS_WIN_STATUS_WAS_UNLOCKED = 0x40000017,
+ MD_NTSTATUS_WIN_STATUS_SERVICE_NOTIFICATION = 0x40000018,
+ MD_NTSTATUS_WIN_STATUS_WAS_LOCKED = 0x40000019,
+ MD_NTSTATUS_WIN_STATUS_LOG_HARD_ERROR = 0x4000001A,
+ MD_NTSTATUS_WIN_STATUS_ALREADY_WIN32 = 0x4000001B,
+ MD_NTSTATUS_WIN_STATUS_WX86_UNSIMULATE = 0x4000001C,
+ MD_NTSTATUS_WIN_STATUS_WX86_CONTINUE = 0x4000001D,
+ MD_NTSTATUS_WIN_STATUS_WX86_SINGLE_STEP = 0x4000001E,
+ MD_NTSTATUS_WIN_STATUS_WX86_BREAKPOINT = 0x4000001F,
+ MD_NTSTATUS_WIN_STATUS_WX86_EXCEPTION_CONTINUE = 0x40000020,
+ MD_NTSTATUS_WIN_STATUS_WX86_EXCEPTION_LASTCHANCE = 0x40000021,
+ MD_NTSTATUS_WIN_STATUS_WX86_EXCEPTION_CHAIN = 0x40000022,
+ MD_NTSTATUS_WIN_STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE = 0x40000023,
+ MD_NTSTATUS_WIN_STATUS_NO_YIELD_PERFORMED = 0x40000024,
+ MD_NTSTATUS_WIN_STATUS_TIMER_RESUME_IGNORED = 0x40000025,
+ MD_NTSTATUS_WIN_STATUS_ARBITRATION_UNHANDLED = 0x40000026,
+ MD_NTSTATUS_WIN_STATUS_CARDBUS_NOT_SUPPORTED = 0x40000027,
+ MD_NTSTATUS_WIN_STATUS_WX86_CREATEWX86TIB = 0x40000028,
+ MD_NTSTATUS_WIN_STATUS_MP_PROCESSOR_MISMATCH = 0x40000029,
+ MD_NTSTATUS_WIN_STATUS_HIBERNATED = 0x4000002A,
+ MD_NTSTATUS_WIN_STATUS_RESUME_HIBERNATION = 0x4000002B,
+ MD_NTSTATUS_WIN_STATUS_FIRMWARE_UPDATED = 0x4000002C,
+ MD_NTSTATUS_WIN_STATUS_DRIVERS_LEAKING_LOCKED_PAGES = 0x4000002D,
+ MD_NTSTATUS_WIN_STATUS_MESSAGE_RETRIEVED = 0x4000002E,
+ MD_NTSTATUS_WIN_STATUS_SYSTEM_POWERSTATE_TRANSITION = 0x4000002F,
+ MD_NTSTATUS_WIN_STATUS_ALPC_CHECK_COMPLETION_LIST = 0x40000030,
+ MD_NTSTATUS_WIN_STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION = 0x40000031,
+ MD_NTSTATUS_WIN_STATUS_ACCESS_AUDIT_BY_POLICY = 0x40000032,
+ MD_NTSTATUS_WIN_STATUS_ABANDON_HIBERFILE = 0x40000033,
+ MD_NTSTATUS_WIN_STATUS_BIZRULES_NOT_ENABLED = 0x40000034,
+ MD_NTSTATUS_WIN_STATUS_FT_READ_FROM_COPY = 0x40000035,
+ MD_NTSTATUS_WIN_STATUS_IMAGE_AT_DIFFERENT_BASE = 0x40000036,
+ MD_NTSTATUS_WIN_STATUS_PATCH_DEFERRED = 0x40000037,
+ MD_NTSTATUS_WIN_STATUS_WAKE_SYSTEM = 0x40000294,
+ MD_NTSTATUS_WIN_STATUS_DS_SHUTTING_DOWN = 0x40000370,
+ MD_NTSTATUS_WIN_STATUS_DISK_REPAIR_REDIRECTED = 0x40000807,
+ MD_NTSTATUS_WIN_STATUS_SERVICES_FAILED_AUTOSTART = 0x4000A144,
+ MD_NTSTATUS_WIN_DBG_REPLY_LATER = 0x40010001,
+ MD_NTSTATUS_WIN_DBG_UNABLE_TO_PROVIDE_HANDLE = 0x40010002,
+ MD_NTSTATUS_WIN_DBG_TERMINATE_THREAD = 0x40010003,
+ MD_NTSTATUS_WIN_DBG_TERMINATE_PROCESS = 0x40010004,
+ MD_NTSTATUS_WIN_DBG_CONTROL_C = 0x40010005,
+ MD_NTSTATUS_WIN_DBG_PRINTEXCEPTION_C = 0x40010006,
+ MD_NTSTATUS_WIN_DBG_RIPEXCEPTION = 0x40010007,
+ MD_NTSTATUS_WIN_DBG_CONTROL_BREAK = 0x40010008,
+ MD_NTSTATUS_WIN_DBG_COMMAND_EXCEPTION = 0x40010009,
+ MD_NTSTATUS_WIN_DBG_PRINTEXCEPTION_WIDE_C = 0x4001000A,
+ MD_NTSTATUS_WIN_RPC_NT_UUID_LOCAL_ONLY = 0x40020056,
+ MD_NTSTATUS_WIN_RPC_NT_SEND_INCOMPLETE = 0x400200AF,
+ MD_NTSTATUS_WIN_STATUS_CTX_CDM_CONNECT = 0x400A0004,
+ MD_NTSTATUS_WIN_STATUS_CTX_CDM_DISCONNECT = 0x400A0005,
+ MD_NTSTATUS_WIN_STATUS_SXS_RELEASE_ACTIVATION_CONTEXT = 0x4015000D,
+ MD_NTSTATUS_WIN_STATUS_HEURISTIC_DAMAGE_POSSIBLE = 0x40190001,
+ MD_NTSTATUS_WIN_STATUS_RECOVERY_NOT_NEEDED = 0x40190034,
+ MD_NTSTATUS_WIN_STATUS_RM_ALREADY_STARTED = 0x40190035,
+ MD_NTSTATUS_WIN_STATUS_LOG_NO_RESTART = 0x401A000C,
+ MD_NTSTATUS_WIN_STATUS_VIDEO_DRIVER_DEBUG_REPORT_REQUEST = 0x401B00EC,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_PARTIAL_DATA_POPULATED = 0x401E000A,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_SKIP_ALLOCATION_PREPARATION = 0x401E0201,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_MODE_NOT_PINNED = 0x401E0307,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_PREFERRED_MODE = 0x401E031E,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_DATASET_IS_EMPTY = 0x401E034B,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET = 0x401E034C,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED = 0x401E0351,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_UNKNOWN_CHILD_STATUS = 0x401E042F,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_LEADLINK_START_DEFERRED = 0x401E0437,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_POLLING_TOO_FREQUENTLY = 0x401E0439,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_START_DEFERRED = 0x401E043A,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_DEPENDABLE_CHILD_STATUS = 0x401E043C,
+ MD_NTSTATUS_WIN_STATUS_NDIS_INDICATION_REQUIRED = 0x40230001,
+ MD_NTSTATUS_WIN_STATUS_PCP_UNSUPPORTED_PSS_SALT = 0x40292023,
+ MD_NTSTATUS_WIN_STATUS_GUARD_PAGE_VIOLATION = 0x80000001,
+ MD_NTSTATUS_WIN_STATUS_DATATYPE_MISALIGNMENT = 0x80000002,
+ MD_NTSTATUS_WIN_STATUS_BREAKPOINT = 0x80000003,
+ MD_NTSTATUS_WIN_STATUS_SINGLE_STEP = 0x80000004,
+ MD_NTSTATUS_WIN_STATUS_BUFFER_OVERFLOW = 0x80000005,
+ MD_NTSTATUS_WIN_STATUS_NO_MORE_FILES = 0x80000006,
+ MD_NTSTATUS_WIN_STATUS_WAKE_SYSTEM_DEBUGGER = 0x80000007,
+ MD_NTSTATUS_WIN_STATUS_HANDLES_CLOSED = 0x8000000A,
+ MD_NTSTATUS_WIN_STATUS_NO_INHERITANCE = 0x8000000B,
+ MD_NTSTATUS_WIN_STATUS_GUID_SUBSTITUTION_MADE = 0x8000000C,
+ MD_NTSTATUS_WIN_STATUS_PARTIAL_COPY = 0x8000000D,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_PAPER_EMPTY = 0x8000000E,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_POWERED_OFF = 0x8000000F,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_OFF_LINE = 0x80000010,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_BUSY = 0x80000011,
+ MD_NTSTATUS_WIN_STATUS_NO_MORE_EAS = 0x80000012,
+ MD_NTSTATUS_WIN_STATUS_INVALID_EA_NAME = 0x80000013,
+ MD_NTSTATUS_WIN_STATUS_EA_LIST_INCONSISTENT = 0x80000014,
+ MD_NTSTATUS_WIN_STATUS_INVALID_EA_FLAG = 0x80000015,
+ MD_NTSTATUS_WIN_STATUS_VERIFY_REQUIRED = 0x80000016,
+ MD_NTSTATUS_WIN_STATUS_EXTRANEOUS_INFORMATION = 0x80000017,
+ MD_NTSTATUS_WIN_STATUS_RXACT_COMMIT_NECESSARY = 0x80000018,
+ MD_NTSTATUS_WIN_STATUS_NO_MORE_ENTRIES = 0x8000001A,
+ MD_NTSTATUS_WIN_STATUS_FILEMARK_DETECTED = 0x8000001B,
+ MD_NTSTATUS_WIN_STATUS_MEDIA_CHANGED = 0x8000001C,
+ MD_NTSTATUS_WIN_STATUS_BUS_RESET = 0x8000001D,
+ MD_NTSTATUS_WIN_STATUS_END_OF_MEDIA = 0x8000001E,
+ MD_NTSTATUS_WIN_STATUS_BEGINNING_OF_MEDIA = 0x8000001F,
+ MD_NTSTATUS_WIN_STATUS_MEDIA_CHECK = 0x80000020,
+ MD_NTSTATUS_WIN_STATUS_SETMARK_DETECTED = 0x80000021,
+ MD_NTSTATUS_WIN_STATUS_NO_DATA_DETECTED = 0x80000022,
+ MD_NTSTATUS_WIN_STATUS_REDIRECTOR_HAS_OPEN_HANDLES = 0x80000023,
+ MD_NTSTATUS_WIN_STATUS_SERVER_HAS_OPEN_HANDLES = 0x80000024,
+ MD_NTSTATUS_WIN_STATUS_ALREADY_DISCONNECTED = 0x80000025,
+ MD_NTSTATUS_WIN_STATUS_LONGJUMP = 0x80000026,
+ MD_NTSTATUS_WIN_STATUS_CLEANER_CARTRIDGE_INSTALLED = 0x80000027,
+ MD_NTSTATUS_WIN_STATUS_PLUGPLAY_QUERY_VETOED = 0x80000028,
+ MD_NTSTATUS_WIN_STATUS_UNWIND_CONSOLIDATE = 0x80000029,
+ MD_NTSTATUS_WIN_STATUS_REGISTRY_HIVE_RECOVERED = 0x8000002A,
+ MD_NTSTATUS_WIN_STATUS_DLL_MIGHT_BE_INSECURE = 0x8000002B,
+ MD_NTSTATUS_WIN_STATUS_DLL_MIGHT_BE_INCOMPATIBLE = 0x8000002C,
+ MD_NTSTATUS_WIN_STATUS_STOPPED_ON_SYMLINK = 0x8000002D,
+ MD_NTSTATUS_WIN_STATUS_CANNOT_GRANT_REQUESTED_OPLOCK = 0x8000002E,
+ MD_NTSTATUS_WIN_STATUS_NO_ACE_CONDITION = 0x8000002F,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_SUPPORT_IN_PROGRESS = 0x80000030,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_POWER_CYCLE_REQUIRED = 0x80000031,
+ MD_NTSTATUS_WIN_STATUS_NO_WORK_DONE = 0x80000032,
+ MD_NTSTATUS_WIN_STATUS_RETURN_ADDRESS_HIJACK_ATTEMPT = 0x80000033,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_REQUIRES_CLEANING = 0x80000288,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_DOOR_OPEN = 0x80000289,
+ MD_NTSTATUS_WIN_STATUS_DATA_LOST_REPAIR = 0x80000803,
+ MD_NTSTATUS_WIN_STATUS_GPIO_INTERRUPT_ALREADY_UNMASKED = 0x8000A127,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH = 0x8000CF00,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE = 0x8000CF04,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS = 0x8000CF05,
+ MD_NTSTATUS_WIN_DBG_EXCEPTION_NOT_HANDLED = 0x80010001,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_ALREADY_UP = 0x80130001,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_ALREADY_DOWN = 0x80130002,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NETWORK_ALREADY_ONLINE = 0x80130003,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NETWORK_ALREADY_OFFLINE = 0x80130004,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_ALREADY_MEMBER = 0x80130005,
+ MD_NTSTATUS_WIN_STATUS_COULD_NOT_RESIZE_LOG = 0x80190009,
+ MD_NTSTATUS_WIN_STATUS_NO_TXF_METADATA = 0x80190029,
+ MD_NTSTATUS_WIN_STATUS_CANT_RECOVER_WITH_HANDLE_OPEN = 0x80190031,
+ MD_NTSTATUS_WIN_STATUS_TXF_METADATA_ALREADY_PRESENT = 0x80190041,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_SCOPE_CALLBACKS_NOT_SET = 0x80190042,
+ MD_NTSTATUS_WIN_STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD_RECOVERED = 0x801B00EB,
+ MD_NTSTATUS_WIN_STATUS_FLT_BUFFER_TOO_SMALL = 0x801C0001,
+ MD_NTSTATUS_WIN_STATUS_FVE_PARTIAL_METADATA = 0x80210001,
+ MD_NTSTATUS_WIN_STATUS_FVE_TRANSIENT_STATE = 0x80210002,
+ MD_NTSTATUS_WIN_STATUS_VID_REMOTE_NODE_PARENT_GPA_PAGES_USED = 0x80370001,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_INCOMPLETE_REGENERATION = 0x80380001,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_INCOMPLETE_DISK_MIGRATION = 0x80380002,
+ MD_NTSTATUS_WIN_STATUS_BCD_NOT_ALL_ENTRIES_IMPORTED = 0x80390001,
+ MD_NTSTATUS_WIN_STATUS_BCD_NOT_ALL_ENTRIES_SYNCHRONIZED = 0x80390003,
+ MD_NTSTATUS_WIN_STATUS_QUERY_STORAGE_ERROR = 0x803A0001,
+ MD_NTSTATUS_WIN_STATUS_GDI_HANDLE_LEAK = 0x803F0001,
+ MD_NTSTATUS_WIN_STATUS_SECUREBOOT_NOT_ENABLED = 0x80430006,
+ MD_NTSTATUS_WIN_STATUS_UNSUCCESSFUL = 0xC0000001,
+ MD_NTSTATUS_WIN_STATUS_NOT_IMPLEMENTED = 0xC0000002,
+ MD_NTSTATUS_WIN_STATUS_INVALID_INFO_CLASS = 0xC0000003,
+ MD_NTSTATUS_WIN_STATUS_INFO_LENGTH_MISMATCH = 0xC0000004,
+ MD_NTSTATUS_WIN_STATUS_ACCESS_VIOLATION = 0xC0000005,
+ MD_NTSTATUS_WIN_STATUS_IN_PAGE_ERROR = 0xC0000006,
+ MD_NTSTATUS_WIN_STATUS_PAGEFILE_QUOTA = 0xC0000007,
+ MD_NTSTATUS_WIN_STATUS_INVALID_HANDLE = 0xC0000008,
+ MD_NTSTATUS_WIN_STATUS_BAD_INITIAL_STACK = 0xC0000009,
+ MD_NTSTATUS_WIN_STATUS_BAD_INITIAL_PC = 0xC000000A,
+ MD_NTSTATUS_WIN_STATUS_INVALID_CID = 0xC000000B,
+ MD_NTSTATUS_WIN_STATUS_TIMER_NOT_CANCELED = 0xC000000C,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER = 0xC000000D,
+ MD_NTSTATUS_WIN_STATUS_NO_SUCH_DEVICE = 0xC000000E,
+ MD_NTSTATUS_WIN_STATUS_NO_SUCH_FILE = 0xC000000F,
+ MD_NTSTATUS_WIN_STATUS_INVALID_DEVICE_REQUEST = 0xC0000010,
+ MD_NTSTATUS_WIN_STATUS_END_OF_FILE = 0xC0000011,
+ MD_NTSTATUS_WIN_STATUS_WRONG_VOLUME = 0xC0000012,
+ MD_NTSTATUS_WIN_STATUS_NO_MEDIA_IN_DEVICE = 0xC0000013,
+ MD_NTSTATUS_WIN_STATUS_UNRECOGNIZED_MEDIA = 0xC0000014,
+ MD_NTSTATUS_WIN_STATUS_NONEXISTENT_SECTOR = 0xC0000015,
+ MD_NTSTATUS_WIN_STATUS_MORE_PROCESSING_REQUIRED = 0xC0000016,
+ MD_NTSTATUS_WIN_STATUS_NO_MEMORY = 0xC0000017,
+ MD_NTSTATUS_WIN_STATUS_CONFLICTING_ADDRESSES = 0xC0000018,
+ MD_NTSTATUS_WIN_STATUS_NOT_MAPPED_VIEW = 0xC0000019,
+ MD_NTSTATUS_WIN_STATUS_UNABLE_TO_FREE_VM = 0xC000001A,
+ MD_NTSTATUS_WIN_STATUS_UNABLE_TO_DELETE_SECTION = 0xC000001B,
+ MD_NTSTATUS_WIN_STATUS_INVALID_SYSTEM_SERVICE = 0xC000001C,
+ MD_NTSTATUS_WIN_STATUS_ILLEGAL_INSTRUCTION = 0xC000001D,
+ MD_NTSTATUS_WIN_STATUS_INVALID_LOCK_SEQUENCE = 0xC000001E,
+ MD_NTSTATUS_WIN_STATUS_INVALID_VIEW_SIZE = 0xC000001F,
+ MD_NTSTATUS_WIN_STATUS_INVALID_FILE_FOR_SECTION = 0xC0000020,
+ MD_NTSTATUS_WIN_STATUS_ALREADY_COMMITTED = 0xC0000021,
+ MD_NTSTATUS_WIN_STATUS_ACCESS_DENIED = 0xC0000022,
+ MD_NTSTATUS_WIN_STATUS_BUFFER_TOO_SMALL = 0xC0000023,
+ MD_NTSTATUS_WIN_STATUS_OBJECT_TYPE_MISMATCH = 0xC0000024,
+ MD_NTSTATUS_WIN_STATUS_NONCONTINUABLE_EXCEPTION = 0xC0000025,
+ MD_NTSTATUS_WIN_STATUS_INVALID_DISPOSITION = 0xC0000026,
+ MD_NTSTATUS_WIN_STATUS_UNWIND = 0xC0000027,
+ MD_NTSTATUS_WIN_STATUS_BAD_STACK = 0xC0000028,
+ MD_NTSTATUS_WIN_STATUS_INVALID_UNWIND_TARGET = 0xC0000029,
+ MD_NTSTATUS_WIN_STATUS_NOT_LOCKED = 0xC000002A,
+ MD_NTSTATUS_WIN_STATUS_PARITY_ERROR = 0xC000002B,
+ MD_NTSTATUS_WIN_STATUS_UNABLE_TO_DECOMMIT_VM = 0xC000002C,
+ MD_NTSTATUS_WIN_STATUS_NOT_COMMITTED = 0xC000002D,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PORT_ATTRIBUTES = 0xC000002E,
+ MD_NTSTATUS_WIN_STATUS_PORT_MESSAGE_TOO_LONG = 0xC000002F,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_MIX = 0xC0000030,
+ MD_NTSTATUS_WIN_STATUS_INVALID_QUOTA_LOWER = 0xC0000031,
+ MD_NTSTATUS_WIN_STATUS_DISK_CORRUPT_ERROR = 0xC0000032,
+ MD_NTSTATUS_WIN_STATUS_OBJECT_NAME_INVALID = 0xC0000033,
+ MD_NTSTATUS_WIN_STATUS_OBJECT_NAME_NOT_FOUND = 0xC0000034,
+ MD_NTSTATUS_WIN_STATUS_OBJECT_NAME_COLLISION = 0xC0000035,
+ MD_NTSTATUS_WIN_STATUS_PORT_DO_NOT_DISTURB = 0xC0000036,
+ MD_NTSTATUS_WIN_STATUS_PORT_DISCONNECTED = 0xC0000037,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_ALREADY_ATTACHED = 0xC0000038,
+ MD_NTSTATUS_WIN_STATUS_OBJECT_PATH_INVALID = 0xC0000039,
+ MD_NTSTATUS_WIN_STATUS_OBJECT_PATH_NOT_FOUND = 0xC000003A,
+ MD_NTSTATUS_WIN_STATUS_OBJECT_PATH_SYNTAX_BAD = 0xC000003B,
+ MD_NTSTATUS_WIN_STATUS_DATA_OVERRUN = 0xC000003C,
+ MD_NTSTATUS_WIN_STATUS_DATA_LATE_ERROR = 0xC000003D,
+ MD_NTSTATUS_WIN_STATUS_DATA_ERROR = 0xC000003E,
+ MD_NTSTATUS_WIN_STATUS_CRC_ERROR = 0xC000003F,
+ MD_NTSTATUS_WIN_STATUS_SECTION_TOO_BIG = 0xC0000040,
+ MD_NTSTATUS_WIN_STATUS_PORT_CONNECTION_REFUSED = 0xC0000041,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PORT_HANDLE = 0xC0000042,
+ MD_NTSTATUS_WIN_STATUS_SHARING_VIOLATION = 0xC0000043,
+ MD_NTSTATUS_WIN_STATUS_QUOTA_EXCEEDED = 0xC0000044,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PAGE_PROTECTION = 0xC0000045,
+ MD_NTSTATUS_WIN_STATUS_MUTANT_NOT_OWNED = 0xC0000046,
+ MD_NTSTATUS_WIN_STATUS_SEMAPHORE_LIMIT_EXCEEDED = 0xC0000047,
+ MD_NTSTATUS_WIN_STATUS_PORT_ALREADY_SET = 0xC0000048,
+ MD_NTSTATUS_WIN_STATUS_SECTION_NOT_IMAGE = 0xC0000049,
+ MD_NTSTATUS_WIN_STATUS_SUSPEND_COUNT_EXCEEDED = 0xC000004A,
+ MD_NTSTATUS_WIN_STATUS_THREAD_IS_TERMINATING = 0xC000004B,
+ MD_NTSTATUS_WIN_STATUS_BAD_WORKING_SET_LIMIT = 0xC000004C,
+ MD_NTSTATUS_WIN_STATUS_INCOMPATIBLE_FILE_MAP = 0xC000004D,
+ MD_NTSTATUS_WIN_STATUS_SECTION_PROTECTION = 0xC000004E,
+ MD_NTSTATUS_WIN_STATUS_EAS_NOT_SUPPORTED = 0xC000004F,
+ MD_NTSTATUS_WIN_STATUS_EA_TOO_LARGE = 0xC0000050,
+ MD_NTSTATUS_WIN_STATUS_NONEXISTENT_EA_ENTRY = 0xC0000051,
+ MD_NTSTATUS_WIN_STATUS_NO_EAS_ON_FILE = 0xC0000052,
+ MD_NTSTATUS_WIN_STATUS_EA_CORRUPT_ERROR = 0xC0000053,
+ MD_NTSTATUS_WIN_STATUS_FILE_LOCK_CONFLICT = 0xC0000054,
+ MD_NTSTATUS_WIN_STATUS_LOCK_NOT_GRANTED = 0xC0000055,
+ MD_NTSTATUS_WIN_STATUS_DELETE_PENDING = 0xC0000056,
+ MD_NTSTATUS_WIN_STATUS_CTL_FILE_NOT_SUPPORTED = 0xC0000057,
+ MD_NTSTATUS_WIN_STATUS_UNKNOWN_REVISION = 0xC0000058,
+ MD_NTSTATUS_WIN_STATUS_REVISION_MISMATCH = 0xC0000059,
+ MD_NTSTATUS_WIN_STATUS_INVALID_OWNER = 0xC000005A,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PRIMARY_GROUP = 0xC000005B,
+ MD_NTSTATUS_WIN_STATUS_NO_IMPERSONATION_TOKEN = 0xC000005C,
+ MD_NTSTATUS_WIN_STATUS_CANT_DISABLE_MANDATORY = 0xC000005D,
+ MD_NTSTATUS_WIN_STATUS_NO_LOGON_SERVERS = 0xC000005E,
+ MD_NTSTATUS_WIN_STATUS_NO_SUCH_LOGON_SESSION = 0xC000005F,
+ MD_NTSTATUS_WIN_STATUS_NO_SUCH_PRIVILEGE = 0xC0000060,
+ MD_NTSTATUS_WIN_STATUS_PRIVILEGE_NOT_HELD = 0xC0000061,
+ MD_NTSTATUS_WIN_STATUS_INVALID_ACCOUNT_NAME = 0xC0000062,
+ MD_NTSTATUS_WIN_STATUS_USER_EXISTS = 0xC0000063,
+ MD_NTSTATUS_WIN_STATUS_NO_SUCH_USER = 0xC0000064,
+ MD_NTSTATUS_WIN_STATUS_GROUP_EXISTS = 0xC0000065,
+ MD_NTSTATUS_WIN_STATUS_NO_SUCH_GROUP = 0xC0000066,
+ MD_NTSTATUS_WIN_STATUS_MEMBER_IN_GROUP = 0xC0000067,
+ MD_NTSTATUS_WIN_STATUS_MEMBER_NOT_IN_GROUP = 0xC0000068,
+ MD_NTSTATUS_WIN_STATUS_LAST_ADMIN = 0xC0000069,
+ MD_NTSTATUS_WIN_STATUS_WRONG_PASSWORD = 0xC000006A,
+ MD_NTSTATUS_WIN_STATUS_ILL_FORMED_PASSWORD = 0xC000006B,
+ MD_NTSTATUS_WIN_STATUS_PASSWORD_RESTRICTION = 0xC000006C,
+ MD_NTSTATUS_WIN_STATUS_LOGON_FAILURE = 0xC000006D,
+ MD_NTSTATUS_WIN_STATUS_ACCOUNT_RESTRICTION = 0xC000006E,
+ MD_NTSTATUS_WIN_STATUS_INVALID_LOGON_HOURS = 0xC000006F,
+ MD_NTSTATUS_WIN_STATUS_INVALID_WORKSTATION = 0xC0000070,
+ MD_NTSTATUS_WIN_STATUS_PASSWORD_EXPIRED = 0xC0000071,
+ MD_NTSTATUS_WIN_STATUS_ACCOUNT_DISABLED = 0xC0000072,
+ MD_NTSTATUS_WIN_STATUS_NONE_MAPPED = 0xC0000073,
+ MD_NTSTATUS_WIN_STATUS_TOO_MANY_LUIDS_REQUESTED = 0xC0000074,
+ MD_NTSTATUS_WIN_STATUS_LUIDS_EXHAUSTED = 0xC0000075,
+ MD_NTSTATUS_WIN_STATUS_INVALID_SUB_AUTHORITY = 0xC0000076,
+ MD_NTSTATUS_WIN_STATUS_INVALID_ACL = 0xC0000077,
+ MD_NTSTATUS_WIN_STATUS_INVALID_SID = 0xC0000078,
+ MD_NTSTATUS_WIN_STATUS_INVALID_SECURITY_DESCR = 0xC0000079,
+ MD_NTSTATUS_WIN_STATUS_PROCEDURE_NOT_FOUND = 0xC000007A,
+ MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_FORMAT = 0xC000007B,
+ MD_NTSTATUS_WIN_STATUS_NO_TOKEN = 0xC000007C,
+ MD_NTSTATUS_WIN_STATUS_BAD_INHERITANCE_ACL = 0xC000007D,
+ MD_NTSTATUS_WIN_STATUS_RANGE_NOT_LOCKED = 0xC000007E,
+ MD_NTSTATUS_WIN_STATUS_DISK_FULL = 0xC000007F,
+ MD_NTSTATUS_WIN_STATUS_SERVER_DISABLED = 0xC0000080,
+ MD_NTSTATUS_WIN_STATUS_SERVER_NOT_DISABLED = 0xC0000081,
+ MD_NTSTATUS_WIN_STATUS_TOO_MANY_GUIDS_REQUESTED = 0xC0000082,
+ MD_NTSTATUS_WIN_STATUS_GUIDS_EXHAUSTED = 0xC0000083,
+ MD_NTSTATUS_WIN_STATUS_INVALID_ID_AUTHORITY = 0xC0000084,
+ MD_NTSTATUS_WIN_STATUS_AGENTS_EXHAUSTED = 0xC0000085,
+ MD_NTSTATUS_WIN_STATUS_INVALID_VOLUME_LABEL = 0xC0000086,
+ MD_NTSTATUS_WIN_STATUS_SECTION_NOT_EXTENDED = 0xC0000087,
+ MD_NTSTATUS_WIN_STATUS_NOT_MAPPED_DATA = 0xC0000088,
+ MD_NTSTATUS_WIN_STATUS_RESOURCE_DATA_NOT_FOUND = 0xC0000089,
+ MD_NTSTATUS_WIN_STATUS_RESOURCE_TYPE_NOT_FOUND = 0xC000008A,
+ MD_NTSTATUS_WIN_STATUS_RESOURCE_NAME_NOT_FOUND = 0xC000008B,
+ MD_NTSTATUS_WIN_STATUS_ARRAY_BOUNDS_EXCEEDED = 0xC000008C,
+ MD_NTSTATUS_WIN_STATUS_FLOAT_DENORMAL_OPERAND = 0xC000008D,
+ MD_NTSTATUS_WIN_STATUS_FLOAT_DIVIDE_BY_ZERO = 0xC000008E,
+ MD_NTSTATUS_WIN_STATUS_FLOAT_INEXACT_RESULT = 0xC000008F,
+ MD_NTSTATUS_WIN_STATUS_FLOAT_INVALID_OPERATION = 0xC0000090,
+ MD_NTSTATUS_WIN_STATUS_FLOAT_OVERFLOW = 0xC0000091,
+ MD_NTSTATUS_WIN_STATUS_FLOAT_STACK_CHECK = 0xC0000092,
+ MD_NTSTATUS_WIN_STATUS_FLOAT_UNDERFLOW = 0xC0000093,
+ MD_NTSTATUS_WIN_STATUS_INTEGER_DIVIDE_BY_ZERO = 0xC0000094,
+ MD_NTSTATUS_WIN_STATUS_INTEGER_OVERFLOW = 0xC0000095,
+ MD_NTSTATUS_WIN_STATUS_PRIVILEGED_INSTRUCTION = 0xC0000096,
+ MD_NTSTATUS_WIN_STATUS_TOO_MANY_PAGING_FILES = 0xC0000097,
+ MD_NTSTATUS_WIN_STATUS_FILE_INVALID = 0xC0000098,
+ MD_NTSTATUS_WIN_STATUS_ALLOTTED_SPACE_EXCEEDED = 0xC0000099,
+ MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_RESOURCES = 0xC000009A,
+ MD_NTSTATUS_WIN_STATUS_DFS_EXIT_PATH_FOUND = 0xC000009B,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_DATA_ERROR = 0xC000009C,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_NOT_CONNECTED = 0xC000009D,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_POWER_FAILURE = 0xC000009E,
+ MD_NTSTATUS_WIN_STATUS_FREE_VM_NOT_AT_BASE = 0xC000009F,
+ MD_NTSTATUS_WIN_STATUS_MEMORY_NOT_ALLOCATED = 0xC00000A0,
+ MD_NTSTATUS_WIN_STATUS_WORKING_SET_QUOTA = 0xC00000A1,
+ MD_NTSTATUS_WIN_STATUS_MEDIA_WRITE_PROTECTED = 0xC00000A2,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_NOT_READY = 0xC00000A3,
+ MD_NTSTATUS_WIN_STATUS_INVALID_GROUP_ATTRIBUTES = 0xC00000A4,
+ MD_NTSTATUS_WIN_STATUS_BAD_IMPERSONATION_LEVEL = 0xC00000A5,
+ MD_NTSTATUS_WIN_STATUS_CANT_OPEN_ANONYMOUS = 0xC00000A6,
+ MD_NTSTATUS_WIN_STATUS_BAD_VALIDATION_CLASS = 0xC00000A7,
+ MD_NTSTATUS_WIN_STATUS_BAD_TOKEN_TYPE = 0xC00000A8,
+ MD_NTSTATUS_WIN_STATUS_BAD_MASTER_BOOT_RECORD = 0xC00000A9,
+ MD_NTSTATUS_WIN_STATUS_INSTRUCTION_MISALIGNMENT = 0xC00000AA,
+ MD_NTSTATUS_WIN_STATUS_INSTANCE_NOT_AVAILABLE = 0xC00000AB,
+ MD_NTSTATUS_WIN_STATUS_PIPE_NOT_AVAILABLE = 0xC00000AC,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PIPE_STATE = 0xC00000AD,
+ MD_NTSTATUS_WIN_STATUS_PIPE_BUSY = 0xC00000AE,
+ MD_NTSTATUS_WIN_STATUS_ILLEGAL_FUNCTION = 0xC00000AF,
+ MD_NTSTATUS_WIN_STATUS_PIPE_DISCONNECTED = 0xC00000B0,
+ MD_NTSTATUS_WIN_STATUS_PIPE_CLOSING = 0xC00000B1,
+ MD_NTSTATUS_WIN_STATUS_PIPE_CONNECTED = 0xC00000B2,
+ MD_NTSTATUS_WIN_STATUS_PIPE_LISTENING = 0xC00000B3,
+ MD_NTSTATUS_WIN_STATUS_INVALID_READ_MODE = 0xC00000B4,
+ MD_NTSTATUS_WIN_STATUS_IO_TIMEOUT = 0xC00000B5,
+ MD_NTSTATUS_WIN_STATUS_FILE_FORCED_CLOSED = 0xC00000B6,
+ MD_NTSTATUS_WIN_STATUS_PROFILING_NOT_STARTED = 0xC00000B7,
+ MD_NTSTATUS_WIN_STATUS_PROFILING_NOT_STOPPED = 0xC00000B8,
+ MD_NTSTATUS_WIN_STATUS_COULD_NOT_INTERPRET = 0xC00000B9,
+ MD_NTSTATUS_WIN_STATUS_FILE_IS_A_DIRECTORY = 0xC00000BA,
+ MD_NTSTATUS_WIN_STATUS_NOT_SUPPORTED = 0xC00000BB,
+ MD_NTSTATUS_WIN_STATUS_REMOTE_NOT_LISTENING = 0xC00000BC,
+ MD_NTSTATUS_WIN_STATUS_DUPLICATE_NAME = 0xC00000BD,
+ MD_NTSTATUS_WIN_STATUS_BAD_NETWORK_PATH = 0xC00000BE,
+ MD_NTSTATUS_WIN_STATUS_NETWORK_BUSY = 0xC00000BF,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_DOES_NOT_EXIST = 0xC00000C0,
+ MD_NTSTATUS_WIN_STATUS_TOO_MANY_COMMANDS = 0xC00000C1,
+ MD_NTSTATUS_WIN_STATUS_ADAPTER_HARDWARE_ERROR = 0xC00000C2,
+ MD_NTSTATUS_WIN_STATUS_INVALID_NETWORK_RESPONSE = 0xC00000C3,
+ MD_NTSTATUS_WIN_STATUS_UNEXPECTED_NETWORK_ERROR = 0xC00000C4,
+ MD_NTSTATUS_WIN_STATUS_BAD_REMOTE_ADAPTER = 0xC00000C5,
+ MD_NTSTATUS_WIN_STATUS_PRINT_QUEUE_FULL = 0xC00000C6,
+ MD_NTSTATUS_WIN_STATUS_NO_SPOOL_SPACE = 0xC00000C7,
+ MD_NTSTATUS_WIN_STATUS_PRINT_CANCELLED = 0xC00000C8,
+ MD_NTSTATUS_WIN_STATUS_NETWORK_NAME_DELETED = 0xC00000C9,
+ MD_NTSTATUS_WIN_STATUS_NETWORK_ACCESS_DENIED = 0xC00000CA,
+ MD_NTSTATUS_WIN_STATUS_BAD_DEVICE_TYPE = 0xC00000CB,
+ MD_NTSTATUS_WIN_STATUS_BAD_NETWORK_NAME = 0xC00000CC,
+ MD_NTSTATUS_WIN_STATUS_TOO_MANY_NAMES = 0xC00000CD,
+ MD_NTSTATUS_WIN_STATUS_TOO_MANY_SESSIONS = 0xC00000CE,
+ MD_NTSTATUS_WIN_STATUS_SHARING_PAUSED = 0xC00000CF,
+ MD_NTSTATUS_WIN_STATUS_REQUEST_NOT_ACCEPTED = 0xC00000D0,
+ MD_NTSTATUS_WIN_STATUS_REDIRECTOR_PAUSED = 0xC00000D1,
+ MD_NTSTATUS_WIN_STATUS_NET_WRITE_FAULT = 0xC00000D2,
+ MD_NTSTATUS_WIN_STATUS_PROFILING_AT_LIMIT = 0xC00000D3,
+ MD_NTSTATUS_WIN_STATUS_NOT_SAME_DEVICE = 0xC00000D4,
+ MD_NTSTATUS_WIN_STATUS_FILE_RENAMED = 0xC00000D5,
+ MD_NTSTATUS_WIN_STATUS_VIRTUAL_CIRCUIT_CLOSED = 0xC00000D6,
+ MD_NTSTATUS_WIN_STATUS_NO_SECURITY_ON_OBJECT = 0xC00000D7,
+ MD_NTSTATUS_WIN_STATUS_CANT_WAIT = 0xC00000D8,
+ MD_NTSTATUS_WIN_STATUS_PIPE_EMPTY = 0xC00000D9,
+ MD_NTSTATUS_WIN_STATUS_CANT_ACCESS_DOMAIN_INFO = 0xC00000DA,
+ MD_NTSTATUS_WIN_STATUS_CANT_TERMINATE_SELF = 0xC00000DB,
+ MD_NTSTATUS_WIN_STATUS_INVALID_SERVER_STATE = 0xC00000DC,
+ MD_NTSTATUS_WIN_STATUS_INVALID_DOMAIN_STATE = 0xC00000DD,
+ MD_NTSTATUS_WIN_STATUS_INVALID_DOMAIN_ROLE = 0xC00000DE,
+ MD_NTSTATUS_WIN_STATUS_NO_SUCH_DOMAIN = 0xC00000DF,
+ MD_NTSTATUS_WIN_STATUS_DOMAIN_EXISTS = 0xC00000E0,
+ MD_NTSTATUS_WIN_STATUS_DOMAIN_LIMIT_EXCEEDED = 0xC00000E1,
+ MD_NTSTATUS_WIN_STATUS_OPLOCK_NOT_GRANTED = 0xC00000E2,
+ MD_NTSTATUS_WIN_STATUS_INVALID_OPLOCK_PROTOCOL = 0xC00000E3,
+ MD_NTSTATUS_WIN_STATUS_INTERNAL_DB_CORRUPTION = 0xC00000E4,
+ MD_NTSTATUS_WIN_STATUS_INTERNAL_ERROR = 0xC00000E5,
+ MD_NTSTATUS_WIN_STATUS_GENERIC_NOT_MAPPED = 0xC00000E6,
+ MD_NTSTATUS_WIN_STATUS_BAD_DESCRIPTOR_FORMAT = 0xC00000E7,
+ MD_NTSTATUS_WIN_STATUS_INVALID_USER_BUFFER = 0xC00000E8,
+ MD_NTSTATUS_WIN_STATUS_UNEXPECTED_IO_ERROR = 0xC00000E9,
+ MD_NTSTATUS_WIN_STATUS_UNEXPECTED_MM_CREATE_ERR = 0xC00000EA,
+ MD_NTSTATUS_WIN_STATUS_UNEXPECTED_MM_MAP_ERROR = 0xC00000EB,
+ MD_NTSTATUS_WIN_STATUS_UNEXPECTED_MM_EXTEND_ERR = 0xC00000EC,
+ MD_NTSTATUS_WIN_STATUS_NOT_LOGON_PROCESS = 0xC00000ED,
+ MD_NTSTATUS_WIN_STATUS_LOGON_SESSION_EXISTS = 0xC00000EE,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_1 = 0xC00000EF,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_2 = 0xC00000F0,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_3 = 0xC00000F1,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_4 = 0xC00000F2,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_5 = 0xC00000F3,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_6 = 0xC00000F4,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_7 = 0xC00000F5,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_8 = 0xC00000F6,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_9 = 0xC00000F7,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_10 = 0xC00000F8,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_11 = 0xC00000F9,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PARAMETER_12 = 0xC00000FA,
+ MD_NTSTATUS_WIN_STATUS_REDIRECTOR_NOT_STARTED = 0xC00000FB,
+ MD_NTSTATUS_WIN_STATUS_REDIRECTOR_STARTED = 0xC00000FC,
+ MD_NTSTATUS_WIN_STATUS_STACK_OVERFLOW = 0xC00000FD,
+ MD_NTSTATUS_WIN_STATUS_NO_SUCH_PACKAGE = 0xC00000FE,
+ MD_NTSTATUS_WIN_STATUS_BAD_FUNCTION_TABLE = 0xC00000FF,
+ MD_NTSTATUS_WIN_STATUS_VARIABLE_NOT_FOUND = 0xC0000100,
+ MD_NTSTATUS_WIN_STATUS_DIRECTORY_NOT_EMPTY = 0xC0000101,
+ MD_NTSTATUS_WIN_STATUS_FILE_CORRUPT_ERROR = 0xC0000102,
+ MD_NTSTATUS_WIN_STATUS_NOT_A_DIRECTORY = 0xC0000103,
+ MD_NTSTATUS_WIN_STATUS_BAD_LOGON_SESSION_STATE = 0xC0000104,
+ MD_NTSTATUS_WIN_STATUS_LOGON_SESSION_COLLISION = 0xC0000105,
+ MD_NTSTATUS_WIN_STATUS_NAME_TOO_LONG = 0xC0000106,
+ MD_NTSTATUS_WIN_STATUS_FILES_OPEN = 0xC0000107,
+ MD_NTSTATUS_WIN_STATUS_CONNECTION_IN_USE = 0xC0000108,
+ MD_NTSTATUS_WIN_STATUS_MESSAGE_NOT_FOUND = 0xC0000109,
+ MD_NTSTATUS_WIN_STATUS_PROCESS_IS_TERMINATING = 0xC000010A,
+ MD_NTSTATUS_WIN_STATUS_INVALID_LOGON_TYPE = 0xC000010B,
+ MD_NTSTATUS_WIN_STATUS_NO_GUID_TRANSLATION = 0xC000010C,
+ MD_NTSTATUS_WIN_STATUS_CANNOT_IMPERSONATE = 0xC000010D,
+ MD_NTSTATUS_WIN_STATUS_IMAGE_ALREADY_LOADED = 0xC000010E,
+ MD_NTSTATUS_WIN_STATUS_ABIOS_NOT_PRESENT = 0xC000010F,
+ MD_NTSTATUS_WIN_STATUS_ABIOS_LID_NOT_EXIST = 0xC0000110,
+ MD_NTSTATUS_WIN_STATUS_ABIOS_LID_ALREADY_OWNED = 0xC0000111,
+ MD_NTSTATUS_WIN_STATUS_ABIOS_NOT_LID_OWNER = 0xC0000112,
+ MD_NTSTATUS_WIN_STATUS_ABIOS_INVALID_COMMAND = 0xC0000113,
+ MD_NTSTATUS_WIN_STATUS_ABIOS_INVALID_LID = 0xC0000114,
+ MD_NTSTATUS_WIN_STATUS_ABIOS_SELECTOR_NOT_AVAILABLE = 0xC0000115,
+ MD_NTSTATUS_WIN_STATUS_ABIOS_INVALID_SELECTOR = 0xC0000116,
+ MD_NTSTATUS_WIN_STATUS_NO_LDT = 0xC0000117,
+ MD_NTSTATUS_WIN_STATUS_INVALID_LDT_SIZE = 0xC0000118,
+ MD_NTSTATUS_WIN_STATUS_INVALID_LDT_OFFSET = 0xC0000119,
+ MD_NTSTATUS_WIN_STATUS_INVALID_LDT_DESCRIPTOR = 0xC000011A,
+ MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_NE_FORMAT = 0xC000011B,
+ MD_NTSTATUS_WIN_STATUS_RXACT_INVALID_STATE = 0xC000011C,
+ MD_NTSTATUS_WIN_STATUS_RXACT_COMMIT_FAILURE = 0xC000011D,
+ MD_NTSTATUS_WIN_STATUS_MAPPED_FILE_SIZE_ZERO = 0xC000011E,
+ MD_NTSTATUS_WIN_STATUS_TOO_MANY_OPENED_FILES = 0xC000011F,
+ MD_NTSTATUS_WIN_STATUS_CANCELLED = 0xC0000120,
+ MD_NTSTATUS_WIN_STATUS_CANNOT_DELETE = 0xC0000121,
+ MD_NTSTATUS_WIN_STATUS_INVALID_COMPUTER_NAME = 0xC0000122,
+ MD_NTSTATUS_WIN_STATUS_FILE_DELETED = 0xC0000123,
+ MD_NTSTATUS_WIN_STATUS_SPECIAL_ACCOUNT = 0xC0000124,
+ MD_NTSTATUS_WIN_STATUS_SPECIAL_GROUP = 0xC0000125,
+ MD_NTSTATUS_WIN_STATUS_SPECIAL_USER = 0xC0000126,
+ MD_NTSTATUS_WIN_STATUS_MEMBERS_PRIMARY_GROUP = 0xC0000127,
+ MD_NTSTATUS_WIN_STATUS_FILE_CLOSED = 0xC0000128,
+ MD_NTSTATUS_WIN_STATUS_TOO_MANY_THREADS = 0xC0000129,
+ MD_NTSTATUS_WIN_STATUS_THREAD_NOT_IN_PROCESS = 0xC000012A,
+ MD_NTSTATUS_WIN_STATUS_TOKEN_ALREADY_IN_USE = 0xC000012B,
+ MD_NTSTATUS_WIN_STATUS_PAGEFILE_QUOTA_EXCEEDED = 0xC000012C,
+ MD_NTSTATUS_WIN_STATUS_COMMITMENT_LIMIT = 0xC000012D,
+ MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_LE_FORMAT = 0xC000012E,
+ MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_NOT_MZ = 0xC000012F,
+ MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_PROTECT = 0xC0000130,
+ MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_WIN_16 = 0xC0000131,
+ MD_NTSTATUS_WIN_STATUS_LOGON_SERVER_CONFLICT = 0xC0000132,
+ MD_NTSTATUS_WIN_STATUS_TIME_DIFFERENCE_AT_DC = 0xC0000133,
+ MD_NTSTATUS_WIN_STATUS_SYNCHRONIZATION_REQUIRED = 0xC0000134,
+ MD_NTSTATUS_WIN_STATUS_DLL_NOT_FOUND = 0xC0000135,
+ MD_NTSTATUS_WIN_STATUS_OPEN_FAILED = 0xC0000136,
+ MD_NTSTATUS_WIN_STATUS_IO_PRIVILEGE_FAILED = 0xC0000137,
+ MD_NTSTATUS_WIN_STATUS_ORDINAL_NOT_FOUND = 0xC0000138,
+ MD_NTSTATUS_WIN_STATUS_ENTRYPOINT_NOT_FOUND = 0xC0000139,
+ MD_NTSTATUS_WIN_STATUS_CONTROL_C_EXIT = 0xC000013A,
+ MD_NTSTATUS_WIN_STATUS_LOCAL_DISCONNECT = 0xC000013B,
+ MD_NTSTATUS_WIN_STATUS_REMOTE_DISCONNECT = 0xC000013C,
+ MD_NTSTATUS_WIN_STATUS_REMOTE_RESOURCES = 0xC000013D,
+ MD_NTSTATUS_WIN_STATUS_LINK_FAILED = 0xC000013E,
+ MD_NTSTATUS_WIN_STATUS_LINK_TIMEOUT = 0xC000013F,
+ MD_NTSTATUS_WIN_STATUS_INVALID_CONNECTION = 0xC0000140,
+ MD_NTSTATUS_WIN_STATUS_INVALID_ADDRESS = 0xC0000141,
+ MD_NTSTATUS_WIN_STATUS_DLL_INIT_FAILED = 0xC0000142,
+ MD_NTSTATUS_WIN_STATUS_MISSING_SYSTEMFILE = 0xC0000143,
+ MD_NTSTATUS_WIN_STATUS_UNHANDLED_EXCEPTION = 0xC0000144,
+ MD_NTSTATUS_WIN_STATUS_APP_INIT_FAILURE = 0xC0000145,
+ MD_NTSTATUS_WIN_STATUS_PAGEFILE_CREATE_FAILED = 0xC0000146,
+ MD_NTSTATUS_WIN_STATUS_NO_PAGEFILE = 0xC0000147,
+ MD_NTSTATUS_WIN_STATUS_INVALID_LEVEL = 0xC0000148,
+ MD_NTSTATUS_WIN_STATUS_WRONG_PASSWORD_CORE = 0xC0000149,
+ MD_NTSTATUS_WIN_STATUS_ILLEGAL_FLOAT_CONTEXT = 0xC000014A,
+ MD_NTSTATUS_WIN_STATUS_PIPE_BROKEN = 0xC000014B,
+ MD_NTSTATUS_WIN_STATUS_REGISTRY_CORRUPT = 0xC000014C,
+ MD_NTSTATUS_WIN_STATUS_REGISTRY_IO_FAILED = 0xC000014D,
+ MD_NTSTATUS_WIN_STATUS_NO_EVENT_PAIR = 0xC000014E,
+ MD_NTSTATUS_WIN_STATUS_UNRECOGNIZED_VOLUME = 0xC000014F,
+ MD_NTSTATUS_WIN_STATUS_SERIAL_NO_DEVICE_INITED = 0xC0000150,
+ MD_NTSTATUS_WIN_STATUS_NO_SUCH_ALIAS = 0xC0000151,
+ MD_NTSTATUS_WIN_STATUS_MEMBER_NOT_IN_ALIAS = 0xC0000152,
+ MD_NTSTATUS_WIN_STATUS_MEMBER_IN_ALIAS = 0xC0000153,
+ MD_NTSTATUS_WIN_STATUS_ALIAS_EXISTS = 0xC0000154,
+ MD_NTSTATUS_WIN_STATUS_LOGON_NOT_GRANTED = 0xC0000155,
+ MD_NTSTATUS_WIN_STATUS_TOO_MANY_SECRETS = 0xC0000156,
+ MD_NTSTATUS_WIN_STATUS_SECRET_TOO_LONG = 0xC0000157,
+ MD_NTSTATUS_WIN_STATUS_INTERNAL_DB_ERROR = 0xC0000158,
+ MD_NTSTATUS_WIN_STATUS_FULLSCREEN_MODE = 0xC0000159,
+ MD_NTSTATUS_WIN_STATUS_TOO_MANY_CONTEXT_IDS = 0xC000015A,
+ MD_NTSTATUS_WIN_STATUS_LOGON_TYPE_NOT_GRANTED = 0xC000015B,
+ MD_NTSTATUS_WIN_STATUS_NOT_REGISTRY_FILE = 0xC000015C,
+ MD_NTSTATUS_WIN_STATUS_NT_CROSS_ENCRYPTION_REQUIRED = 0xC000015D,
+ MD_NTSTATUS_WIN_STATUS_DOMAIN_CTRLR_CONFIG_ERROR = 0xC000015E,
+ MD_NTSTATUS_WIN_STATUS_FT_MISSING_MEMBER = 0xC000015F,
+ MD_NTSTATUS_WIN_STATUS_ILL_FORMED_SERVICE_ENTRY = 0xC0000160,
+ MD_NTSTATUS_WIN_STATUS_ILLEGAL_CHARACTER = 0xC0000161,
+ MD_NTSTATUS_WIN_STATUS_UNMAPPABLE_CHARACTER = 0xC0000162,
+ MD_NTSTATUS_WIN_STATUS_UNDEFINED_CHARACTER = 0xC0000163,
+ MD_NTSTATUS_WIN_STATUS_FLOPPY_VOLUME = 0xC0000164,
+ MD_NTSTATUS_WIN_STATUS_FLOPPY_ID_MARK_NOT_FOUND = 0xC0000165,
+ MD_NTSTATUS_WIN_STATUS_FLOPPY_WRONG_CYLINDER = 0xC0000166,
+ MD_NTSTATUS_WIN_STATUS_FLOPPY_UNKNOWN_ERROR = 0xC0000167,
+ MD_NTSTATUS_WIN_STATUS_FLOPPY_BAD_REGISTERS = 0xC0000168,
+ MD_NTSTATUS_WIN_STATUS_DISK_RECALIBRATE_FAILED = 0xC0000169,
+ MD_NTSTATUS_WIN_STATUS_DISK_OPERATION_FAILED = 0xC000016A,
+ MD_NTSTATUS_WIN_STATUS_DISK_RESET_FAILED = 0xC000016B,
+ MD_NTSTATUS_WIN_STATUS_SHARED_IRQ_BUSY = 0xC000016C,
+ MD_NTSTATUS_WIN_STATUS_FT_ORPHANING = 0xC000016D,
+ MD_NTSTATUS_WIN_STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT = 0xC000016E,
+ MD_NTSTATUS_WIN_STATUS_PARTITION_FAILURE = 0xC0000172,
+ MD_NTSTATUS_WIN_STATUS_INVALID_BLOCK_LENGTH = 0xC0000173,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_NOT_PARTITIONED = 0xC0000174,
+ MD_NTSTATUS_WIN_STATUS_UNABLE_TO_LOCK_MEDIA = 0xC0000175,
+ MD_NTSTATUS_WIN_STATUS_UNABLE_TO_UNLOAD_MEDIA = 0xC0000176,
+ MD_NTSTATUS_WIN_STATUS_EOM_OVERFLOW = 0xC0000177,
+ MD_NTSTATUS_WIN_STATUS_NO_MEDIA = 0xC0000178,
+ MD_NTSTATUS_WIN_STATUS_NO_SUCH_MEMBER = 0xC000017A,
+ MD_NTSTATUS_WIN_STATUS_INVALID_MEMBER = 0xC000017B,
+ MD_NTSTATUS_WIN_STATUS_KEY_DELETED = 0xC000017C,
+ MD_NTSTATUS_WIN_STATUS_NO_LOG_SPACE = 0xC000017D,
+ MD_NTSTATUS_WIN_STATUS_TOO_MANY_SIDS = 0xC000017E,
+ MD_NTSTATUS_WIN_STATUS_LM_CROSS_ENCRYPTION_REQUIRED = 0xC000017F,
+ MD_NTSTATUS_WIN_STATUS_KEY_HAS_CHILDREN = 0xC0000180,
+ MD_NTSTATUS_WIN_STATUS_CHILD_MUST_BE_VOLATILE = 0xC0000181,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_CONFIGURATION_ERROR = 0xC0000182,
+ MD_NTSTATUS_WIN_STATUS_DRIVER_INTERNAL_ERROR = 0xC0000183,
+ MD_NTSTATUS_WIN_STATUS_INVALID_DEVICE_STATE = 0xC0000184,
+ MD_NTSTATUS_WIN_STATUS_IO_DEVICE_ERROR = 0xC0000185,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_PROTOCOL_ERROR = 0xC0000186,
+ MD_NTSTATUS_WIN_STATUS_BACKUP_CONTROLLER = 0xC0000187,
+ MD_NTSTATUS_WIN_STATUS_LOG_FILE_FULL = 0xC0000188,
+ MD_NTSTATUS_WIN_STATUS_TOO_LATE = 0xC0000189,
+ MD_NTSTATUS_WIN_STATUS_NO_TRUST_LSA_SECRET = 0xC000018A,
+ MD_NTSTATUS_WIN_STATUS_NO_TRUST_SAM_ACCOUNT = 0xC000018B,
+ MD_NTSTATUS_WIN_STATUS_TRUSTED_DOMAIN_FAILURE = 0xC000018C,
+ MD_NTSTATUS_WIN_STATUS_TRUSTED_RELATIONSHIP_FAILURE = 0xC000018D,
+ MD_NTSTATUS_WIN_STATUS_EVENTLOG_FILE_CORRUPT = 0xC000018E,
+ MD_NTSTATUS_WIN_STATUS_EVENTLOG_CANT_START = 0xC000018F,
+ MD_NTSTATUS_WIN_STATUS_TRUST_FAILURE = 0xC0000190,
+ MD_NTSTATUS_WIN_STATUS_MUTANT_LIMIT_EXCEEDED = 0xC0000191,
+ MD_NTSTATUS_WIN_STATUS_NETLOGON_NOT_STARTED = 0xC0000192,
+ MD_NTSTATUS_WIN_STATUS_ACCOUNT_EXPIRED = 0xC0000193,
+ MD_NTSTATUS_WIN_STATUS_POSSIBLE_DEADLOCK = 0xC0000194,
+ MD_NTSTATUS_WIN_STATUS_NETWORK_CREDENTIAL_CONFLICT = 0xC0000195,
+ MD_NTSTATUS_WIN_STATUS_REMOTE_SESSION_LIMIT = 0xC0000196,
+ MD_NTSTATUS_WIN_STATUS_EVENTLOG_FILE_CHANGED = 0xC0000197,
+ MD_NTSTATUS_WIN_STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT = 0xC0000198,
+ MD_NTSTATUS_WIN_STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT = 0xC0000199,
+ MD_NTSTATUS_WIN_STATUS_NOLOGON_SERVER_TRUST_ACCOUNT = 0xC000019A,
+ MD_NTSTATUS_WIN_STATUS_DOMAIN_TRUST_INCONSISTENT = 0xC000019B,
+ MD_NTSTATUS_WIN_STATUS_FS_DRIVER_REQUIRED = 0xC000019C,
+ MD_NTSTATUS_WIN_STATUS_IMAGE_ALREADY_LOADED_AS_DLL = 0xC000019D,
+ MD_NTSTATUS_WIN_STATUS_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING = 0xC000019E,
+ MD_NTSTATUS_WIN_STATUS_SHORT_NAMES_NOT_ENABLED_ON_VOLUME = 0xC000019F,
+ MD_NTSTATUS_WIN_STATUS_SECURITY_STREAM_IS_INCONSISTENT = 0xC00001A0,
+ MD_NTSTATUS_WIN_STATUS_INVALID_LOCK_RANGE = 0xC00001A1,
+ MD_NTSTATUS_WIN_STATUS_INVALID_ACE_CONDITION = 0xC00001A2,
+ MD_NTSTATUS_WIN_STATUS_IMAGE_SUBSYSTEM_NOT_PRESENT = 0xC00001A3,
+ MD_NTSTATUS_WIN_STATUS_NOTIFICATION_GUID_ALREADY_DEFINED = 0xC00001A4,
+ MD_NTSTATUS_WIN_STATUS_INVALID_EXCEPTION_HANDLER = 0xC00001A5,
+ MD_NTSTATUS_WIN_STATUS_DUPLICATE_PRIVILEGES = 0xC00001A6,
+ MD_NTSTATUS_WIN_STATUS_NOT_ALLOWED_ON_SYSTEM_FILE = 0xC00001A7,
+ MD_NTSTATUS_WIN_STATUS_REPAIR_NEEDED = 0xC00001A8,
+ MD_NTSTATUS_WIN_STATUS_QUOTA_NOT_ENABLED = 0xC00001A9,
+ MD_NTSTATUS_WIN_STATUS_NO_APPLICATION_PACKAGE = 0xC00001AA,
+ MD_NTSTATUS_WIN_STATUS_FILE_METADATA_OPTIMIZATION_IN_PROGRESS = 0xC00001AB,
+ MD_NTSTATUS_WIN_STATUS_NOT_SAME_OBJECT = 0xC00001AC,
+ MD_NTSTATUS_WIN_STATUS_FATAL_MEMORY_EXHAUSTION = 0xC00001AD,
+ MD_NTSTATUS_WIN_STATUS_ERROR_PROCESS_NOT_IN_JOB = 0xC00001AE,
+ MD_NTSTATUS_WIN_STATUS_CPU_SET_INVALID = 0xC00001AF,
+ MD_NTSTATUS_WIN_STATUS_IO_DEVICE_INVALID_DATA = 0xC00001B0,
+ MD_NTSTATUS_WIN_STATUS_IO_UNALIGNED_WRITE = 0xC00001B1,
+ MD_NTSTATUS_WIN_STATUS_CONTROL_STACK_VIOLATION = 0xC00001B2,
+ MD_NTSTATUS_WIN_STATUS_NETWORK_OPEN_RESTRICTION = 0xC0000201,
+ MD_NTSTATUS_WIN_STATUS_NO_USER_SESSION_KEY = 0xC0000202,
+ MD_NTSTATUS_WIN_STATUS_USER_SESSION_DELETED = 0xC0000203,
+ MD_NTSTATUS_WIN_STATUS_RESOURCE_LANG_NOT_FOUND = 0xC0000204,
+ MD_NTSTATUS_WIN_STATUS_INSUFF_SERVER_RESOURCES = 0xC0000205,
+ MD_NTSTATUS_WIN_STATUS_INVALID_BUFFER_SIZE = 0xC0000206,
+ MD_NTSTATUS_WIN_STATUS_INVALID_ADDRESS_COMPONENT = 0xC0000207,
+ MD_NTSTATUS_WIN_STATUS_INVALID_ADDRESS_WILDCARD = 0xC0000208,
+ MD_NTSTATUS_WIN_STATUS_TOO_MANY_ADDRESSES = 0xC0000209,
+ MD_NTSTATUS_WIN_STATUS_ADDRESS_ALREADY_EXISTS = 0xC000020A,
+ MD_NTSTATUS_WIN_STATUS_ADDRESS_CLOSED = 0xC000020B,
+ MD_NTSTATUS_WIN_STATUS_CONNECTION_DISCONNECTED = 0xC000020C,
+ MD_NTSTATUS_WIN_STATUS_CONNECTION_RESET = 0xC000020D,
+ MD_NTSTATUS_WIN_STATUS_TOO_MANY_NODES = 0xC000020E,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_ABORTED = 0xC000020F,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_TIMED_OUT = 0xC0000210,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_NO_RELEASE = 0xC0000211,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_NO_MATCH = 0xC0000212,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_RESPONDED = 0xC0000213,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_INVALID_ID = 0xC0000214,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_INVALID_TYPE = 0xC0000215,
+ MD_NTSTATUS_WIN_STATUS_NOT_SERVER_SESSION = 0xC0000216,
+ MD_NTSTATUS_WIN_STATUS_NOT_CLIENT_SESSION = 0xC0000217,
+ MD_NTSTATUS_WIN_STATUS_CANNOT_LOAD_REGISTRY_FILE = 0xC0000218,
+ MD_NTSTATUS_WIN_STATUS_DEBUG_ATTACH_FAILED = 0xC0000219,
+ MD_NTSTATUS_WIN_STATUS_SYSTEM_PROCESS_TERMINATED = 0xC000021A,
+ MD_NTSTATUS_WIN_STATUS_DATA_NOT_ACCEPTED = 0xC000021B,
+ MD_NTSTATUS_WIN_STATUS_NO_BROWSER_SERVERS_FOUND = 0xC000021C,
+ MD_NTSTATUS_WIN_STATUS_VDM_HARD_ERROR = 0xC000021D,
+ MD_NTSTATUS_WIN_STATUS_DRIVER_CANCEL_TIMEOUT = 0xC000021E,
+ MD_NTSTATUS_WIN_STATUS_REPLY_MESSAGE_MISMATCH = 0xC000021F,
+ MD_NTSTATUS_WIN_STATUS_MAPPED_ALIGNMENT = 0xC0000220,
+ MD_NTSTATUS_WIN_STATUS_IMAGE_CHECKSUM_MISMATCH = 0xC0000221,
+ MD_NTSTATUS_WIN_STATUS_LOST_WRITEBEHIND_DATA = 0xC0000222,
+ MD_NTSTATUS_WIN_STATUS_CLIENT_SERVER_PARAMETERS_INVALID = 0xC0000223,
+ MD_NTSTATUS_WIN_STATUS_PASSWORD_MUST_CHANGE = 0xC0000224,
+ MD_NTSTATUS_WIN_STATUS_NOT_FOUND = 0xC0000225,
+ MD_NTSTATUS_WIN_STATUS_NOT_TINY_STREAM = 0xC0000226,
+ MD_NTSTATUS_WIN_STATUS_RECOVERY_FAILURE = 0xC0000227,
+ MD_NTSTATUS_WIN_STATUS_STACK_OVERFLOW_READ = 0xC0000228,
+ MD_NTSTATUS_WIN_STATUS_FAIL_CHECK = 0xC0000229,
+ MD_NTSTATUS_WIN_STATUS_DUPLICATE_OBJECTID = 0xC000022A,
+ MD_NTSTATUS_WIN_STATUS_OBJECTID_EXISTS = 0xC000022B,
+ MD_NTSTATUS_WIN_STATUS_CONVERT_TO_LARGE = 0xC000022C,
+ MD_NTSTATUS_WIN_STATUS_RETRY = 0xC000022D,
+ MD_NTSTATUS_WIN_STATUS_FOUND_OUT_OF_SCOPE = 0xC000022E,
+ MD_NTSTATUS_WIN_STATUS_ALLOCATE_BUCKET = 0xC000022F,
+ MD_NTSTATUS_WIN_STATUS_PROPSET_NOT_FOUND = 0xC0000230,
+ MD_NTSTATUS_WIN_STATUS_MARSHALL_OVERFLOW = 0xC0000231,
+ MD_NTSTATUS_WIN_STATUS_INVALID_VARIANT = 0xC0000232,
+ MD_NTSTATUS_WIN_STATUS_DOMAIN_CONTROLLER_NOT_FOUND = 0xC0000233,
+ MD_NTSTATUS_WIN_STATUS_ACCOUNT_LOCKED_OUT = 0xC0000234,
+ MD_NTSTATUS_WIN_STATUS_HANDLE_NOT_CLOSABLE = 0xC0000235,
+ MD_NTSTATUS_WIN_STATUS_CONNECTION_REFUSED = 0xC0000236,
+ MD_NTSTATUS_WIN_STATUS_GRACEFUL_DISCONNECT = 0xC0000237,
+ MD_NTSTATUS_WIN_STATUS_ADDRESS_ALREADY_ASSOCIATED = 0xC0000238,
+ MD_NTSTATUS_WIN_STATUS_ADDRESS_NOT_ASSOCIATED = 0xC0000239,
+ MD_NTSTATUS_WIN_STATUS_CONNECTION_INVALID = 0xC000023A,
+ MD_NTSTATUS_WIN_STATUS_CONNECTION_ACTIVE = 0xC000023B,
+ MD_NTSTATUS_WIN_STATUS_NETWORK_UNREACHABLE = 0xC000023C,
+ MD_NTSTATUS_WIN_STATUS_HOST_UNREACHABLE = 0xC000023D,
+ MD_NTSTATUS_WIN_STATUS_PROTOCOL_UNREACHABLE = 0xC000023E,
+ MD_NTSTATUS_WIN_STATUS_PORT_UNREACHABLE = 0xC000023F,
+ MD_NTSTATUS_WIN_STATUS_REQUEST_ABORTED = 0xC0000240,
+ MD_NTSTATUS_WIN_STATUS_CONNECTION_ABORTED = 0xC0000241,
+ MD_NTSTATUS_WIN_STATUS_BAD_COMPRESSION_BUFFER = 0xC0000242,
+ MD_NTSTATUS_WIN_STATUS_USER_MAPPED_FILE = 0xC0000243,
+ MD_NTSTATUS_WIN_STATUS_AUDIT_FAILED = 0xC0000244,
+ MD_NTSTATUS_WIN_STATUS_TIMER_RESOLUTION_NOT_SET = 0xC0000245,
+ MD_NTSTATUS_WIN_STATUS_CONNECTION_COUNT_LIMIT = 0xC0000246,
+ MD_NTSTATUS_WIN_STATUS_LOGIN_TIME_RESTRICTION = 0xC0000247,
+ MD_NTSTATUS_WIN_STATUS_LOGIN_WKSTA_RESTRICTION = 0xC0000248,
+ MD_NTSTATUS_WIN_STATUS_IMAGE_MP_UP_MISMATCH = 0xC0000249,
+ MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_LOGON_INFO = 0xC0000250,
+ MD_NTSTATUS_WIN_STATUS_BAD_DLL_ENTRYPOINT = 0xC0000251,
+ MD_NTSTATUS_WIN_STATUS_BAD_SERVICE_ENTRYPOINT = 0xC0000252,
+ MD_NTSTATUS_WIN_STATUS_LPC_REPLY_LOST = 0xC0000253,
+ MD_NTSTATUS_WIN_STATUS_IP_ADDRESS_CONFLICT1 = 0xC0000254,
+ MD_NTSTATUS_WIN_STATUS_IP_ADDRESS_CONFLICT2 = 0xC0000255,
+ MD_NTSTATUS_WIN_STATUS_REGISTRY_QUOTA_LIMIT = 0xC0000256,
+ MD_NTSTATUS_WIN_STATUS_PATH_NOT_COVERED = 0xC0000257,
+ MD_NTSTATUS_WIN_STATUS_NO_CALLBACK_ACTIVE = 0xC0000258,
+ MD_NTSTATUS_WIN_STATUS_LICENSE_QUOTA_EXCEEDED = 0xC0000259,
+ MD_NTSTATUS_WIN_STATUS_PWD_TOO_SHORT = 0xC000025A,
+ MD_NTSTATUS_WIN_STATUS_PWD_TOO_RECENT = 0xC000025B,
+ MD_NTSTATUS_WIN_STATUS_PWD_HISTORY_CONFLICT = 0xC000025C,
+ MD_NTSTATUS_WIN_STATUS_PLUGPLAY_NO_DEVICE = 0xC000025E,
+ MD_NTSTATUS_WIN_STATUS_UNSUPPORTED_COMPRESSION = 0xC000025F,
+ MD_NTSTATUS_WIN_STATUS_INVALID_HW_PROFILE = 0xC0000260,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PLUGPLAY_DEVICE_PATH = 0xC0000261,
+ MD_NTSTATUS_WIN_STATUS_DRIVER_ORDINAL_NOT_FOUND = 0xC0000262,
+ MD_NTSTATUS_WIN_STATUS_DRIVER_ENTRYPOINT_NOT_FOUND = 0xC0000263,
+ MD_NTSTATUS_WIN_STATUS_RESOURCE_NOT_OWNED = 0xC0000264,
+ MD_NTSTATUS_WIN_STATUS_TOO_MANY_LINKS = 0xC0000265,
+ MD_NTSTATUS_WIN_STATUS_QUOTA_LIST_INCONSISTENT = 0xC0000266,
+ MD_NTSTATUS_WIN_STATUS_FILE_IS_OFFLINE = 0xC0000267,
+ MD_NTSTATUS_WIN_STATUS_EVALUATION_EXPIRATION = 0xC0000268,
+ MD_NTSTATUS_WIN_STATUS_ILLEGAL_DLL_RELOCATION = 0xC0000269,
+ MD_NTSTATUS_WIN_STATUS_LICENSE_VIOLATION = 0xC000026A,
+ MD_NTSTATUS_WIN_STATUS_DLL_INIT_FAILED_LOGOFF = 0xC000026B,
+ MD_NTSTATUS_WIN_STATUS_DRIVER_UNABLE_TO_LOAD = 0xC000026C,
+ MD_NTSTATUS_WIN_STATUS_DFS_UNAVAILABLE = 0xC000026D,
+ MD_NTSTATUS_WIN_STATUS_VOLUME_DISMOUNTED = 0xC000026E,
+ MD_NTSTATUS_WIN_STATUS_WX86_INTERNAL_ERROR = 0xC000026F,
+ MD_NTSTATUS_WIN_STATUS_WX86_FLOAT_STACK_CHECK = 0xC0000270,
+ MD_NTSTATUS_WIN_STATUS_VALIDATE_CONTINUE = 0xC0000271,
+ MD_NTSTATUS_WIN_STATUS_NO_MATCH = 0xC0000272,
+ MD_NTSTATUS_WIN_STATUS_NO_MORE_MATCHES = 0xC0000273,
+ MD_NTSTATUS_WIN_STATUS_NOT_A_REPARSE_POINT = 0xC0000275,
+ MD_NTSTATUS_WIN_STATUS_IO_REPARSE_TAG_INVALID = 0xC0000276,
+ MD_NTSTATUS_WIN_STATUS_IO_REPARSE_TAG_MISMATCH = 0xC0000277,
+ MD_NTSTATUS_WIN_STATUS_IO_REPARSE_DATA_INVALID = 0xC0000278,
+ MD_NTSTATUS_WIN_STATUS_IO_REPARSE_TAG_NOT_HANDLED = 0xC0000279,
+ MD_NTSTATUS_WIN_STATUS_PWD_TOO_LONG = 0xC000027A,
+ MD_NTSTATUS_WIN_STATUS_STOWED_EXCEPTION = 0xC000027B,
+ MD_NTSTATUS_WIN_STATUS_CONTEXT_STOWED_EXCEPTION = 0xC000027C,
+ MD_NTSTATUS_WIN_STATUS_REPARSE_POINT_NOT_RESOLVED = 0xC0000280,
+ MD_NTSTATUS_WIN_STATUS_DIRECTORY_IS_A_REPARSE_POINT = 0xC0000281,
+ MD_NTSTATUS_WIN_STATUS_RANGE_LIST_CONFLICT = 0xC0000282,
+ MD_NTSTATUS_WIN_STATUS_SOURCE_ELEMENT_EMPTY = 0xC0000283,
+ MD_NTSTATUS_WIN_STATUS_DESTINATION_ELEMENT_FULL = 0xC0000284,
+ MD_NTSTATUS_WIN_STATUS_ILLEGAL_ELEMENT_ADDRESS = 0xC0000285,
+ MD_NTSTATUS_WIN_STATUS_MAGAZINE_NOT_PRESENT = 0xC0000286,
+ MD_NTSTATUS_WIN_STATUS_REINITIALIZATION_NEEDED = 0xC0000287,
+ MD_NTSTATUS_WIN_STATUS_ENCRYPTION_FAILED = 0xC000028A,
+ MD_NTSTATUS_WIN_STATUS_DECRYPTION_FAILED = 0xC000028B,
+ MD_NTSTATUS_WIN_STATUS_RANGE_NOT_FOUND = 0xC000028C,
+ MD_NTSTATUS_WIN_STATUS_NO_RECOVERY_POLICY = 0xC000028D,
+ MD_NTSTATUS_WIN_STATUS_NO_EFS = 0xC000028E,
+ MD_NTSTATUS_WIN_STATUS_WRONG_EFS = 0xC000028F,
+ MD_NTSTATUS_WIN_STATUS_NO_USER_KEYS = 0xC0000290,
+ MD_NTSTATUS_WIN_STATUS_FILE_NOT_ENCRYPTED = 0xC0000291,
+ MD_NTSTATUS_WIN_STATUS_NOT_EXPORT_FORMAT = 0xC0000292,
+ MD_NTSTATUS_WIN_STATUS_FILE_ENCRYPTED = 0xC0000293,
+ MD_NTSTATUS_WIN_STATUS_WMI_GUID_NOT_FOUND = 0xC0000295,
+ MD_NTSTATUS_WIN_STATUS_WMI_INSTANCE_NOT_FOUND = 0xC0000296,
+ MD_NTSTATUS_WIN_STATUS_WMI_ITEMID_NOT_FOUND = 0xC0000297,
+ MD_NTSTATUS_WIN_STATUS_WMI_TRY_AGAIN = 0xC0000298,
+ MD_NTSTATUS_WIN_STATUS_SHARED_POLICY = 0xC0000299,
+ MD_NTSTATUS_WIN_STATUS_POLICY_OBJECT_NOT_FOUND = 0xC000029A,
+ MD_NTSTATUS_WIN_STATUS_POLICY_ONLY_IN_DS = 0xC000029B,
+ MD_NTSTATUS_WIN_STATUS_VOLUME_NOT_UPGRADED = 0xC000029C,
+ MD_NTSTATUS_WIN_STATUS_REMOTE_STORAGE_NOT_ACTIVE = 0xC000029D,
+ MD_NTSTATUS_WIN_STATUS_REMOTE_STORAGE_MEDIA_ERROR = 0xC000029E,
+ MD_NTSTATUS_WIN_STATUS_NO_TRACKING_SERVICE = 0xC000029F,
+ MD_NTSTATUS_WIN_STATUS_SERVER_SID_MISMATCH = 0xC00002A0,
+ MD_NTSTATUS_WIN_STATUS_DS_NO_ATTRIBUTE_OR_VALUE = 0xC00002A1,
+ MD_NTSTATUS_WIN_STATUS_DS_INVALID_ATTRIBUTE_SYNTAX = 0xC00002A2,
+ MD_NTSTATUS_WIN_STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED = 0xC00002A3,
+ MD_NTSTATUS_WIN_STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS = 0xC00002A4,
+ MD_NTSTATUS_WIN_STATUS_DS_BUSY = 0xC00002A5,
+ MD_NTSTATUS_WIN_STATUS_DS_UNAVAILABLE = 0xC00002A6,
+ MD_NTSTATUS_WIN_STATUS_DS_NO_RIDS_ALLOCATED = 0xC00002A7,
+ MD_NTSTATUS_WIN_STATUS_DS_NO_MORE_RIDS = 0xC00002A8,
+ MD_NTSTATUS_WIN_STATUS_DS_INCORRECT_ROLE_OWNER = 0xC00002A9,
+ MD_NTSTATUS_WIN_STATUS_DS_RIDMGR_INIT_ERROR = 0xC00002AA,
+ MD_NTSTATUS_WIN_STATUS_DS_OBJ_CLASS_VIOLATION = 0xC00002AB,
+ MD_NTSTATUS_WIN_STATUS_DS_CANT_ON_NON_LEAF = 0xC00002AC,
+ MD_NTSTATUS_WIN_STATUS_DS_CANT_ON_RDN = 0xC00002AD,
+ MD_NTSTATUS_WIN_STATUS_DS_CANT_MOD_OBJ_CLASS = 0xC00002AE,
+ MD_NTSTATUS_WIN_STATUS_DS_CROSS_DOM_MOVE_FAILED = 0xC00002AF,
+ MD_NTSTATUS_WIN_STATUS_DS_GC_NOT_AVAILABLE = 0xC00002B0,
+ MD_NTSTATUS_WIN_STATUS_DIRECTORY_SERVICE_REQUIRED = 0xC00002B1,
+ MD_NTSTATUS_WIN_STATUS_REPARSE_ATTRIBUTE_CONFLICT = 0xC00002B2,
+ MD_NTSTATUS_WIN_STATUS_CANT_ENABLE_DENY_ONLY = 0xC00002B3,
+ MD_NTSTATUS_WIN_STATUS_FLOAT_MULTIPLE_FAULTS = 0xC00002B4,
+ MD_NTSTATUS_WIN_STATUS_FLOAT_MULTIPLE_TRAPS = 0xC00002B5,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_REMOVED = 0xC00002B6,
+ MD_NTSTATUS_WIN_STATUS_JOURNAL_DELETE_IN_PROGRESS = 0xC00002B7,
+ MD_NTSTATUS_WIN_STATUS_JOURNAL_NOT_ACTIVE = 0xC00002B8,
+ MD_NTSTATUS_WIN_STATUS_NOINTERFACE = 0xC00002B9,
+ MD_NTSTATUS_WIN_STATUS_DS_RIDMGR_DISABLED = 0xC00002BA,
+ MD_NTSTATUS_WIN_STATUS_DS_ADMIN_LIMIT_EXCEEDED = 0xC00002C1,
+ MD_NTSTATUS_WIN_STATUS_DRIVER_FAILED_SLEEP = 0xC00002C2,
+ MD_NTSTATUS_WIN_STATUS_MUTUAL_AUTHENTICATION_FAILED = 0xC00002C3,
+ MD_NTSTATUS_WIN_STATUS_CORRUPT_SYSTEM_FILE = 0xC00002C4,
+ MD_NTSTATUS_WIN_STATUS_DATATYPE_MISALIGNMENT_ERROR = 0xC00002C5,
+ MD_NTSTATUS_WIN_STATUS_WMI_READ_ONLY = 0xC00002C6,
+ MD_NTSTATUS_WIN_STATUS_WMI_SET_FAILURE = 0xC00002C7,
+ MD_NTSTATUS_WIN_STATUS_COMMITMENT_MINIMUM = 0xC00002C8,
+ MD_NTSTATUS_WIN_STATUS_REG_NAT_CONSUMPTION = 0xC00002C9,
+ MD_NTSTATUS_WIN_STATUS_TRANSPORT_FULL = 0xC00002CA,
+ MD_NTSTATUS_WIN_STATUS_DS_SAM_INIT_FAILURE = 0xC00002CB,
+ MD_NTSTATUS_WIN_STATUS_ONLY_IF_CONNECTED = 0xC00002CC,
+ MD_NTSTATUS_WIN_STATUS_DS_SENSITIVE_GROUP_VIOLATION = 0xC00002CD,
+ MD_NTSTATUS_WIN_STATUS_PNP_RESTART_ENUMERATION = 0xC00002CE,
+ MD_NTSTATUS_WIN_STATUS_JOURNAL_ENTRY_DELETED = 0xC00002CF,
+ MD_NTSTATUS_WIN_STATUS_DS_CANT_MOD_PRIMARYGROUPID = 0xC00002D0,
+ MD_NTSTATUS_WIN_STATUS_SYSTEM_IMAGE_BAD_SIGNATURE = 0xC00002D1,
+ MD_NTSTATUS_WIN_STATUS_PNP_REBOOT_REQUIRED = 0xC00002D2,
+ MD_NTSTATUS_WIN_STATUS_POWER_STATE_INVALID = 0xC00002D3,
+ MD_NTSTATUS_WIN_STATUS_DS_INVALID_GROUP_TYPE = 0xC00002D4,
+ MD_NTSTATUS_WIN_STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN = 0xC00002D5,
+ MD_NTSTATUS_WIN_STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN = 0xC00002D6,
+ MD_NTSTATUS_WIN_STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER = 0xC00002D7,
+ MD_NTSTATUS_WIN_STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER = 0xC00002D8,
+ MD_NTSTATUS_WIN_STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER = 0xC00002D9,
+ MD_NTSTATUS_WIN_STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER = 0xC00002DA,
+ MD_NTSTATUS_WIN_STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER = 0xC00002DB,
+ MD_NTSTATUS_WIN_STATUS_DS_HAVE_PRIMARY_MEMBERS = 0xC00002DC,
+ MD_NTSTATUS_WIN_STATUS_WMI_NOT_SUPPORTED = 0xC00002DD,
+ MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_POWER = 0xC00002DE,
+ MD_NTSTATUS_WIN_STATUS_SAM_NEED_BOOTKEY_PASSWORD = 0xC00002DF,
+ MD_NTSTATUS_WIN_STATUS_SAM_NEED_BOOTKEY_FLOPPY = 0xC00002E0,
+ MD_NTSTATUS_WIN_STATUS_DS_CANT_START = 0xC00002E1,
+ MD_NTSTATUS_WIN_STATUS_DS_INIT_FAILURE = 0xC00002E2,
+ MD_NTSTATUS_WIN_STATUS_SAM_INIT_FAILURE = 0xC00002E3,
+ MD_NTSTATUS_WIN_STATUS_DS_GC_REQUIRED = 0xC00002E4,
+ MD_NTSTATUS_WIN_STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY = 0xC00002E5,
+ MD_NTSTATUS_WIN_STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS = 0xC00002E6,
+ MD_NTSTATUS_WIN_STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED = 0xC00002E7,
+ MD_NTSTATUS_WIN_STATUS_MULTIPLE_FAULT_VIOLATION = 0xC00002E8,
+ MD_NTSTATUS_WIN_STATUS_CURRENT_DOMAIN_NOT_ALLOWED = 0xC00002E9,
+ MD_NTSTATUS_WIN_STATUS_CANNOT_MAKE = 0xC00002EA,
+ MD_NTSTATUS_WIN_STATUS_SYSTEM_SHUTDOWN = 0xC00002EB,
+ MD_NTSTATUS_WIN_STATUS_DS_INIT_FAILURE_CONSOLE = 0xC00002EC,
+ MD_NTSTATUS_WIN_STATUS_DS_SAM_INIT_FAILURE_CONSOLE = 0xC00002ED,
+ MD_NTSTATUS_WIN_STATUS_UNFINISHED_CONTEXT_DELETED = 0xC00002EE,
+ MD_NTSTATUS_WIN_STATUS_NO_TGT_REPLY = 0xC00002EF,
+ MD_NTSTATUS_WIN_STATUS_OBJECTID_NOT_FOUND = 0xC00002F0,
+ MD_NTSTATUS_WIN_STATUS_NO_IP_ADDRESSES = 0xC00002F1,
+ MD_NTSTATUS_WIN_STATUS_WRONG_CREDENTIAL_HANDLE = 0xC00002F2,
+ MD_NTSTATUS_WIN_STATUS_CRYPTO_SYSTEM_INVALID = 0xC00002F3,
+ MD_NTSTATUS_WIN_STATUS_MAX_REFERRALS_EXCEEDED = 0xC00002F4,
+ MD_NTSTATUS_WIN_STATUS_MUST_BE_KDC = 0xC00002F5,
+ MD_NTSTATUS_WIN_STATUS_STRONG_CRYPTO_NOT_SUPPORTED = 0xC00002F6,
+ MD_NTSTATUS_WIN_STATUS_TOO_MANY_PRINCIPALS = 0xC00002F7,
+ MD_NTSTATUS_WIN_STATUS_NO_PA_DATA = 0xC00002F8,
+ MD_NTSTATUS_WIN_STATUS_PKINIT_NAME_MISMATCH = 0xC00002F9,
+ MD_NTSTATUS_WIN_STATUS_SMARTCARD_LOGON_REQUIRED = 0xC00002FA,
+ MD_NTSTATUS_WIN_STATUS_KDC_INVALID_REQUEST = 0xC00002FB,
+ MD_NTSTATUS_WIN_STATUS_KDC_UNABLE_TO_REFER = 0xC00002FC,
+ MD_NTSTATUS_WIN_STATUS_KDC_UNKNOWN_ETYPE = 0xC00002FD,
+ MD_NTSTATUS_WIN_STATUS_SHUTDOWN_IN_PROGRESS = 0xC00002FE,
+ MD_NTSTATUS_WIN_STATUS_SERVER_SHUTDOWN_IN_PROGRESS = 0xC00002FF,
+ MD_NTSTATUS_WIN_STATUS_NOT_SUPPORTED_ON_SBS = 0xC0000300,
+ MD_NTSTATUS_WIN_STATUS_WMI_GUID_DISCONNECTED = 0xC0000301,
+ MD_NTSTATUS_WIN_STATUS_WMI_ALREADY_DISABLED = 0xC0000302,
+ MD_NTSTATUS_WIN_STATUS_WMI_ALREADY_ENABLED = 0xC0000303,
+ MD_NTSTATUS_WIN_STATUS_MFT_TOO_FRAGMENTED = 0xC0000304,
+ MD_NTSTATUS_WIN_STATUS_COPY_PROTECTION_FAILURE = 0xC0000305,
+ MD_NTSTATUS_WIN_STATUS_CSS_AUTHENTICATION_FAILURE = 0xC0000306,
+ MD_NTSTATUS_WIN_STATUS_CSS_KEY_NOT_PRESENT = 0xC0000307,
+ MD_NTSTATUS_WIN_STATUS_CSS_KEY_NOT_ESTABLISHED = 0xC0000308,
+ MD_NTSTATUS_WIN_STATUS_CSS_SCRAMBLED_SECTOR = 0xC0000309,
+ MD_NTSTATUS_WIN_STATUS_CSS_REGION_MISMATCH = 0xC000030A,
+ MD_NTSTATUS_WIN_STATUS_CSS_RESETS_EXHAUSTED = 0xC000030B,
+ MD_NTSTATUS_WIN_STATUS_PASSWORD_CHANGE_REQUIRED = 0xC000030C,
+ MD_NTSTATUS_WIN_STATUS_LOST_MODE_LOGON_RESTRICTION = 0xC000030D,
+ MD_NTSTATUS_WIN_STATUS_PKINIT_FAILURE = 0xC0000320,
+ MD_NTSTATUS_WIN_STATUS_SMARTCARD_SUBSYSTEM_FAILURE = 0xC0000321,
+ MD_NTSTATUS_WIN_STATUS_NO_KERB_KEY = 0xC0000322,
+ MD_NTSTATUS_WIN_STATUS_HOST_DOWN = 0xC0000350,
+ MD_NTSTATUS_WIN_STATUS_UNSUPPORTED_PREAUTH = 0xC0000351,
+ MD_NTSTATUS_WIN_STATUS_EFS_ALG_BLOB_TOO_BIG = 0xC0000352,
+ MD_NTSTATUS_WIN_STATUS_PORT_NOT_SET = 0xC0000353,
+ MD_NTSTATUS_WIN_STATUS_DEBUGGER_INACTIVE = 0xC0000354,
+ MD_NTSTATUS_WIN_STATUS_DS_VERSION_CHECK_FAILURE = 0xC0000355,
+ MD_NTSTATUS_WIN_STATUS_AUDITING_DISABLED = 0xC0000356,
+ MD_NTSTATUS_WIN_STATUS_PRENT4_MACHINE_ACCOUNT = 0xC0000357,
+ MD_NTSTATUS_WIN_STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER = 0xC0000358,
+ MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_WIN_32 = 0xC0000359,
+ MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_WIN_64 = 0xC000035A,
+ MD_NTSTATUS_WIN_STATUS_BAD_BINDINGS = 0xC000035B,
+ MD_NTSTATUS_WIN_STATUS_NETWORK_SESSION_EXPIRED = 0xC000035C,
+ MD_NTSTATUS_WIN_STATUS_APPHELP_BLOCK = 0xC000035D,
+ MD_NTSTATUS_WIN_STATUS_ALL_SIDS_FILTERED = 0xC000035E,
+ MD_NTSTATUS_WIN_STATUS_NOT_SAFE_MODE_DRIVER = 0xC000035F,
+ MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT = 0xC0000361,
+ MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_BY_POLICY_PATH = 0xC0000362,
+ MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER = 0xC0000363,
+ MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_BY_POLICY_OTHER = 0xC0000364,
+ MD_NTSTATUS_WIN_STATUS_FAILED_DRIVER_ENTRY = 0xC0000365,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_ENUMERATION_ERROR = 0xC0000366,
+ MD_NTSTATUS_WIN_STATUS_MOUNT_POINT_NOT_RESOLVED = 0xC0000368,
+ MD_NTSTATUS_WIN_STATUS_INVALID_DEVICE_OBJECT_PARAMETER = 0xC0000369,
+ MD_NTSTATUS_WIN_STATUS_MCA_OCCURED = 0xC000036A,
+ MD_NTSTATUS_WIN_STATUS_DRIVER_BLOCKED_CRITICAL = 0xC000036B,
+ MD_NTSTATUS_WIN_STATUS_DRIVER_BLOCKED = 0xC000036C,
+ MD_NTSTATUS_WIN_STATUS_DRIVER_DATABASE_ERROR = 0xC000036D,
+ MD_NTSTATUS_WIN_STATUS_SYSTEM_HIVE_TOO_LARGE = 0xC000036E,
+ MD_NTSTATUS_WIN_STATUS_INVALID_IMPORT_OF_NON_DLL = 0xC000036F,
+ MD_NTSTATUS_WIN_STATUS_NO_SECRETS = 0xC0000371,
+ MD_NTSTATUS_WIN_STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY = 0xC0000372,
+ MD_NTSTATUS_WIN_STATUS_FAILED_STACK_SWITCH = 0xC0000373,
+ MD_NTSTATUS_WIN_STATUS_HEAP_CORRUPTION = 0xC0000374,
+ MD_NTSTATUS_WIN_STATUS_SMARTCARD_WRONG_PIN = 0xC0000380,
+ MD_NTSTATUS_WIN_STATUS_SMARTCARD_CARD_BLOCKED = 0xC0000381,
+ MD_NTSTATUS_WIN_STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED = 0xC0000382,
+ MD_NTSTATUS_WIN_STATUS_SMARTCARD_NO_CARD = 0xC0000383,
+ MD_NTSTATUS_WIN_STATUS_SMARTCARD_NO_KEY_CONTAINER = 0xC0000384,
+ MD_NTSTATUS_WIN_STATUS_SMARTCARD_NO_CERTIFICATE = 0xC0000385,
+ MD_NTSTATUS_WIN_STATUS_SMARTCARD_NO_KEYSET = 0xC0000386,
+ MD_NTSTATUS_WIN_STATUS_SMARTCARD_IO_ERROR = 0xC0000387,
+ MD_NTSTATUS_WIN_STATUS_DOWNGRADE_DETECTED = 0xC0000388,
+ MD_NTSTATUS_WIN_STATUS_SMARTCARD_CERT_REVOKED = 0xC0000389,
+ MD_NTSTATUS_WIN_STATUS_ISSUING_CA_UNTRUSTED = 0xC000038A,
+ MD_NTSTATUS_WIN_STATUS_REVOCATION_OFFLINE_C = 0xC000038B,
+ MD_NTSTATUS_WIN_STATUS_PKINIT_CLIENT_FAILURE = 0xC000038C,
+ MD_NTSTATUS_WIN_STATUS_SMARTCARD_CERT_EXPIRED = 0xC000038D,
+ MD_NTSTATUS_WIN_STATUS_DRIVER_FAILED_PRIOR_UNLOAD = 0xC000038E,
+ MD_NTSTATUS_WIN_STATUS_SMARTCARD_SILENT_CONTEXT = 0xC000038F,
+ MD_NTSTATUS_WIN_STATUS_PER_USER_TRUST_QUOTA_EXCEEDED = 0xC0000401,
+ MD_NTSTATUS_WIN_STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED = 0xC0000402,
+ MD_NTSTATUS_WIN_STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED = 0xC0000403,
+ MD_NTSTATUS_WIN_STATUS_DS_NAME_NOT_UNIQUE = 0xC0000404,
+ MD_NTSTATUS_WIN_STATUS_DS_DUPLICATE_ID_FOUND = 0xC0000405,
+ MD_NTSTATUS_WIN_STATUS_DS_GROUP_CONVERSION_ERROR = 0xC0000406,
+ MD_NTSTATUS_WIN_STATUS_VOLSNAP_PREPARE_HIBERNATE = 0xC0000407,
+ MD_NTSTATUS_WIN_STATUS_USER2USER_REQUIRED = 0xC0000408,
+ MD_NTSTATUS_WIN_STATUS_STACK_BUFFER_OVERRUN = 0xC0000409,
+ MD_NTSTATUS_WIN_STATUS_NO_S4U_PROT_SUPPORT = 0xC000040A,
+ MD_NTSTATUS_WIN_STATUS_CROSSREALM_DELEGATION_FAILURE = 0xC000040B,
+ MD_NTSTATUS_WIN_STATUS_REVOCATION_OFFLINE_KDC = 0xC000040C,
+ MD_NTSTATUS_WIN_STATUS_ISSUING_CA_UNTRUSTED_KDC = 0xC000040D,
+ MD_NTSTATUS_WIN_STATUS_KDC_CERT_EXPIRED = 0xC000040E,
+ MD_NTSTATUS_WIN_STATUS_KDC_CERT_REVOKED = 0xC000040F,
+ MD_NTSTATUS_WIN_STATUS_PARAMETER_QUOTA_EXCEEDED = 0xC0000410,
+ MD_NTSTATUS_WIN_STATUS_HIBERNATION_FAILURE = 0xC0000411,
+ MD_NTSTATUS_WIN_STATUS_DELAY_LOAD_FAILED = 0xC0000412,
+ MD_NTSTATUS_WIN_STATUS_AUTHENTICATION_FIREWALL_FAILED = 0xC0000413,
+ MD_NTSTATUS_WIN_STATUS_VDM_DISALLOWED = 0xC0000414,
+ MD_NTSTATUS_WIN_STATUS_HUNG_DISPLAY_DRIVER_THREAD = 0xC0000415,
+ MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE = 0xC0000416,
+ MD_NTSTATUS_WIN_STATUS_INVALID_CRUNTIME_PARAMETER = 0xC0000417,
+ MD_NTSTATUS_WIN_STATUS_NTLM_BLOCKED = 0xC0000418,
+ MD_NTSTATUS_WIN_STATUS_DS_SRC_SID_EXISTS_IN_FOREST = 0xC0000419,
+ MD_NTSTATUS_WIN_STATUS_DS_DOMAIN_NAME_EXISTS_IN_FOREST = 0xC000041A,
+ MD_NTSTATUS_WIN_STATUS_DS_FLAT_NAME_EXISTS_IN_FOREST = 0xC000041B,
+ MD_NTSTATUS_WIN_STATUS_INVALID_USER_PRINCIPAL_NAME = 0xC000041C,
+ MD_NTSTATUS_WIN_STATUS_FATAL_USER_CALLBACK_EXCEPTION = 0xC000041D,
+ MD_NTSTATUS_WIN_STATUS_ASSERTION_FAILURE = 0xC0000420,
+ MD_NTSTATUS_WIN_STATUS_VERIFIER_STOP = 0xC0000421,
+ MD_NTSTATUS_WIN_STATUS_CALLBACK_POP_STACK = 0xC0000423,
+ MD_NTSTATUS_WIN_STATUS_INCOMPATIBLE_DRIVER_BLOCKED = 0xC0000424,
+ MD_NTSTATUS_WIN_STATUS_HIVE_UNLOADED = 0xC0000425,
+ MD_NTSTATUS_WIN_STATUS_COMPRESSION_DISABLED = 0xC0000426,
+ MD_NTSTATUS_WIN_STATUS_FILE_SYSTEM_LIMITATION = 0xC0000427,
+ MD_NTSTATUS_WIN_STATUS_INVALID_IMAGE_HASH = 0xC0000428,
+ MD_NTSTATUS_WIN_STATUS_NOT_CAPABLE = 0xC0000429,
+ MD_NTSTATUS_WIN_STATUS_REQUEST_OUT_OF_SEQUENCE = 0xC000042A,
+ MD_NTSTATUS_WIN_STATUS_IMPLEMENTATION_LIMIT = 0xC000042B,
+ MD_NTSTATUS_WIN_STATUS_ELEVATION_REQUIRED = 0xC000042C,
+ MD_NTSTATUS_WIN_STATUS_NO_SECURITY_CONTEXT = 0xC000042D,
+ MD_NTSTATUS_WIN_STATUS_PKU2U_CERT_FAILURE = 0xC000042F,
+ MD_NTSTATUS_WIN_STATUS_BEYOND_VDL = 0xC0000432,
+ MD_NTSTATUS_WIN_STATUS_ENCOUNTERED_WRITE_IN_PROGRESS = 0xC0000433,
+ MD_NTSTATUS_WIN_STATUS_PTE_CHANGED = 0xC0000434,
+ MD_NTSTATUS_WIN_STATUS_PURGE_FAILED = 0xC0000435,
+ MD_NTSTATUS_WIN_STATUS_CRED_REQUIRES_CONFIRMATION = 0xC0000440,
+ MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE = 0xC0000441,
+ MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER = 0xC0000442,
+ MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE = 0xC0000443,
+ MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE = 0xC0000444,
+ MD_NTSTATUS_WIN_STATUS_CS_ENCRYPTION_FILE_NOT_CSE = 0xC0000445,
+ MD_NTSTATUS_WIN_STATUS_INVALID_LABEL = 0xC0000446,
+ MD_NTSTATUS_WIN_STATUS_DRIVER_PROCESS_TERMINATED = 0xC0000450,
+ MD_NTSTATUS_WIN_STATUS_AMBIGUOUS_SYSTEM_DEVICE = 0xC0000451,
+ MD_NTSTATUS_WIN_STATUS_SYSTEM_DEVICE_NOT_FOUND = 0xC0000452,
+ MD_NTSTATUS_WIN_STATUS_RESTART_BOOT_APPLICATION = 0xC0000453,
+ MD_NTSTATUS_WIN_STATUS_INSUFFICIENT_NVRAM_RESOURCES = 0xC0000454,
+ MD_NTSTATUS_WIN_STATUS_INVALID_SESSION = 0xC0000455,
+ MD_NTSTATUS_WIN_STATUS_THREAD_ALREADY_IN_SESSION = 0xC0000456,
+ MD_NTSTATUS_WIN_STATUS_THREAD_NOT_IN_SESSION = 0xC0000457,
+ MD_NTSTATUS_WIN_STATUS_INVALID_WEIGHT = 0xC0000458,
+ MD_NTSTATUS_WIN_STATUS_REQUEST_PAUSED = 0xC0000459,
+ MD_NTSTATUS_WIN_STATUS_NO_RANGES_PROCESSED = 0xC0000460,
+ MD_NTSTATUS_WIN_STATUS_DISK_RESOURCES_EXHAUSTED = 0xC0000461,
+ MD_NTSTATUS_WIN_STATUS_NEEDS_REMEDIATION = 0xC0000462,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_FEATURE_NOT_SUPPORTED = 0xC0000463,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_UNREACHABLE = 0xC0000464,
+ MD_NTSTATUS_WIN_STATUS_INVALID_TOKEN = 0xC0000465,
+ MD_NTSTATUS_WIN_STATUS_SERVER_UNAVAILABLE = 0xC0000466,
+ MD_NTSTATUS_WIN_STATUS_FILE_NOT_AVAILABLE = 0xC0000467,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_INSUFFICIENT_RESOURCES = 0xC0000468,
+ MD_NTSTATUS_WIN_STATUS_PACKAGE_UPDATING = 0xC0000469,
+ MD_NTSTATUS_WIN_STATUS_NOT_READ_FROM_COPY = 0xC000046A,
+ MD_NTSTATUS_WIN_STATUS_FT_WRITE_FAILURE = 0xC000046B,
+ MD_NTSTATUS_WIN_STATUS_FT_DI_SCAN_REQUIRED = 0xC000046C,
+ MD_NTSTATUS_WIN_STATUS_OBJECT_NOT_EXTERNALLY_BACKED = 0xC000046D,
+ MD_NTSTATUS_WIN_STATUS_EXTERNAL_BACKING_PROVIDER_UNKNOWN = 0xC000046E,
+ MD_NTSTATUS_WIN_STATUS_COMPRESSION_NOT_BENEFICIAL = 0xC000046F,
+ MD_NTSTATUS_WIN_STATUS_DATA_CHECKSUM_ERROR = 0xC0000470,
+ MD_NTSTATUS_WIN_STATUS_INTERMIXED_KERNEL_EA_OPERATION = 0xC0000471,
+ MD_NTSTATUS_WIN_STATUS_TRIM_READ_ZERO_NOT_SUPPORTED = 0xC0000472,
+ MD_NTSTATUS_WIN_STATUS_TOO_MANY_SEGMENT_DESCRIPTORS = 0xC0000473,
+ MD_NTSTATUS_WIN_STATUS_INVALID_OFFSET_ALIGNMENT = 0xC0000474,
+ MD_NTSTATUS_WIN_STATUS_INVALID_FIELD_IN_PARAMETER_LIST = 0xC0000475,
+ MD_NTSTATUS_WIN_STATUS_OPERATION_IN_PROGRESS = 0xC0000476,
+ MD_NTSTATUS_WIN_STATUS_INVALID_INITIATOR_TARGET_PATH = 0xC0000477,
+ MD_NTSTATUS_WIN_STATUS_SCRUB_DATA_DISABLED = 0xC0000478,
+ MD_NTSTATUS_WIN_STATUS_NOT_REDUNDANT_STORAGE = 0xC0000479,
+ MD_NTSTATUS_WIN_STATUS_RESIDENT_FILE_NOT_SUPPORTED = 0xC000047A,
+ MD_NTSTATUS_WIN_STATUS_COMPRESSED_FILE_NOT_SUPPORTED = 0xC000047B,
+ MD_NTSTATUS_WIN_STATUS_DIRECTORY_NOT_SUPPORTED = 0xC000047C,
+ MD_NTSTATUS_WIN_STATUS_IO_OPERATION_TIMEOUT = 0xC000047D,
+ MD_NTSTATUS_WIN_STATUS_SYSTEM_NEEDS_REMEDIATION = 0xC000047E,
+ MD_NTSTATUS_WIN_STATUS_APPX_INTEGRITY_FAILURE_CLR_NGEN = 0xC000047F,
+ MD_NTSTATUS_WIN_STATUS_SHARE_UNAVAILABLE = 0xC0000480,
+ MD_NTSTATUS_WIN_STATUS_APISET_NOT_HOSTED = 0xC0000481,
+ MD_NTSTATUS_WIN_STATUS_APISET_NOT_PRESENT = 0xC0000482,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_HARDWARE_ERROR = 0xC0000483,
+ MD_NTSTATUS_WIN_STATUS_FIRMWARE_SLOT_INVALID = 0xC0000484,
+ MD_NTSTATUS_WIN_STATUS_FIRMWARE_IMAGE_INVALID = 0xC0000485,
+ MD_NTSTATUS_WIN_STATUS_STORAGE_TOPOLOGY_ID_MISMATCH = 0xC0000486,
+ MD_NTSTATUS_WIN_STATUS_WIM_NOT_BOOTABLE = 0xC0000487,
+ MD_NTSTATUS_WIN_STATUS_BLOCKED_BY_PARENTAL_CONTROLS = 0xC0000488,
+ MD_NTSTATUS_WIN_STATUS_NEEDS_REGISTRATION = 0xC0000489,
+ MD_NTSTATUS_WIN_STATUS_QUOTA_ACTIVITY = 0xC000048A,
+ MD_NTSTATUS_WIN_STATUS_CALLBACK_INVOKE_INLINE = 0xC000048B,
+ MD_NTSTATUS_WIN_STATUS_BLOCK_TOO_MANY_REFERENCES = 0xC000048C,
+ MD_NTSTATUS_WIN_STATUS_MARKED_TO_DISALLOW_WRITES = 0xC000048D,
+ MD_NTSTATUS_WIN_STATUS_NETWORK_ACCESS_DENIED_EDP = 0xC000048E,
+ MD_NTSTATUS_WIN_STATUS_ENCLAVE_FAILURE = 0xC000048F,
+ MD_NTSTATUS_WIN_STATUS_PNP_NO_COMPAT_DRIVERS = 0xC0000490,
+ MD_NTSTATUS_WIN_STATUS_PNP_DRIVER_PACKAGE_NOT_FOUND = 0xC0000491,
+ MD_NTSTATUS_WIN_STATUS_PNP_DRIVER_CONFIGURATION_NOT_FOUND = 0xC0000492,
+ MD_NTSTATUS_WIN_STATUS_PNP_DRIVER_CONFIGURATION_INCOMPLETE = 0xC0000493,
+ MD_NTSTATUS_WIN_STATUS_PNP_FUNCTION_DRIVER_REQUIRED = 0xC0000494,
+ MD_NTSTATUS_WIN_STATUS_PNP_DEVICE_CONFIGURATION_PENDING = 0xC0000495,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_HINT_NAME_BUFFER_TOO_SMALL = 0xC0000496,
+ MD_NTSTATUS_WIN_STATUS_PACKAGE_NOT_AVAILABLE = 0xC0000497,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_IN_MAINTENANCE = 0xC0000499,
+ MD_NTSTATUS_WIN_STATUS_NOT_SUPPORTED_ON_DAX = 0xC000049A,
+ MD_NTSTATUS_WIN_STATUS_FREE_SPACE_TOO_FRAGMENTED = 0xC000049B,
+ MD_NTSTATUS_WIN_STATUS_DAX_MAPPING_EXISTS = 0xC000049C,
+ MD_NTSTATUS_WIN_STATUS_CHILD_PROCESS_BLOCKED = 0xC000049D,
+ MD_NTSTATUS_WIN_STATUS_STORAGE_LOST_DATA_PERSISTENCE = 0xC000049E,
+ MD_NTSTATUS_WIN_STATUS_VRF_CFG_AND_IO_ENABLED = 0xC000049F,
+ MD_NTSTATUS_WIN_STATUS_PARTITION_TERMINATING = 0xC00004A0,
+ MD_NTSTATUS_WIN_STATUS_EXTERNAL_SYSKEY_NOT_SUPPORTED = 0xC00004A1,
+ MD_NTSTATUS_WIN_STATUS_ENCLAVE_VIOLATION = 0xC00004A2,
+ MD_NTSTATUS_WIN_STATUS_FILE_PROTECTED_UNDER_DPL = 0xC00004A3,
+ MD_NTSTATUS_WIN_STATUS_VOLUME_NOT_CLUSTER_ALIGNED = 0xC00004A4,
+ MD_NTSTATUS_WIN_STATUS_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND = 0xC00004A5,
+ MD_NTSTATUS_WIN_STATUS_APPX_FILE_NOT_ENCRYPTED = 0xC00004A6,
+ MD_NTSTATUS_WIN_STATUS_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED = 0xC00004A7,
+ MD_NTSTATUS_WIN_STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET = 0xC00004A8,
+ MD_NTSTATUS_WIN_STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE = 0xC00004A9,
+ MD_NTSTATUS_WIN_STATUS_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER = 0xC00004AA,
+ MD_NTSTATUS_WIN_STATUS_FT_READ_FAILURE = 0xC00004AB,
+ MD_NTSTATUS_WIN_STATUS_PATCH_CONFLICT = 0xC00004AC,
+ MD_NTSTATUS_WIN_STATUS_STORAGE_RESERVE_ID_INVALID = 0xC00004AD,
+ MD_NTSTATUS_WIN_STATUS_STORAGE_RESERVE_DOES_NOT_EXIST = 0xC00004AE,
+ MD_NTSTATUS_WIN_STATUS_STORAGE_RESERVE_ALREADY_EXISTS = 0xC00004AF,
+ MD_NTSTATUS_WIN_STATUS_STORAGE_RESERVE_NOT_EMPTY = 0xC00004B0,
+ MD_NTSTATUS_WIN_STATUS_NOT_A_DAX_VOLUME = 0xC00004B1,
+ MD_NTSTATUS_WIN_STATUS_NOT_DAX_MAPPABLE = 0xC00004B2,
+ MD_NTSTATUS_WIN_STATUS_CASE_DIFFERING_NAMES_IN_DIR = 0xC00004B3,
+ MD_NTSTATUS_WIN_STATUS_FILE_NOT_SUPPORTED = 0xC00004B4,
+ MD_NTSTATUS_WIN_STATUS_NOT_SUPPORTED_WITH_BTT = 0xC00004B5,
+ MD_NTSTATUS_WIN_STATUS_ENCRYPTION_DISABLED = 0xC00004B6,
+ MD_NTSTATUS_WIN_STATUS_ENCRYPTING_METADATA_DISALLOWED = 0xC00004B7,
+ MD_NTSTATUS_WIN_STATUS_CANT_CLEAR_ENCRYPTION_FLAG = 0xC00004B8,
+ MD_NTSTATUS_WIN_STATUS_UNSATISFIED_DEPENDENCIES = 0xC00004B9,
+ MD_NTSTATUS_WIN_STATUS_CASE_SENSITIVE_PATH = 0xC00004BA,
+ MD_NTSTATUS_WIN_STATUS_HAS_SYSTEM_CRITICAL_FILES = 0xC00004BD,
+ MD_NTSTATUS_WIN_STATUS_INVALID_TASK_NAME = 0xC0000500,
+ MD_NTSTATUS_WIN_STATUS_INVALID_TASK_INDEX = 0xC0000501,
+ MD_NTSTATUS_WIN_STATUS_THREAD_ALREADY_IN_TASK = 0xC0000502,
+ MD_NTSTATUS_WIN_STATUS_CALLBACK_BYPASS = 0xC0000503,
+ MD_NTSTATUS_WIN_STATUS_UNDEFINED_SCOPE = 0xC0000504,
+ MD_NTSTATUS_WIN_STATUS_INVALID_CAP = 0xC0000505,
+ MD_NTSTATUS_WIN_STATUS_NOT_GUI_PROCESS = 0xC0000506,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_HUNG = 0xC0000507,
+ MD_NTSTATUS_WIN_STATUS_CONTAINER_ASSIGNED = 0xC0000508,
+ MD_NTSTATUS_WIN_STATUS_JOB_NO_CONTAINER = 0xC0000509,
+ MD_NTSTATUS_WIN_STATUS_DEVICE_UNRESPONSIVE = 0xC000050A,
+ MD_NTSTATUS_WIN_STATUS_REPARSE_POINT_ENCOUNTERED = 0xC000050B,
+ MD_NTSTATUS_WIN_STATUS_ATTRIBUTE_NOT_PRESENT = 0xC000050C,
+ MD_NTSTATUS_WIN_STATUS_NOT_A_TIERED_VOLUME = 0xC000050D,
+ MD_NTSTATUS_WIN_STATUS_ALREADY_HAS_STREAM_ID = 0xC000050E,
+ MD_NTSTATUS_WIN_STATUS_JOB_NOT_EMPTY = 0xC000050F,
+ MD_NTSTATUS_WIN_STATUS_ALREADY_INITIALIZED = 0xC0000510,
+ MD_NTSTATUS_WIN_STATUS_ENCLAVE_NOT_TERMINATED = 0xC0000511,
+ MD_NTSTATUS_WIN_STATUS_ENCLAVE_IS_TERMINATING = 0xC0000512,
+ MD_NTSTATUS_WIN_STATUS_SMB1_NOT_AVAILABLE = 0xC0000513,
+ MD_NTSTATUS_WIN_STATUS_SMR_GARBAGE_COLLECTION_REQUIRED = 0xC0000514,
+ MD_NTSTATUS_WIN_STATUS_INTERRUPTED = 0xC0000515,
+ MD_NTSTATUS_WIN_STATUS_THREAD_NOT_RUNNING = 0xC0000516,
+ MD_NTSTATUS_WIN_STATUS_FAIL_FAST_EXCEPTION = 0xC0000602,
+ MD_NTSTATUS_WIN_STATUS_IMAGE_CERT_REVOKED = 0xC0000603,
+ MD_NTSTATUS_WIN_STATUS_DYNAMIC_CODE_BLOCKED = 0xC0000604,
+ MD_NTSTATUS_WIN_STATUS_IMAGE_CERT_EXPIRED = 0xC0000605,
+ MD_NTSTATUS_WIN_STATUS_STRICT_CFG_VIOLATION = 0xC0000606,
+ MD_NTSTATUS_WIN_STATUS_SET_CONTEXT_DENIED = 0xC000060A,
+ MD_NTSTATUS_WIN_STATUS_CROSS_PARTITION_VIOLATION = 0xC000060B,
+ MD_NTSTATUS_WIN_STATUS_PORT_CLOSED = 0xC0000700,
+ MD_NTSTATUS_WIN_STATUS_MESSAGE_LOST = 0xC0000701,
+ MD_NTSTATUS_WIN_STATUS_INVALID_MESSAGE = 0xC0000702,
+ MD_NTSTATUS_WIN_STATUS_REQUEST_CANCELED = 0xC0000703,
+ MD_NTSTATUS_WIN_STATUS_RECURSIVE_DISPATCH = 0xC0000704,
+ MD_NTSTATUS_WIN_STATUS_LPC_RECEIVE_BUFFER_EXPECTED = 0xC0000705,
+ MD_NTSTATUS_WIN_STATUS_LPC_INVALID_CONNECTION_USAGE = 0xC0000706,
+ MD_NTSTATUS_WIN_STATUS_LPC_REQUESTS_NOT_ALLOWED = 0xC0000707,
+ MD_NTSTATUS_WIN_STATUS_RESOURCE_IN_USE = 0xC0000708,
+ MD_NTSTATUS_WIN_STATUS_HARDWARE_MEMORY_ERROR = 0xC0000709,
+ MD_NTSTATUS_WIN_STATUS_THREADPOOL_HANDLE_EXCEPTION = 0xC000070A,
+ MD_NTSTATUS_WIN_STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED = 0xC000070B,
+ MD_NTSTATUS_WIN_STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED = 0xC000070C,
+ MD_NTSTATUS_WIN_STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED = 0xC000070D,
+ MD_NTSTATUS_WIN_STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED = 0xC000070E,
+ MD_NTSTATUS_WIN_STATUS_THREADPOOL_RELEASED_DURING_OPERATION = 0xC000070F,
+ MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING = 0xC0000710,
+ MD_NTSTATUS_WIN_STATUS_APC_RETURNED_WHILE_IMPERSONATING = 0xC0000711,
+ MD_NTSTATUS_WIN_STATUS_PROCESS_IS_PROTECTED = 0xC0000712,
+ MD_NTSTATUS_WIN_STATUS_MCA_EXCEPTION = 0xC0000713,
+ MD_NTSTATUS_WIN_STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE = 0xC0000714,
+ MD_NTSTATUS_WIN_STATUS_SYMLINK_CLASS_DISABLED = 0xC0000715,
+ MD_NTSTATUS_WIN_STATUS_INVALID_IDN_NORMALIZATION = 0xC0000716,
+ MD_NTSTATUS_WIN_STATUS_NO_UNICODE_TRANSLATION = 0xC0000717,
+ MD_NTSTATUS_WIN_STATUS_ALREADY_REGISTERED = 0xC0000718,
+ MD_NTSTATUS_WIN_STATUS_CONTEXT_MISMATCH = 0xC0000719,
+ MD_NTSTATUS_WIN_STATUS_PORT_ALREADY_HAS_COMPLETION_LIST = 0xC000071A,
+ MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_THREAD_PRIORITY = 0xC000071B,
+ MD_NTSTATUS_WIN_STATUS_INVALID_THREAD = 0xC000071C,
+ MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_TRANSACTION = 0xC000071D,
+ MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_LDR_LOCK = 0xC000071E,
+ MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_LANG = 0xC000071F,
+ MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_PRI_BACK = 0xC0000720,
+ MD_NTSTATUS_WIN_STATUS_CALLBACK_RETURNED_THREAD_AFFINITY = 0xC0000721,
+ MD_NTSTATUS_WIN_STATUS_LPC_HANDLE_COUNT_EXCEEDED = 0xC0000722,
+ MD_NTSTATUS_WIN_STATUS_EXECUTABLE_MEMORY_WRITE = 0xC0000723,
+ MD_NTSTATUS_WIN_STATUS_KERNEL_EXECUTABLE_MEMORY_WRITE = 0xC0000724,
+ MD_NTSTATUS_WIN_STATUS_ATTACHED_EXECUTABLE_MEMORY_WRITE = 0xC0000725,
+ MD_NTSTATUS_WIN_STATUS_TRIGGERED_EXECUTABLE_MEMORY_WRITE = 0xC0000726,
+ MD_NTSTATUS_WIN_STATUS_DISK_REPAIR_DISABLED = 0xC0000800,
+ MD_NTSTATUS_WIN_STATUS_DS_DOMAIN_RENAME_IN_PROGRESS = 0xC0000801,
+ MD_NTSTATUS_WIN_STATUS_DISK_QUOTA_EXCEEDED = 0xC0000802,
+ MD_NTSTATUS_WIN_STATUS_CONTENT_BLOCKED = 0xC0000804,
+ MD_NTSTATUS_WIN_STATUS_BAD_CLUSTERS = 0xC0000805,
+ MD_NTSTATUS_WIN_STATUS_VOLUME_DIRTY = 0xC0000806,
+ MD_NTSTATUS_WIN_STATUS_DISK_REPAIR_UNSUCCESSFUL = 0xC0000808,
+ MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_OVERFULL = 0xC0000809,
+ MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_CORRUPTED = 0xC000080A,
+ MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_UNAVAILABLE = 0xC000080B,
+ MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_DELETED_FULL = 0xC000080C,
+ MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_CLEARED = 0xC000080D,
+ MD_NTSTATUS_WIN_STATUS_ORPHAN_NAME_EXHAUSTED = 0xC000080E,
+ MD_NTSTATUS_WIN_STATUS_PROACTIVE_SCAN_IN_PROGRESS = 0xC000080F,
+ MD_NTSTATUS_WIN_STATUS_ENCRYPTED_IO_NOT_POSSIBLE = 0xC0000810,
+ MD_NTSTATUS_WIN_STATUS_CORRUPT_LOG_UPLEVEL_RECORDS = 0xC0000811,
+ MD_NTSTATUS_WIN_STATUS_FILE_CHECKED_OUT = 0xC0000901,
+ MD_NTSTATUS_WIN_STATUS_CHECKOUT_REQUIRED = 0xC0000902,
+ MD_NTSTATUS_WIN_STATUS_BAD_FILE_TYPE = 0xC0000903,
+ MD_NTSTATUS_WIN_STATUS_FILE_TOO_LARGE = 0xC0000904,
+ MD_NTSTATUS_WIN_STATUS_FORMS_AUTH_REQUIRED = 0xC0000905,
+ MD_NTSTATUS_WIN_STATUS_VIRUS_INFECTED = 0xC0000906,
+ MD_NTSTATUS_WIN_STATUS_VIRUS_DELETED = 0xC0000907,
+ MD_NTSTATUS_WIN_STATUS_BAD_MCFG_TABLE = 0xC0000908,
+ MD_NTSTATUS_WIN_STATUS_CANNOT_BREAK_OPLOCK = 0xC0000909,
+ MD_NTSTATUS_WIN_STATUS_BAD_KEY = 0xC000090A,
+ MD_NTSTATUS_WIN_STATUS_BAD_DATA = 0xC000090B,
+ MD_NTSTATUS_WIN_STATUS_NO_KEY = 0xC000090C,
+ MD_NTSTATUS_WIN_STATUS_FILE_HANDLE_REVOKED = 0xC0000910,
+ MD_NTSTATUS_WIN_STATUS_WOW_ASSERTION = 0xC0009898,
+ MD_NTSTATUS_WIN_STATUS_INVALID_SIGNATURE = 0xC000A000,
+ MD_NTSTATUS_WIN_STATUS_HMAC_NOT_SUPPORTED = 0xC000A001,
+ MD_NTSTATUS_WIN_STATUS_AUTH_TAG_MISMATCH = 0xC000A002,
+ MD_NTSTATUS_WIN_STATUS_INVALID_STATE_TRANSITION = 0xC000A003,
+ MD_NTSTATUS_WIN_STATUS_INVALID_KERNEL_INFO_VERSION = 0xC000A004,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PEP_INFO_VERSION = 0xC000A005,
+ MD_NTSTATUS_WIN_STATUS_HANDLE_REVOKED = 0xC000A006,
+ MD_NTSTATUS_WIN_STATUS_EOF_ON_GHOSTED_RANGE = 0xC000A007,
+ MD_NTSTATUS_WIN_STATUS_CC_NEEDS_CALLBACK_SECTION_DRAIN = 0xC000A008,
+ MD_NTSTATUS_WIN_STATUS_IPSEC_QUEUE_OVERFLOW = 0xC000A010,
+ MD_NTSTATUS_WIN_STATUS_ND_QUEUE_OVERFLOW = 0xC000A011,
+ MD_NTSTATUS_WIN_STATUS_HOPLIMIT_EXCEEDED = 0xC000A012,
+ MD_NTSTATUS_WIN_STATUS_PROTOCOL_NOT_SUPPORTED = 0xC000A013,
+ MD_NTSTATUS_WIN_STATUS_FASTPATH_REJECTED = 0xC000A014,
+ MD_NTSTATUS_WIN_STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED = 0xC000A080,
+ MD_NTSTATUS_WIN_STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR = 0xC000A081,
+ MD_NTSTATUS_WIN_STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR = 0xC000A082,
+ MD_NTSTATUS_WIN_STATUS_XML_PARSE_ERROR = 0xC000A083,
+ MD_NTSTATUS_WIN_STATUS_XMLDSIG_ERROR = 0xC000A084,
+ MD_NTSTATUS_WIN_STATUS_WRONG_COMPARTMENT = 0xC000A085,
+ MD_NTSTATUS_WIN_STATUS_AUTHIP_FAILURE = 0xC000A086,
+ MD_NTSTATUS_WIN_STATUS_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS = 0xC000A087,
+ MD_NTSTATUS_WIN_STATUS_DS_OID_NOT_FOUND = 0xC000A088,
+ MD_NTSTATUS_WIN_STATUS_INCORRECT_ACCOUNT_TYPE = 0xC000A089,
+ MD_NTSTATUS_WIN_STATUS_HASH_NOT_SUPPORTED = 0xC000A100,
+ MD_NTSTATUS_WIN_STATUS_HASH_NOT_PRESENT = 0xC000A101,
+ MD_NTSTATUS_WIN_STATUS_SECONDARY_IC_PROVIDER_NOT_REGISTERED = 0xC000A121,
+ MD_NTSTATUS_WIN_STATUS_GPIO_CLIENT_INFORMATION_INVALID = 0xC000A122,
+ MD_NTSTATUS_WIN_STATUS_GPIO_VERSION_NOT_SUPPORTED = 0xC000A123,
+ MD_NTSTATUS_WIN_STATUS_GPIO_INVALID_REGISTRATION_PACKET = 0xC000A124,
+ MD_NTSTATUS_WIN_STATUS_GPIO_OPERATION_DENIED = 0xC000A125,
+ MD_NTSTATUS_WIN_STATUS_GPIO_INCOMPATIBLE_CONNECT_MODE = 0xC000A126,
+ MD_NTSTATUS_WIN_STATUS_CANNOT_SWITCH_RUNLEVEL = 0xC000A141,
+ MD_NTSTATUS_WIN_STATUS_INVALID_RUNLEVEL_SETTING = 0xC000A142,
+ MD_NTSTATUS_WIN_STATUS_RUNLEVEL_SWITCH_TIMEOUT = 0xC000A143,
+ MD_NTSTATUS_WIN_STATUS_RUNLEVEL_SWITCH_AGENT_TIMEOUT = 0xC000A145,
+ MD_NTSTATUS_WIN_STATUS_RUNLEVEL_SWITCH_IN_PROGRESS = 0xC000A146,
+ MD_NTSTATUS_WIN_STATUS_NOT_APPCONTAINER = 0xC000A200,
+ MD_NTSTATUS_WIN_STATUS_NOT_SUPPORTED_IN_APPCONTAINER = 0xC000A201,
+ MD_NTSTATUS_WIN_STATUS_INVALID_PACKAGE_SID_LENGTH = 0xC000A202,
+ MD_NTSTATUS_WIN_STATUS_LPAC_ACCESS_DENIED = 0xC000A203,
+ MD_NTSTATUS_WIN_STATUS_ADMINLESS_ACCESS_DENIED = 0xC000A204,
+ MD_NTSTATUS_WIN_STATUS_APP_DATA_NOT_FOUND = 0xC000A281,
+ MD_NTSTATUS_WIN_STATUS_APP_DATA_EXPIRED = 0xC000A282,
+ MD_NTSTATUS_WIN_STATUS_APP_DATA_CORRUPT = 0xC000A283,
+ MD_NTSTATUS_WIN_STATUS_APP_DATA_LIMIT_EXCEEDED = 0xC000A284,
+ MD_NTSTATUS_WIN_STATUS_APP_DATA_REBOOT_REQUIRED = 0xC000A285,
+ MD_NTSTATUS_WIN_STATUS_OFFLOAD_READ_FLT_NOT_SUPPORTED = 0xC000A2A1,
+ MD_NTSTATUS_WIN_STATUS_OFFLOAD_WRITE_FLT_NOT_SUPPORTED = 0xC000A2A2,
+ MD_NTSTATUS_WIN_STATUS_OFFLOAD_READ_FILE_NOT_SUPPORTED = 0xC000A2A3,
+ MD_NTSTATUS_WIN_STATUS_OFFLOAD_WRITE_FILE_NOT_SUPPORTED = 0xC000A2A4,
+ MD_NTSTATUS_WIN_STATUS_WOF_WIM_HEADER_CORRUPT = 0xC000A2A5,
+ MD_NTSTATUS_WIN_STATUS_WOF_WIM_RESOURCE_TABLE_CORRUPT = 0xC000A2A6,
+ MD_NTSTATUS_WIN_STATUS_WOF_FILE_RESOURCE_TABLE_CORRUPT = 0xC000A2A7,
+ MD_NTSTATUS_WIN_STATUS_CIMFS_IMAGE_CORRUPT = 0xC000C001,
+ MD_NTSTATUS_WIN_STATUS_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE = 0xC000CE01,
+ MD_NTSTATUS_WIN_STATUS_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT = 0xC000CE02,
+ MD_NTSTATUS_WIN_STATUS_FILE_SYSTEM_VIRTUALIZATION_BUSY = 0xC000CE03,
+ MD_NTSTATUS_WIN_STATUS_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN = 0xC000CE04,
+ MD_NTSTATUS_WIN_STATUS_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION = 0xC000CE05,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT = 0xC000CF00,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_PROVIDER_NOT_RUNNING = 0xC000CF01,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_METADATA_CORRUPT = 0xC000CF02,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_METADATA_TOO_LARGE = 0xC000CF03,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED = 0xC000CF06,
+ MD_NTSTATUS_WIN_STATUS_NOT_A_CLOUD_FILE = 0xC000CF07,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_NOT_IN_SYNC = 0xC000CF08,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_ALREADY_CONNECTED = 0xC000CF09,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_NOT_SUPPORTED = 0xC000CF0A,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_INVALID_REQUEST = 0xC000CF0B,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_READ_ONLY_VOLUME = 0xC000CF0C,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_CONNECTED_PROVIDER_ONLY = 0xC000CF0D,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_VALIDATION_FAILED = 0xC000CF0E,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_AUTHENTICATION_FAILED = 0xC000CF0F,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_INSUFFICIENT_RESOURCES = 0xC000CF10,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_NETWORK_UNAVAILABLE = 0xC000CF11,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_UNSUCCESSFUL = 0xC000CF12,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_NOT_UNDER_SYNC_ROOT = 0xC000CF13,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_IN_USE = 0xC000CF14,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_PINNED = 0xC000CF15,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_REQUEST_ABORTED = 0xC000CF16,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_PROPERTY_CORRUPT = 0xC000CF17,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_ACCESS_DENIED = 0xC000CF18,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_INCOMPATIBLE_HARDLINKS = 0xC000CF19,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_PROPERTY_LOCK_CONFLICT = 0xC000CF1A,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_REQUEST_CANCELED = 0xC000CF1B,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_PROVIDER_TERMINATED = 0xC000CF1D,
+ MD_NTSTATUS_WIN_STATUS_NOT_A_CLOUD_SYNC_ROOT = 0xC000CF1E,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_REQUEST_TIMEOUT = 0xC000CF1F,
+ MD_NTSTATUS_WIN_STATUS_CLOUD_FILE_DEHYDRATION_DISALLOWED = 0xC000CF20,
+ MD_NTSTATUS_WIN_STATUS_FILE_SNAP_IN_PROGRESS = 0xC000F500,
+ MD_NTSTATUS_WIN_STATUS_FILE_SNAP_USER_SECTION_NOT_SUPPORTED = 0xC000F501,
+ MD_NTSTATUS_WIN_STATUS_FILE_SNAP_MODIFY_NOT_SUPPORTED = 0xC000F502,
+ MD_NTSTATUS_WIN_STATUS_FILE_SNAP_IO_NOT_COORDINATED = 0xC000F503,
+ MD_NTSTATUS_WIN_STATUS_FILE_SNAP_UNEXPECTED_ERROR = 0xC000F504,
+ MD_NTSTATUS_WIN_STATUS_FILE_SNAP_INVALID_PARAMETER = 0xC000F505,
+ MD_NTSTATUS_WIN_DBG_NO_STATE_CHANGE = 0xC0010001,
+ MD_NTSTATUS_WIN_DBG_APP_NOT_IDLE = 0xC0010002,
+ MD_NTSTATUS_WIN_RPC_NT_INVALID_STRING_BINDING = 0xC0020001,
+ MD_NTSTATUS_WIN_RPC_NT_WRONG_KIND_OF_BINDING = 0xC0020002,
+ MD_NTSTATUS_WIN_RPC_NT_INVALID_BINDING = 0xC0020003,
+ MD_NTSTATUS_WIN_RPC_NT_PROTSEQ_NOT_SUPPORTED = 0xC0020004,
+ MD_NTSTATUS_WIN_RPC_NT_INVALID_RPC_PROTSEQ = 0xC0020005,
+ MD_NTSTATUS_WIN_RPC_NT_INVALID_STRING_UUID = 0xC0020006,
+ MD_NTSTATUS_WIN_RPC_NT_INVALID_ENDPOINT_FORMAT = 0xC0020007,
+ MD_NTSTATUS_WIN_RPC_NT_INVALID_NET_ADDR = 0xC0020008,
+ MD_NTSTATUS_WIN_RPC_NT_NO_ENDPOINT_FOUND = 0xC0020009,
+ MD_NTSTATUS_WIN_RPC_NT_INVALID_TIMEOUT = 0xC002000A,
+ MD_NTSTATUS_WIN_RPC_NT_OBJECT_NOT_FOUND = 0xC002000B,
+ MD_NTSTATUS_WIN_RPC_NT_ALREADY_REGISTERED = 0xC002000C,
+ MD_NTSTATUS_WIN_RPC_NT_TYPE_ALREADY_REGISTERED = 0xC002000D,
+ MD_NTSTATUS_WIN_RPC_NT_ALREADY_LISTENING = 0xC002000E,
+ MD_NTSTATUS_WIN_RPC_NT_NO_PROTSEQS_REGISTERED = 0xC002000F,
+ MD_NTSTATUS_WIN_RPC_NT_NOT_LISTENING = 0xC0020010,
+ MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_MGR_TYPE = 0xC0020011,
+ MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_IF = 0xC0020012,
+ MD_NTSTATUS_WIN_RPC_NT_NO_BINDINGS = 0xC0020013,
+ MD_NTSTATUS_WIN_RPC_NT_NO_PROTSEQS = 0xC0020014,
+ MD_NTSTATUS_WIN_RPC_NT_CANT_CREATE_ENDPOINT = 0xC0020015,
+ MD_NTSTATUS_WIN_RPC_NT_OUT_OF_RESOURCES = 0xC0020016,
+ MD_NTSTATUS_WIN_RPC_NT_SERVER_UNAVAILABLE = 0xC0020017,
+ MD_NTSTATUS_WIN_RPC_NT_SERVER_TOO_BUSY = 0xC0020018,
+ MD_NTSTATUS_WIN_RPC_NT_INVALID_NETWORK_OPTIONS = 0xC0020019,
+ MD_NTSTATUS_WIN_RPC_NT_NO_CALL_ACTIVE = 0xC002001A,
+ MD_NTSTATUS_WIN_RPC_NT_CALL_FAILED = 0xC002001B,
+ MD_NTSTATUS_WIN_RPC_NT_CALL_FAILED_DNE = 0xC002001C,
+ MD_NTSTATUS_WIN_RPC_NT_PROTOCOL_ERROR = 0xC002001D,
+ MD_NTSTATUS_WIN_RPC_NT_UNSUPPORTED_TRANS_SYN = 0xC002001F,
+ MD_NTSTATUS_WIN_RPC_NT_UNSUPPORTED_TYPE = 0xC0020021,
+ MD_NTSTATUS_WIN_RPC_NT_INVALID_TAG = 0xC0020022,
+ MD_NTSTATUS_WIN_RPC_NT_INVALID_BOUND = 0xC0020023,
+ MD_NTSTATUS_WIN_RPC_NT_NO_ENTRY_NAME = 0xC0020024,
+ MD_NTSTATUS_WIN_RPC_NT_INVALID_NAME_SYNTAX = 0xC0020025,
+ MD_NTSTATUS_WIN_RPC_NT_UNSUPPORTED_NAME_SYNTAX = 0xC0020026,
+ MD_NTSTATUS_WIN_RPC_NT_UUID_NO_ADDRESS = 0xC0020028,
+ MD_NTSTATUS_WIN_RPC_NT_DUPLICATE_ENDPOINT = 0xC0020029,
+ MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_AUTHN_TYPE = 0xC002002A,
+ MD_NTSTATUS_WIN_RPC_NT_MAX_CALLS_TOO_SMALL = 0xC002002B,
+ MD_NTSTATUS_WIN_RPC_NT_STRING_TOO_LONG = 0xC002002C,
+ MD_NTSTATUS_WIN_RPC_NT_PROTSEQ_NOT_FOUND = 0xC002002D,
+ MD_NTSTATUS_WIN_RPC_NT_PROCNUM_OUT_OF_RANGE = 0xC002002E,
+ MD_NTSTATUS_WIN_RPC_NT_BINDING_HAS_NO_AUTH = 0xC002002F,
+ MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_AUTHN_SERVICE = 0xC0020030,
+ MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_AUTHN_LEVEL = 0xC0020031,
+ MD_NTSTATUS_WIN_RPC_NT_INVALID_AUTH_IDENTITY = 0xC0020032,
+ MD_NTSTATUS_WIN_RPC_NT_UNKNOWN_AUTHZ_SERVICE = 0xC0020033,
+ MD_NTSTATUS_WIN_EPT_NT_INVALID_ENTRY = 0xC0020034,
+ MD_NTSTATUS_WIN_EPT_NT_CANT_PERFORM_OP = 0xC0020035,
+ MD_NTSTATUS_WIN_EPT_NT_NOT_REGISTERED = 0xC0020036,
+ MD_NTSTATUS_WIN_RPC_NT_NOTHING_TO_EXPORT = 0xC0020037,
+ MD_NTSTATUS_WIN_RPC_NT_INCOMPLETE_NAME = 0xC0020038,
+ MD_NTSTATUS_WIN_RPC_NT_INVALID_VERS_OPTION = 0xC0020039,
+ MD_NTSTATUS_WIN_RPC_NT_NO_MORE_MEMBERS = 0xC002003A,
+ MD_NTSTATUS_WIN_RPC_NT_NOT_ALL_OBJS_UNEXPORTED = 0xC002003B,
+ MD_NTSTATUS_WIN_RPC_NT_INTERFACE_NOT_FOUND = 0xC002003C,
+ MD_NTSTATUS_WIN_RPC_NT_ENTRY_ALREADY_EXISTS = 0xC002003D,
+ MD_NTSTATUS_WIN_RPC_NT_ENTRY_NOT_FOUND = 0xC002003E,
+ MD_NTSTATUS_WIN_RPC_NT_NAME_SERVICE_UNAVAILABLE = 0xC002003F,
+ MD_NTSTATUS_WIN_RPC_NT_INVALID_NAF_ID = 0xC0020040,
+ MD_NTSTATUS_WIN_RPC_NT_CANNOT_SUPPORT = 0xC0020041,
+ MD_NTSTATUS_WIN_RPC_NT_NO_CONTEXT_AVAILABLE = 0xC0020042,
+ MD_NTSTATUS_WIN_RPC_NT_INTERNAL_ERROR = 0xC0020043,
+ MD_NTSTATUS_WIN_RPC_NT_ZERO_DIVIDE = 0xC0020044,
+ MD_NTSTATUS_WIN_RPC_NT_ADDRESS_ERROR = 0xC0020045,
+ MD_NTSTATUS_WIN_RPC_NT_FP_DIV_ZERO = 0xC0020046,
+ MD_NTSTATUS_WIN_RPC_NT_FP_UNDERFLOW = 0xC0020047,
+ MD_NTSTATUS_WIN_RPC_NT_FP_OVERFLOW = 0xC0020048,
+ MD_NTSTATUS_WIN_RPC_NT_CALL_IN_PROGRESS = 0xC0020049,
+ MD_NTSTATUS_WIN_RPC_NT_NO_MORE_BINDINGS = 0xC002004A,
+ MD_NTSTATUS_WIN_RPC_NT_GROUP_MEMBER_NOT_FOUND = 0xC002004B,
+ MD_NTSTATUS_WIN_EPT_NT_CANT_CREATE = 0xC002004C,
+ MD_NTSTATUS_WIN_RPC_NT_INVALID_OBJECT = 0xC002004D,
+ MD_NTSTATUS_WIN_RPC_NT_NO_INTERFACES = 0xC002004F,
+ MD_NTSTATUS_WIN_RPC_NT_CALL_CANCELLED = 0xC0020050,
+ MD_NTSTATUS_WIN_RPC_NT_BINDING_INCOMPLETE = 0xC0020051,
+ MD_NTSTATUS_WIN_RPC_NT_COMM_FAILURE = 0xC0020052,
+ MD_NTSTATUS_WIN_RPC_NT_UNSUPPORTED_AUTHN_LEVEL = 0xC0020053,
+ MD_NTSTATUS_WIN_RPC_NT_NO_PRINC_NAME = 0xC0020054,
+ MD_NTSTATUS_WIN_RPC_NT_NOT_RPC_ERROR = 0xC0020055,
+ MD_NTSTATUS_WIN_RPC_NT_SEC_PKG_ERROR = 0xC0020057,
+ MD_NTSTATUS_WIN_RPC_NT_NOT_CANCELLED = 0xC0020058,
+ MD_NTSTATUS_WIN_RPC_NT_INVALID_ASYNC_HANDLE = 0xC0020062,
+ MD_NTSTATUS_WIN_RPC_NT_INVALID_ASYNC_CALL = 0xC0020063,
+ MD_NTSTATUS_WIN_RPC_NT_PROXY_ACCESS_DENIED = 0xC0020064,
+ MD_NTSTATUS_WIN_RPC_NT_COOKIE_AUTH_FAILED = 0xC0020065,
+ MD_NTSTATUS_WIN_RPC_NT_NO_MORE_ENTRIES = 0xC0030001,
+ MD_NTSTATUS_WIN_RPC_NT_SS_CHAR_TRANS_OPEN_FAIL = 0xC0030002,
+ MD_NTSTATUS_WIN_RPC_NT_SS_CHAR_TRANS_SHORT_FILE = 0xC0030003,
+ MD_NTSTATUS_WIN_RPC_NT_SS_IN_NULL_CONTEXT = 0xC0030004,
+ MD_NTSTATUS_WIN_RPC_NT_SS_CONTEXT_MISMATCH = 0xC0030005,
+ MD_NTSTATUS_WIN_RPC_NT_SS_CONTEXT_DAMAGED = 0xC0030006,
+ MD_NTSTATUS_WIN_RPC_NT_SS_HANDLES_MISMATCH = 0xC0030007,
+ MD_NTSTATUS_WIN_RPC_NT_SS_CANNOT_GET_CALL_HANDLE = 0xC0030008,
+ MD_NTSTATUS_WIN_RPC_NT_NULL_REF_POINTER = 0xC0030009,
+ MD_NTSTATUS_WIN_RPC_NT_ENUM_VALUE_OUT_OF_RANGE = 0xC003000A,
+ MD_NTSTATUS_WIN_RPC_NT_BYTE_COUNT_TOO_SMALL = 0xC003000B,
+ MD_NTSTATUS_WIN_RPC_NT_BAD_STUB_DATA = 0xC003000C,
+ MD_NTSTATUS_WIN_RPC_NT_INVALID_ES_ACTION = 0xC0030059,
+ MD_NTSTATUS_WIN_RPC_NT_WRONG_ES_VERSION = 0xC003005A,
+ MD_NTSTATUS_WIN_RPC_NT_WRONG_STUB_VERSION = 0xC003005B,
+ MD_NTSTATUS_WIN_RPC_NT_INVALID_PIPE_OBJECT = 0xC003005C,
+ MD_NTSTATUS_WIN_RPC_NT_INVALID_PIPE_OPERATION = 0xC003005D,
+ MD_NTSTATUS_WIN_RPC_NT_WRONG_PIPE_VERSION = 0xC003005E,
+ MD_NTSTATUS_WIN_RPC_NT_PIPE_CLOSED = 0xC003005F,
+ MD_NTSTATUS_WIN_RPC_NT_PIPE_DISCIPLINE_ERROR = 0xC0030060,
+ MD_NTSTATUS_WIN_RPC_NT_PIPE_EMPTY = 0xC0030061,
+ MD_NTSTATUS_WIN_STATUS_PNP_BAD_MPS_TABLE = 0xC0040035,
+ MD_NTSTATUS_WIN_STATUS_PNP_TRANSLATION_FAILED = 0xC0040036,
+ MD_NTSTATUS_WIN_STATUS_PNP_IRQ_TRANSLATION_FAILED = 0xC0040037,
+ MD_NTSTATUS_WIN_STATUS_PNP_INVALID_ID = 0xC0040038,
+ MD_NTSTATUS_WIN_STATUS_IO_REISSUE_AS_CACHED = 0xC0040039,
+ MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_NAME_INVALID = 0xC00A0001,
+ MD_NTSTATUS_WIN_STATUS_CTX_INVALID_PD = 0xC00A0002,
+ MD_NTSTATUS_WIN_STATUS_CTX_PD_NOT_FOUND = 0xC00A0003,
+ MD_NTSTATUS_WIN_STATUS_CTX_CLOSE_PENDING = 0xC00A0006,
+ MD_NTSTATUS_WIN_STATUS_CTX_NO_OUTBUF = 0xC00A0007,
+ MD_NTSTATUS_WIN_STATUS_CTX_MODEM_INF_NOT_FOUND = 0xC00A0008,
+ MD_NTSTATUS_WIN_STATUS_CTX_INVALID_MODEMNAME = 0xC00A0009,
+ MD_NTSTATUS_WIN_STATUS_CTX_RESPONSE_ERROR = 0xC00A000A,
+ MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_TIMEOUT = 0xC00A000B,
+ MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_NO_CARRIER = 0xC00A000C,
+ MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE = 0xC00A000D,
+ MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_BUSY = 0xC00A000E,
+ MD_NTSTATUS_WIN_STATUS_CTX_MODEM_RESPONSE_VOICE = 0xC00A000F,
+ MD_NTSTATUS_WIN_STATUS_CTX_TD_ERROR = 0xC00A0010,
+ MD_NTSTATUS_WIN_STATUS_CTX_LICENSE_CLIENT_INVALID = 0xC00A0012,
+ MD_NTSTATUS_WIN_STATUS_CTX_LICENSE_NOT_AVAILABLE = 0xC00A0013,
+ MD_NTSTATUS_WIN_STATUS_CTX_LICENSE_EXPIRED = 0xC00A0014,
+ MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_NOT_FOUND = 0xC00A0015,
+ MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_NAME_COLLISION = 0xC00A0016,
+ MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_BUSY = 0xC00A0017,
+ MD_NTSTATUS_WIN_STATUS_CTX_BAD_VIDEO_MODE = 0xC00A0018,
+ MD_NTSTATUS_WIN_STATUS_CTX_GRAPHICS_INVALID = 0xC00A0022,
+ MD_NTSTATUS_WIN_STATUS_CTX_NOT_CONSOLE = 0xC00A0024,
+ MD_NTSTATUS_WIN_STATUS_CTX_CLIENT_QUERY_TIMEOUT = 0xC00A0026,
+ MD_NTSTATUS_WIN_STATUS_CTX_CONSOLE_DISCONNECT = 0xC00A0027,
+ MD_NTSTATUS_WIN_STATUS_CTX_CONSOLE_CONNECT = 0xC00A0028,
+ MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_DENIED = 0xC00A002A,
+ MD_NTSTATUS_WIN_STATUS_CTX_WINSTATION_ACCESS_DENIED = 0xC00A002B,
+ MD_NTSTATUS_WIN_STATUS_CTX_INVALID_WD = 0xC00A002E,
+ MD_NTSTATUS_WIN_STATUS_CTX_WD_NOT_FOUND = 0xC00A002F,
+ MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_INVALID = 0xC00A0030,
+ MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_DISABLED = 0xC00A0031,
+ MD_NTSTATUS_WIN_STATUS_RDP_PROTOCOL_ERROR = 0xC00A0032,
+ MD_NTSTATUS_WIN_STATUS_CTX_CLIENT_LICENSE_NOT_SET = 0xC00A0033,
+ MD_NTSTATUS_WIN_STATUS_CTX_CLIENT_LICENSE_IN_USE = 0xC00A0034,
+ MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE = 0xC00A0035,
+ MD_NTSTATUS_WIN_STATUS_CTX_SHADOW_NOT_RUNNING = 0xC00A0036,
+ MD_NTSTATUS_WIN_STATUS_CTX_LOGON_DISABLED = 0xC00A0037,
+ MD_NTSTATUS_WIN_STATUS_CTX_SECURITY_LAYER_ERROR = 0xC00A0038,
+ MD_NTSTATUS_WIN_STATUS_TS_INCOMPATIBLE_SESSIONS = 0xC00A0039,
+ MD_NTSTATUS_WIN_STATUS_TS_VIDEO_SUBSYSTEM_ERROR = 0xC00A003A,
+ MD_NTSTATUS_WIN_STATUS_MUI_FILE_NOT_FOUND = 0xC00B0001,
+ MD_NTSTATUS_WIN_STATUS_MUI_INVALID_FILE = 0xC00B0002,
+ MD_NTSTATUS_WIN_STATUS_MUI_INVALID_RC_CONFIG = 0xC00B0003,
+ MD_NTSTATUS_WIN_STATUS_MUI_INVALID_LOCALE_NAME = 0xC00B0004,
+ MD_NTSTATUS_WIN_STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME = 0xC00B0005,
+ MD_NTSTATUS_WIN_STATUS_MUI_FILE_NOT_LOADED = 0xC00B0006,
+ MD_NTSTATUS_WIN_STATUS_RESOURCE_ENUM_USER_STOP = 0xC00B0007,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_INVALID_NODE = 0xC0130001,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_EXISTS = 0xC0130002,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_JOIN_IN_PROGRESS = 0xC0130003,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_NOT_FOUND = 0xC0130004,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND = 0xC0130005,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NETWORK_EXISTS = 0xC0130006,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NETWORK_NOT_FOUND = 0xC0130007,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NETINTERFACE_EXISTS = 0xC0130008,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NETINTERFACE_NOT_FOUND = 0xC0130009,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_INVALID_REQUEST = 0xC013000A,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_INVALID_NETWORK_PROVIDER = 0xC013000B,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_DOWN = 0xC013000C,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_UNREACHABLE = 0xC013000D,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_NOT_MEMBER = 0xC013000E,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS = 0xC013000F,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_INVALID_NETWORK = 0xC0130010,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NO_NET_ADAPTERS = 0xC0130011,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_UP = 0xC0130012,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_PAUSED = 0xC0130013,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NODE_NOT_PAUSED = 0xC0130014,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NO_SECURITY_CONTEXT = 0xC0130015,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NETWORK_NOT_INTERNAL = 0xC0130016,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_POISONED = 0xC0130017,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_NON_CSV_PATH = 0xC0130018,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_VOLUME_NOT_LOCAL = 0xC0130019,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_READ_OPLOCK_BREAK_IN_PROGRESS = 0xC0130020,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_AUTO_PAUSE_ERROR = 0xC0130021,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_REDIRECTED = 0xC0130022,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_NOT_REDIRECTED = 0xC0130023,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_VOLUME_DRAINING = 0xC0130024,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_SNAPSHOT_CREATION_IN_PROGRESS = 0xC0130025,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_VOLUME_DRAINING_SUCCEEDED_DOWNLEVEL = 0xC0130026,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_NO_SNAPSHOTS = 0xC0130027,
+ MD_NTSTATUS_WIN_STATUS_CSV_IO_PAUSE_TIMEOUT = 0xC0130028,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_INVALID_HANDLE = 0xC0130029,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR = 0xC0130030,
+ MD_NTSTATUS_WIN_STATUS_CLUSTER_CAM_TICKET_REPLAY_DETECTED = 0xC0130031,
+ MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_OPCODE = 0xC0140001,
+ MD_NTSTATUS_WIN_STATUS_ACPI_STACK_OVERFLOW = 0xC0140002,
+ MD_NTSTATUS_WIN_STATUS_ACPI_ASSERT_FAILED = 0xC0140003,
+ MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_INDEX = 0xC0140004,
+ MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_ARGUMENT = 0xC0140005,
+ MD_NTSTATUS_WIN_STATUS_ACPI_FATAL = 0xC0140006,
+ MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_SUPERNAME = 0xC0140007,
+ MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_ARGTYPE = 0xC0140008,
+ MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_OBJTYPE = 0xC0140009,
+ MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_TARGETTYPE = 0xC014000A,
+ MD_NTSTATUS_WIN_STATUS_ACPI_INCORRECT_ARGUMENT_COUNT = 0xC014000B,
+ MD_NTSTATUS_WIN_STATUS_ACPI_ADDRESS_NOT_MAPPED = 0xC014000C,
+ MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_EVENTTYPE = 0xC014000D,
+ MD_NTSTATUS_WIN_STATUS_ACPI_HANDLER_COLLISION = 0xC014000E,
+ MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_DATA = 0xC014000F,
+ MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_REGION = 0xC0140010,
+ MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_ACCESS_SIZE = 0xC0140011,
+ MD_NTSTATUS_WIN_STATUS_ACPI_ACQUIRE_GLOBAL_LOCK = 0xC0140012,
+ MD_NTSTATUS_WIN_STATUS_ACPI_ALREADY_INITIALIZED = 0xC0140013,
+ MD_NTSTATUS_WIN_STATUS_ACPI_NOT_INITIALIZED = 0xC0140014,
+ MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_MUTEX_LEVEL = 0xC0140015,
+ MD_NTSTATUS_WIN_STATUS_ACPI_MUTEX_NOT_OWNED = 0xC0140016,
+ MD_NTSTATUS_WIN_STATUS_ACPI_MUTEX_NOT_OWNER = 0xC0140017,
+ MD_NTSTATUS_WIN_STATUS_ACPI_RS_ACCESS = 0xC0140018,
+ MD_NTSTATUS_WIN_STATUS_ACPI_INVALID_TABLE = 0xC0140019,
+ MD_NTSTATUS_WIN_STATUS_ACPI_REG_HANDLER_FAILED = 0xC0140020,
+ MD_NTSTATUS_WIN_STATUS_ACPI_POWER_REQUEST_FAILED = 0xC0140021,
+ MD_NTSTATUS_WIN_STATUS_SXS_SECTION_NOT_FOUND = 0xC0150001,
+ MD_NTSTATUS_WIN_STATUS_SXS_CANT_GEN_ACTCTX = 0xC0150002,
+ MD_NTSTATUS_WIN_STATUS_SXS_INVALID_ACTCTXDATA_FORMAT = 0xC0150003,
+ MD_NTSTATUS_WIN_STATUS_SXS_ASSEMBLY_NOT_FOUND = 0xC0150004,
+ MD_NTSTATUS_WIN_STATUS_SXS_MANIFEST_FORMAT_ERROR = 0xC0150005,
+ MD_NTSTATUS_WIN_STATUS_SXS_MANIFEST_PARSE_ERROR = 0xC0150006,
+ MD_NTSTATUS_WIN_STATUS_SXS_ACTIVATION_CONTEXT_DISABLED = 0xC0150007,
+ MD_NTSTATUS_WIN_STATUS_SXS_KEY_NOT_FOUND = 0xC0150008,
+ MD_NTSTATUS_WIN_STATUS_SXS_VERSION_CONFLICT = 0xC0150009,
+ MD_NTSTATUS_WIN_STATUS_SXS_WRONG_SECTION_TYPE = 0xC015000A,
+ MD_NTSTATUS_WIN_STATUS_SXS_THREAD_QUERIES_DISABLED = 0xC015000B,
+ MD_NTSTATUS_WIN_STATUS_SXS_ASSEMBLY_MISSING = 0xC015000C,
+ MD_NTSTATUS_WIN_STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET = 0xC015000E,
+ MD_NTSTATUS_WIN_STATUS_SXS_EARLY_DEACTIVATION = 0xC015000F,
+ MD_NTSTATUS_WIN_STATUS_SXS_INVALID_DEACTIVATION = 0xC0150010,
+ MD_NTSTATUS_WIN_STATUS_SXS_MULTIPLE_DEACTIVATION = 0xC0150011,
+ MD_NTSTATUS_WIN_STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY = 0xC0150012,
+ MD_NTSTATUS_WIN_STATUS_SXS_PROCESS_TERMINATION_REQUESTED = 0xC0150013,
+ MD_NTSTATUS_WIN_STATUS_SXS_CORRUPT_ACTIVATION_STACK = 0xC0150014,
+ MD_NTSTATUS_WIN_STATUS_SXS_CORRUPTION = 0xC0150015,
+ MD_NTSTATUS_WIN_STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE = 0xC0150016,
+ MD_NTSTATUS_WIN_STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME = 0xC0150017,
+ MD_NTSTATUS_WIN_STATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE = 0xC0150018,
+ MD_NTSTATUS_WIN_STATUS_SXS_IDENTITY_PARSE_ERROR = 0xC0150019,
+ MD_NTSTATUS_WIN_STATUS_SXS_COMPONENT_STORE_CORRUPT = 0xC015001A,
+ MD_NTSTATUS_WIN_STATUS_SXS_FILE_HASH_MISMATCH = 0xC015001B,
+ MD_NTSTATUS_WIN_STATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT = 0xC015001C,
+ MD_NTSTATUS_WIN_STATUS_SXS_IDENTITIES_DIFFERENT = 0xC015001D,
+ MD_NTSTATUS_WIN_STATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT = 0xC015001E,
+ MD_NTSTATUS_WIN_STATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY = 0xC015001F,
+ MD_NTSTATUS_WIN_STATUS_ADVANCED_INSTALLER_FAILED = 0xC0150020,
+ MD_NTSTATUS_WIN_STATUS_XML_ENCODING_MISMATCH = 0xC0150021,
+ MD_NTSTATUS_WIN_STATUS_SXS_MANIFEST_TOO_BIG = 0xC0150022,
+ MD_NTSTATUS_WIN_STATUS_SXS_SETTING_NOT_REGISTERED = 0xC0150023,
+ MD_NTSTATUS_WIN_STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE = 0xC0150024,
+ MD_NTSTATUS_WIN_STATUS_SMI_PRIMITIVE_INSTALLER_FAILED = 0xC0150025,
+ MD_NTSTATUS_WIN_STATUS_GENERIC_COMMAND_FAILED = 0xC0150026,
+ MD_NTSTATUS_WIN_STATUS_SXS_FILE_HASH_MISSING = 0xC0150027,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTIONAL_CONFLICT = 0xC0190001,
+ MD_NTSTATUS_WIN_STATUS_INVALID_TRANSACTION = 0xC0190002,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_ACTIVE = 0xC0190003,
+ MD_NTSTATUS_WIN_STATUS_TM_INITIALIZATION_FAILED = 0xC0190004,
+ MD_NTSTATUS_WIN_STATUS_RM_NOT_ACTIVE = 0xC0190005,
+ MD_NTSTATUS_WIN_STATUS_RM_METADATA_CORRUPT = 0xC0190006,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_JOINED = 0xC0190007,
+ MD_NTSTATUS_WIN_STATUS_DIRECTORY_NOT_RM = 0xC0190008,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTIONS_UNSUPPORTED_REMOTE = 0xC019000A,
+ MD_NTSTATUS_WIN_STATUS_LOG_RESIZE_INVALID_SIZE = 0xC019000B,
+ MD_NTSTATUS_WIN_STATUS_REMOTE_FILE_VERSION_MISMATCH = 0xC019000C,
+ MD_NTSTATUS_WIN_STATUS_CRM_PROTOCOL_ALREADY_EXISTS = 0xC019000F,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_PROPAGATION_FAILED = 0xC0190010,
+ MD_NTSTATUS_WIN_STATUS_CRM_PROTOCOL_NOT_FOUND = 0xC0190011,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_SUPERIOR_EXISTS = 0xC0190012,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_REQUEST_NOT_VALID = 0xC0190013,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_REQUESTED = 0xC0190014,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_ALREADY_ABORTED = 0xC0190015,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_ALREADY_COMMITTED = 0xC0190016,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER = 0xC0190017,
+ MD_NTSTATUS_WIN_STATUS_CURRENT_TRANSACTION_NOT_VALID = 0xC0190018,
+ MD_NTSTATUS_WIN_STATUS_LOG_GROWTH_FAILED = 0xC0190019,
+ MD_NTSTATUS_WIN_STATUS_OBJECT_NO_LONGER_EXISTS = 0xC0190021,
+ MD_NTSTATUS_WIN_STATUS_STREAM_MINIVERSION_NOT_FOUND = 0xC0190022,
+ MD_NTSTATUS_WIN_STATUS_STREAM_MINIVERSION_NOT_VALID = 0xC0190023,
+ MD_NTSTATUS_WIN_STATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION = 0xC0190024,
+ MD_NTSTATUS_WIN_STATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT = 0xC0190025,
+ MD_NTSTATUS_WIN_STATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS = 0xC0190026,
+ MD_NTSTATUS_WIN_STATUS_HANDLE_NO_LONGER_VALID = 0xC0190028,
+ MD_NTSTATUS_WIN_STATUS_LOG_CORRUPTION_DETECTED = 0xC0190030,
+ MD_NTSTATUS_WIN_STATUS_RM_DISCONNECTED = 0xC0190032,
+ MD_NTSTATUS_WIN_STATUS_ENLISTMENT_NOT_SUPERIOR = 0xC0190033,
+ MD_NTSTATUS_WIN_STATUS_FILE_IDENTITY_NOT_PERSISTENT = 0xC0190036,
+ MD_NTSTATUS_WIN_STATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY = 0xC0190037,
+ MD_NTSTATUS_WIN_STATUS_CANT_CROSS_RM_BOUNDARY = 0xC0190038,
+ MD_NTSTATUS_WIN_STATUS_TXF_DIR_NOT_EMPTY = 0xC0190039,
+ MD_NTSTATUS_WIN_STATUS_INDOUBT_TRANSACTIONS_EXIST = 0xC019003A,
+ MD_NTSTATUS_WIN_STATUS_TM_VOLATILE = 0xC019003B,
+ MD_NTSTATUS_WIN_STATUS_ROLLBACK_TIMER_EXPIRED = 0xC019003C,
+ MD_NTSTATUS_WIN_STATUS_TXF_ATTRIBUTE_CORRUPT = 0xC019003D,
+ MD_NTSTATUS_WIN_STATUS_EFS_NOT_ALLOWED_IN_TRANSACTION = 0xC019003E,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED = 0xC019003F,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE = 0xC0190040,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_REQUIRED_PROMOTION = 0xC0190043,
+ MD_NTSTATUS_WIN_STATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION = 0xC0190044,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTIONS_NOT_FROZEN = 0xC0190045,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_FREEZE_IN_PROGRESS = 0xC0190046,
+ MD_NTSTATUS_WIN_STATUS_NOT_SNAPSHOT_VOLUME = 0xC0190047,
+ MD_NTSTATUS_WIN_STATUS_NO_SAVEPOINT_WITH_OPEN_FILES = 0xC0190048,
+ MD_NTSTATUS_WIN_STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION = 0xC0190049,
+ MD_NTSTATUS_WIN_STATUS_TM_IDENTITY_MISMATCH = 0xC019004A,
+ MD_NTSTATUS_WIN_STATUS_FLOATED_SECTION = 0xC019004B,
+ MD_NTSTATUS_WIN_STATUS_CANNOT_ACCEPT_TRANSACTED_WORK = 0xC019004C,
+ MD_NTSTATUS_WIN_STATUS_CANNOT_ABORT_TRANSACTIONS = 0xC019004D,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_FOUND = 0xC019004E,
+ MD_NTSTATUS_WIN_STATUS_RESOURCEMANAGER_NOT_FOUND = 0xC019004F,
+ MD_NTSTATUS_WIN_STATUS_ENLISTMENT_NOT_FOUND = 0xC0190050,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTIONMANAGER_NOT_FOUND = 0xC0190051,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTIONMANAGER_NOT_ONLINE = 0xC0190052,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION = 0xC0190053,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_ROOT = 0xC0190054,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_OBJECT_EXPIRED = 0xC0190055,
+ MD_NTSTATUS_WIN_STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION = 0xC0190056,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED = 0xC0190057,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_RECORD_TOO_LONG = 0xC0190058,
+ MD_NTSTATUS_WIN_STATUS_NO_LINK_TRACKING_IN_TRANSACTION = 0xC0190059,
+ MD_NTSTATUS_WIN_STATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION = 0xC019005A,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_INTEGRITY_VIOLATED = 0xC019005B,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTIONMANAGER_IDENTITY_MISMATCH = 0xC019005C,
+ MD_NTSTATUS_WIN_STATUS_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT = 0xC019005D,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_MUST_WRITETHROUGH = 0xC019005E,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_NO_SUPERIOR = 0xC019005F,
+ MD_NTSTATUS_WIN_STATUS_EXPIRED_HANDLE = 0xC0190060,
+ MD_NTSTATUS_WIN_STATUS_TRANSACTION_NOT_ENLISTED = 0xC0190061,
+ MD_NTSTATUS_WIN_STATUS_LOG_SECTOR_INVALID = 0xC01A0001,
+ MD_NTSTATUS_WIN_STATUS_LOG_SECTOR_PARITY_INVALID = 0xC01A0002,
+ MD_NTSTATUS_WIN_STATUS_LOG_SECTOR_REMAPPED = 0xC01A0003,
+ MD_NTSTATUS_WIN_STATUS_LOG_BLOCK_INCOMPLETE = 0xC01A0004,
+ MD_NTSTATUS_WIN_STATUS_LOG_INVALID_RANGE = 0xC01A0005,
+ MD_NTSTATUS_WIN_STATUS_LOG_BLOCKS_EXHAUSTED = 0xC01A0006,
+ MD_NTSTATUS_WIN_STATUS_LOG_READ_CONTEXT_INVALID = 0xC01A0007,
+ MD_NTSTATUS_WIN_STATUS_LOG_RESTART_INVALID = 0xC01A0008,
+ MD_NTSTATUS_WIN_STATUS_LOG_BLOCK_VERSION = 0xC01A0009,
+ MD_NTSTATUS_WIN_STATUS_LOG_BLOCK_INVALID = 0xC01A000A,
+ MD_NTSTATUS_WIN_STATUS_LOG_READ_MODE_INVALID = 0xC01A000B,
+ MD_NTSTATUS_WIN_STATUS_LOG_METADATA_CORRUPT = 0xC01A000D,
+ MD_NTSTATUS_WIN_STATUS_LOG_METADATA_INVALID = 0xC01A000E,
+ MD_NTSTATUS_WIN_STATUS_LOG_METADATA_INCONSISTENT = 0xC01A000F,
+ MD_NTSTATUS_WIN_STATUS_LOG_RESERVATION_INVALID = 0xC01A0010,
+ MD_NTSTATUS_WIN_STATUS_LOG_CANT_DELETE = 0xC01A0011,
+ MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_LIMIT_EXCEEDED = 0xC01A0012,
+ MD_NTSTATUS_WIN_STATUS_LOG_START_OF_LOG = 0xC01A0013,
+ MD_NTSTATUS_WIN_STATUS_LOG_POLICY_ALREADY_INSTALLED = 0xC01A0014,
+ MD_NTSTATUS_WIN_STATUS_LOG_POLICY_NOT_INSTALLED = 0xC01A0015,
+ MD_NTSTATUS_WIN_STATUS_LOG_POLICY_INVALID = 0xC01A0016,
+ MD_NTSTATUS_WIN_STATUS_LOG_POLICY_CONFLICT = 0xC01A0017,
+ MD_NTSTATUS_WIN_STATUS_LOG_PINNED_ARCHIVE_TAIL = 0xC01A0018,
+ MD_NTSTATUS_WIN_STATUS_LOG_RECORD_NONEXISTENT = 0xC01A0019,
+ MD_NTSTATUS_WIN_STATUS_LOG_RECORDS_RESERVED_INVALID = 0xC01A001A,
+ MD_NTSTATUS_WIN_STATUS_LOG_SPACE_RESERVED_INVALID = 0xC01A001B,
+ MD_NTSTATUS_WIN_STATUS_LOG_TAIL_INVALID = 0xC01A001C,
+ MD_NTSTATUS_WIN_STATUS_LOG_FULL = 0xC01A001D,
+ MD_NTSTATUS_WIN_STATUS_LOG_MULTIPLEXED = 0xC01A001E,
+ MD_NTSTATUS_WIN_STATUS_LOG_DEDICATED = 0xC01A001F,
+ MD_NTSTATUS_WIN_STATUS_LOG_ARCHIVE_NOT_IN_PROGRESS = 0xC01A0020,
+ MD_NTSTATUS_WIN_STATUS_LOG_ARCHIVE_IN_PROGRESS = 0xC01A0021,
+ MD_NTSTATUS_WIN_STATUS_LOG_EPHEMERAL = 0xC01A0022,
+ MD_NTSTATUS_WIN_STATUS_LOG_NOT_ENOUGH_CONTAINERS = 0xC01A0023,
+ MD_NTSTATUS_WIN_STATUS_LOG_CLIENT_ALREADY_REGISTERED = 0xC01A0024,
+ MD_NTSTATUS_WIN_STATUS_LOG_CLIENT_NOT_REGISTERED = 0xC01A0025,
+ MD_NTSTATUS_WIN_STATUS_LOG_FULL_HANDLER_IN_PROGRESS = 0xC01A0026,
+ MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_READ_FAILED = 0xC01A0027,
+ MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_WRITE_FAILED = 0xC01A0028,
+ MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_OPEN_FAILED = 0xC01A0029,
+ MD_NTSTATUS_WIN_STATUS_LOG_CONTAINER_STATE_INVALID = 0xC01A002A,
+ MD_NTSTATUS_WIN_STATUS_LOG_STATE_INVALID = 0xC01A002B,
+ MD_NTSTATUS_WIN_STATUS_LOG_PINNED = 0xC01A002C,
+ MD_NTSTATUS_WIN_STATUS_LOG_METADATA_FLUSH_FAILED = 0xC01A002D,
+ MD_NTSTATUS_WIN_STATUS_LOG_INCONSISTENT_SECURITY = 0xC01A002E,
+ MD_NTSTATUS_WIN_STATUS_LOG_APPENDED_FLUSH_FAILED = 0xC01A002F,
+ MD_NTSTATUS_WIN_STATUS_LOG_PINNED_RESERVATION = 0xC01A0030,
+ MD_NTSTATUS_WIN_STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD = 0xC01B00EA,
+ MD_NTSTATUS_WIN_STATUS_FLT_NO_HANDLER_DEFINED = 0xC01C0001,
+ MD_NTSTATUS_WIN_STATUS_FLT_CONTEXT_ALREADY_DEFINED = 0xC01C0002,
+ MD_NTSTATUS_WIN_STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST = 0xC01C0003,
+ MD_NTSTATUS_WIN_STATUS_FLT_DISALLOW_FAST_IO = 0xC01C0004,
+ MD_NTSTATUS_WIN_STATUS_FLT_INVALID_NAME_REQUEST = 0xC01C0005,
+ MD_NTSTATUS_WIN_STATUS_FLT_NOT_SAFE_TO_POST_OPERATION = 0xC01C0006,
+ MD_NTSTATUS_WIN_STATUS_FLT_NOT_INITIALIZED = 0xC01C0007,
+ MD_NTSTATUS_WIN_STATUS_FLT_FILTER_NOT_READY = 0xC01C0008,
+ MD_NTSTATUS_WIN_STATUS_FLT_POST_OPERATION_CLEANUP = 0xC01C0009,
+ MD_NTSTATUS_WIN_STATUS_FLT_INTERNAL_ERROR = 0xC01C000A,
+ MD_NTSTATUS_WIN_STATUS_FLT_DELETING_OBJECT = 0xC01C000B,
+ MD_NTSTATUS_WIN_STATUS_FLT_MUST_BE_NONPAGED_POOL = 0xC01C000C,
+ MD_NTSTATUS_WIN_STATUS_FLT_DUPLICATE_ENTRY = 0xC01C000D,
+ MD_NTSTATUS_WIN_STATUS_FLT_CBDQ_DISABLED = 0xC01C000E,
+ MD_NTSTATUS_WIN_STATUS_FLT_DO_NOT_ATTACH = 0xC01C000F,
+ MD_NTSTATUS_WIN_STATUS_FLT_DO_NOT_DETACH = 0xC01C0010,
+ MD_NTSTATUS_WIN_STATUS_FLT_INSTANCE_ALTITUDE_COLLISION = 0xC01C0011,
+ MD_NTSTATUS_WIN_STATUS_FLT_INSTANCE_NAME_COLLISION = 0xC01C0012,
+ MD_NTSTATUS_WIN_STATUS_FLT_FILTER_NOT_FOUND = 0xC01C0013,
+ MD_NTSTATUS_WIN_STATUS_FLT_VOLUME_NOT_FOUND = 0xC01C0014,
+ MD_NTSTATUS_WIN_STATUS_FLT_INSTANCE_NOT_FOUND = 0xC01C0015,
+ MD_NTSTATUS_WIN_STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND = 0xC01C0016,
+ MD_NTSTATUS_WIN_STATUS_FLT_INVALID_CONTEXT_REGISTRATION = 0xC01C0017,
+ MD_NTSTATUS_WIN_STATUS_FLT_NAME_CACHE_MISS = 0xC01C0018,
+ MD_NTSTATUS_WIN_STATUS_FLT_NO_DEVICE_OBJECT = 0xC01C0019,
+ MD_NTSTATUS_WIN_STATUS_FLT_VOLUME_ALREADY_MOUNTED = 0xC01C001A,
+ MD_NTSTATUS_WIN_STATUS_FLT_ALREADY_ENLISTED = 0xC01C001B,
+ MD_NTSTATUS_WIN_STATUS_FLT_CONTEXT_ALREADY_LINKED = 0xC01C001C,
+ MD_NTSTATUS_WIN_STATUS_FLT_NO_WAITER_FOR_REPLY = 0xC01C0020,
+ MD_NTSTATUS_WIN_STATUS_FLT_REGISTRATION_BUSY = 0xC01C0023,
+ MD_NTSTATUS_WIN_STATUS_MONITOR_NO_DESCRIPTOR = 0xC01D0001,
+ MD_NTSTATUS_WIN_STATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT = 0xC01D0002,
+ MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM = 0xC01D0003,
+ MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK = 0xC01D0004,
+ MD_NTSTATUS_WIN_STATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED = 0xC01D0005,
+ MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK = 0xC01D0006,
+ MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK = 0xC01D0007,
+ MD_NTSTATUS_WIN_STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA = 0xC01D0008,
+ MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK = 0xC01D0009,
+ MD_NTSTATUS_WIN_STATUS_MONITOR_INVALID_MANUFACTURE_DATE = 0xC01D000A,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER = 0xC01E0000,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER = 0xC01E0001,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER = 0xC01E0002,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_WAS_RESET = 0xC01E0003,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_DRIVER_MODEL = 0xC01E0004,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_MODE_CHANGED = 0xC01E0005,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_OCCLUDED = 0xC01E0006,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_DENIED = 0xC01E0007,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANNOTCOLORCONVERT = 0xC01E0008,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_DRIVER_MISMATCH = 0xC01E0009,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_REDIRECTION_DISABLED = 0xC01E000B,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_UNOCCLUDED = 0xC01E000C,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_WINDOWDC_NOT_AVAILABLE = 0xC01E000D,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_WINDOWLESS_PRESENT_DISABLED = 0xC01E000E,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_INVALID_WINDOW = 0xC01E000F,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_PRESENT_BUFFER_NOT_BOUND = 0xC01E0010,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_VAIL_STATE_CHANGED = 0xC01E0011,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INDIRECT_DISPLAY_ABANDON_SWAPCHAIN = 0xC01E0012,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INDIRECT_DISPLAY_DEVICE_STOPPED = 0xC01E0013,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_VIDEO_MEMORY = 0xC01E0100,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANT_LOCK_MEMORY = 0xC01E0101,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_ALLOCATION_BUSY = 0xC01E0102,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_TOO_MANY_REFERENCES = 0xC01E0103,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_TRY_AGAIN_LATER = 0xC01E0104,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_TRY_AGAIN_NOW = 0xC01E0105,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_ALLOCATION_INVALID = 0xC01E0106,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE = 0xC01E0107,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED = 0xC01E0108,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION = 0xC01E0109,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_ALLOCATION_USAGE = 0xC01E0110,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION = 0xC01E0111,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_ALLOCATION_CLOSED = 0xC01E0112,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE = 0xC01E0113,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE = 0xC01E0114,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE = 0xC01E0115,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_ALLOCATION_CONTENT_LOST = 0xC01E0116,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE = 0xC01E0200,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY = 0xC01E0300,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED = 0xC01E0301,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED = 0xC01E0302,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN = 0xC01E0303,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE = 0xC01E0304,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET = 0xC01E0305,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED = 0xC01E0306,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET = 0xC01E0308,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET = 0xC01E0309,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_FREQUENCY = 0xC01E030A,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_ACTIVE_REGION = 0xC01E030B,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_TOTAL_REGION = 0xC01E030C,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE = 0xC01E0310,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE = 0xC01E0311,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET = 0xC01E0312,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY = 0xC01E0313,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_MODE_ALREADY_IN_MODESET = 0xC01E0314,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET = 0xC01E0315,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET = 0xC01E0316,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_SOURCE_ALREADY_IN_SET = 0xC01E0317,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_TARGET_ALREADY_IN_SET = 0xC01E0318,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH = 0xC01E0319,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY = 0xC01E031A,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET = 0xC01E031B,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE = 0xC01E031C,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET = 0xC01E031D,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET = 0xC01E031F,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_STALE_MODESET = 0xC01E0320,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET = 0xC01E0321,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE = 0xC01E0322,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN = 0xC01E0323,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE = 0xC01E0324,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION = 0xC01E0325,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES = 0xC01E0326,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY = 0xC01E0327,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE = 0xC01E0328,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET = 0xC01E0329,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET = 0xC01E032A,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR = 0xC01E032B,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET = 0xC01E032C,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET = 0xC01E032D,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE = 0xC01E032E,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE = 0xC01E032F,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_RESOURCES_NOT_RELATED = 0xC01E0330,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE = 0xC01E0331,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE = 0xC01E0332,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET = 0xC01E0333,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER = 0xC01E0334,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_VIDPNMGR = 0xC01E0335,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_ACTIVE_VIDPN = 0xC01E0336,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY = 0xC01E0337,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITOR_NOT_CONNECTED = 0xC01E0338,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY = 0xC01E0339,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE = 0xC01E033A,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE = 0xC01E033B,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_STRIDE = 0xC01E033C,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PIXELFORMAT = 0xC01E033D,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_COLORBASIS = 0xC01E033E,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE = 0xC01E033F,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY = 0xC01E0340,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT = 0xC01E0341,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE = 0xC01E0342,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN = 0xC01E0343,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL = 0xC01E0344,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION = 0xC01E0345,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED = 0xC01E0346,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_GAMMA_RAMP = 0xC01E0347,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED = 0xC01E0348,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED = 0xC01E0349,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_MODE_NOT_IN_MODESET = 0xC01E034A,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON = 0xC01E034D,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE = 0xC01E034E,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE = 0xC01E034F,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS = 0xC01E0350,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_SCANLINE_ORDERING = 0xC01E0352,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED = 0xC01E0353,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS = 0xC01E0354,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT = 0xC01E0355,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM = 0xC01E0356,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN = 0xC01E0357,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT = 0xC01E0358,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_MAX_NUM_PATHS_REACHED = 0xC01E0359,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION = 0xC01E035A,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_CLIENT_TYPE = 0xC01E035B,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_CLIENTVIDPN_NOT_SET = 0xC01E035C,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED = 0xC01E0400,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED = 0xC01E0401,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_NOT_A_LINKED_ADAPTER = 0xC01E0430,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED = 0xC01E0431,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED = 0xC01E0432,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY = 0xC01E0433,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_CHAINLINKS_NOT_STARTED = 0xC01E0434,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON = 0xC01E0435,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE = 0xC01E0436,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER = 0xC01E0438,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED = 0xC01E043B,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_NOT_SUPPORTED = 0xC01E0500,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_COPP_NOT_SUPPORTED = 0xC01E0501,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_UAB_NOT_SUPPORTED = 0xC01E0502,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS = 0xC01E0503,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST = 0xC01E0505,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INTERNAL_ERROR = 0xC01E050B,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_HANDLE = 0xC01E050C,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH = 0xC01E050E,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED = 0xC01E050F,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED = 0xC01E0510,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_PVP_HFS_FAILED = 0xC01E0511,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_SRM = 0xC01E0512,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP = 0xC01E0513,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP = 0xC01E0514,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA = 0xC01E0515,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET = 0xC01E0516,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH = 0xC01E0517,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE = 0xC01E0518,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS = 0xC01E051A,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS = 0xC01E051C,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST = 0xC01E051D,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR = 0xC01E051E,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS = 0xC01E051F,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED = 0xC01E0520,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST = 0xC01E0521,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_I2C_NOT_SUPPORTED = 0xC01E0580,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST = 0xC01E0581,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA = 0xC01E0582,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA = 0xC01E0583,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED = 0xC01E0584,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_DATA = 0xC01E0585,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE = 0xC01E0586,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING = 0xC01E0587,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_MCA_INTERNAL_ERROR = 0xC01E0588,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND = 0xC01E0589,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH = 0xC01E058A,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM = 0xC01E058B,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE = 0xC01E058C,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS = 0xC01E058D,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED = 0xC01E05E0,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME = 0xC01E05E1,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP = 0xC01E05E2,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED = 0xC01E05E3,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INVALID_POINTER = 0xC01E05E4,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE = 0xC01E05E5,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL = 0xC01E05E6,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_INTERNAL_ERROR = 0xC01E05E7,
+ MD_NTSTATUS_WIN_STATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS = 0xC01E05E8,
+ MD_NTSTATUS_WIN_STATUS_FVE_LOCKED_VOLUME = 0xC0210000,
+ MD_NTSTATUS_WIN_STATUS_FVE_NOT_ENCRYPTED = 0xC0210001,
+ MD_NTSTATUS_WIN_STATUS_FVE_BAD_INFORMATION = 0xC0210002,
+ MD_NTSTATUS_WIN_STATUS_FVE_TOO_SMALL = 0xC0210003,
+ MD_NTSTATUS_WIN_STATUS_FVE_FAILED_WRONG_FS = 0xC0210004,
+ MD_NTSTATUS_WIN_STATUS_FVE_BAD_PARTITION_SIZE = 0xC0210005,
+ MD_NTSTATUS_WIN_STATUS_FVE_FS_NOT_EXTENDED = 0xC0210006,
+ MD_NTSTATUS_WIN_STATUS_FVE_FS_MOUNTED = 0xC0210007,
+ MD_NTSTATUS_WIN_STATUS_FVE_NO_LICENSE = 0xC0210008,
+ MD_NTSTATUS_WIN_STATUS_FVE_ACTION_NOT_ALLOWED = 0xC0210009,
+ MD_NTSTATUS_WIN_STATUS_FVE_BAD_DATA = 0xC021000A,
+ MD_NTSTATUS_WIN_STATUS_FVE_VOLUME_NOT_BOUND = 0xC021000B,
+ MD_NTSTATUS_WIN_STATUS_FVE_NOT_DATA_VOLUME = 0xC021000C,
+ MD_NTSTATUS_WIN_STATUS_FVE_CONV_READ_ERROR = 0xC021000D,
+ MD_NTSTATUS_WIN_STATUS_FVE_CONV_WRITE_ERROR = 0xC021000E,
+ MD_NTSTATUS_WIN_STATUS_FVE_OVERLAPPED_UPDATE = 0xC021000F,
+ MD_NTSTATUS_WIN_STATUS_FVE_FAILED_SECTOR_SIZE = 0xC0210010,
+ MD_NTSTATUS_WIN_STATUS_FVE_FAILED_AUTHENTICATION = 0xC0210011,
+ MD_NTSTATUS_WIN_STATUS_FVE_NOT_OS_VOLUME = 0xC0210012,
+ MD_NTSTATUS_WIN_STATUS_FVE_KEYFILE_NOT_FOUND = 0xC0210013,
+ MD_NTSTATUS_WIN_STATUS_FVE_KEYFILE_INVALID = 0xC0210014,
+ MD_NTSTATUS_WIN_STATUS_FVE_KEYFILE_NO_VMK = 0xC0210015,
+ MD_NTSTATUS_WIN_STATUS_FVE_TPM_DISABLED = 0xC0210016,
+ MD_NTSTATUS_WIN_STATUS_FVE_TPM_SRK_AUTH_NOT_ZERO = 0xC0210017,
+ MD_NTSTATUS_WIN_STATUS_FVE_TPM_INVALID_PCR = 0xC0210018,
+ MD_NTSTATUS_WIN_STATUS_FVE_TPM_NO_VMK = 0xC0210019,
+ MD_NTSTATUS_WIN_STATUS_FVE_PIN_INVALID = 0xC021001A,
+ MD_NTSTATUS_WIN_STATUS_FVE_AUTH_INVALID_APPLICATION = 0xC021001B,
+ MD_NTSTATUS_WIN_STATUS_FVE_AUTH_INVALID_CONFIG = 0xC021001C,
+ MD_NTSTATUS_WIN_STATUS_FVE_DEBUGGER_ENABLED = 0xC021001D,
+ MD_NTSTATUS_WIN_STATUS_FVE_DRY_RUN_FAILED = 0xC021001E,
+ MD_NTSTATUS_WIN_STATUS_FVE_BAD_METADATA_POINTER = 0xC021001F,
+ MD_NTSTATUS_WIN_STATUS_FVE_OLD_METADATA_COPY = 0xC0210020,
+ MD_NTSTATUS_WIN_STATUS_FVE_REBOOT_REQUIRED = 0xC0210021,
+ MD_NTSTATUS_WIN_STATUS_FVE_RAW_ACCESS = 0xC0210022,
+ MD_NTSTATUS_WIN_STATUS_FVE_RAW_BLOCKED = 0xC0210023,
+ MD_NTSTATUS_WIN_STATUS_FVE_NO_AUTOUNLOCK_MASTER_KEY = 0xC0210024,
+ MD_NTSTATUS_WIN_STATUS_FVE_MOR_FAILED = 0xC0210025,
+ MD_NTSTATUS_WIN_STATUS_FVE_NO_FEATURE_LICENSE = 0xC0210026,
+ MD_NTSTATUS_WIN_STATUS_FVE_POLICY_USER_DISABLE_RDV_NOT_ALLOWED = 0xC0210027,
+ MD_NTSTATUS_WIN_STATUS_FVE_CONV_RECOVERY_FAILED = 0xC0210028,
+ MD_NTSTATUS_WIN_STATUS_FVE_VIRTUALIZED_SPACE_TOO_BIG = 0xC0210029,
+ MD_NTSTATUS_WIN_STATUS_FVE_INVALID_DATUM_TYPE = 0xC021002A,
+ MD_NTSTATUS_WIN_STATUS_FVE_VOLUME_TOO_SMALL = 0xC0210030,
+ MD_NTSTATUS_WIN_STATUS_FVE_ENH_PIN_INVALID = 0xC0210031,
+ MD_NTSTATUS_WIN_STATUS_FVE_FULL_ENCRYPTION_NOT_ALLOWED_ON_TP_STORAGE = 0xC0210032,
+ MD_NTSTATUS_WIN_STATUS_FVE_WIPE_NOT_ALLOWED_ON_TP_STORAGE = 0xC0210033,
+ MD_NTSTATUS_WIN_STATUS_FVE_NOT_ALLOWED_ON_CSV_STACK = 0xC0210034,
+ MD_NTSTATUS_WIN_STATUS_FVE_NOT_ALLOWED_ON_CLUSTER = 0xC0210035,
+ MD_NTSTATUS_WIN_STATUS_FVE_NOT_ALLOWED_TO_UPGRADE_WHILE_CONVERTING = 0xC0210036,
+ MD_NTSTATUS_WIN_STATUS_FVE_WIPE_CANCEL_NOT_APPLICABLE = 0xC0210037,
+ MD_NTSTATUS_WIN_STATUS_FVE_EDRIVE_DRY_RUN_FAILED = 0xC0210038,
+ MD_NTSTATUS_WIN_STATUS_FVE_SECUREBOOT_DISABLED = 0xC0210039,
+ MD_NTSTATUS_WIN_STATUS_FVE_SECUREBOOT_CONFIG_CHANGE = 0xC021003A,
+ MD_NTSTATUS_WIN_STATUS_FVE_DEVICE_LOCKEDOUT = 0xC021003B,
+ MD_NTSTATUS_WIN_STATUS_FVE_VOLUME_EXTEND_PREVENTS_EOW_DECRYPT = 0xC021003C,
+ MD_NTSTATUS_WIN_STATUS_FVE_NOT_DE_VOLUME = 0xC021003D,
+ MD_NTSTATUS_WIN_STATUS_FVE_PROTECTION_DISABLED = 0xC021003E,
+ MD_NTSTATUS_WIN_STATUS_FVE_PROTECTION_CANNOT_BE_DISABLED = 0xC021003F,
+ MD_NTSTATUS_WIN_STATUS_FVE_OSV_KSR_NOT_ALLOWED = 0xC0210040,
+ MD_NTSTATUS_WIN_STATUS_FWP_CALLOUT_NOT_FOUND = 0xC0220001,
+ MD_NTSTATUS_WIN_STATUS_FWP_CONDITION_NOT_FOUND = 0xC0220002,
+ MD_NTSTATUS_WIN_STATUS_FWP_FILTER_NOT_FOUND = 0xC0220003,
+ MD_NTSTATUS_WIN_STATUS_FWP_LAYER_NOT_FOUND = 0xC0220004,
+ MD_NTSTATUS_WIN_STATUS_FWP_PROVIDER_NOT_FOUND = 0xC0220005,
+ MD_NTSTATUS_WIN_STATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND = 0xC0220006,
+ MD_NTSTATUS_WIN_STATUS_FWP_SUBLAYER_NOT_FOUND = 0xC0220007,
+ MD_NTSTATUS_WIN_STATUS_FWP_NOT_FOUND = 0xC0220008,
+ MD_NTSTATUS_WIN_STATUS_FWP_ALREADY_EXISTS = 0xC0220009,
+ MD_NTSTATUS_WIN_STATUS_FWP_IN_USE = 0xC022000A,
+ MD_NTSTATUS_WIN_STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS = 0xC022000B,
+ MD_NTSTATUS_WIN_STATUS_FWP_WRONG_SESSION = 0xC022000C,
+ MD_NTSTATUS_WIN_STATUS_FWP_NO_TXN_IN_PROGRESS = 0xC022000D,
+ MD_NTSTATUS_WIN_STATUS_FWP_TXN_IN_PROGRESS = 0xC022000E,
+ MD_NTSTATUS_WIN_STATUS_FWP_TXN_ABORTED = 0xC022000F,
+ MD_NTSTATUS_WIN_STATUS_FWP_SESSION_ABORTED = 0xC0220010,
+ MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_TXN = 0xC0220011,
+ MD_NTSTATUS_WIN_STATUS_FWP_TIMEOUT = 0xC0220012,
+ MD_NTSTATUS_WIN_STATUS_FWP_NET_EVENTS_DISABLED = 0xC0220013,
+ MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_LAYER = 0xC0220014,
+ MD_NTSTATUS_WIN_STATUS_FWP_KM_CLIENTS_ONLY = 0xC0220015,
+ MD_NTSTATUS_WIN_STATUS_FWP_LIFETIME_MISMATCH = 0xC0220016,
+ MD_NTSTATUS_WIN_STATUS_FWP_BUILTIN_OBJECT = 0xC0220017,
+ MD_NTSTATUS_WIN_STATUS_FWP_TOO_MANY_CALLOUTS = 0xC0220018,
+ MD_NTSTATUS_WIN_STATUS_FWP_NOTIFICATION_DROPPED = 0xC0220019,
+ MD_NTSTATUS_WIN_STATUS_FWP_TRAFFIC_MISMATCH = 0xC022001A,
+ MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_SA_STATE = 0xC022001B,
+ MD_NTSTATUS_WIN_STATUS_FWP_NULL_POINTER = 0xC022001C,
+ MD_NTSTATUS_WIN_STATUS_FWP_INVALID_ENUMERATOR = 0xC022001D,
+ MD_NTSTATUS_WIN_STATUS_FWP_INVALID_FLAGS = 0xC022001E,
+ MD_NTSTATUS_WIN_STATUS_FWP_INVALID_NET_MASK = 0xC022001F,
+ MD_NTSTATUS_WIN_STATUS_FWP_INVALID_RANGE = 0xC0220020,
+ MD_NTSTATUS_WIN_STATUS_FWP_INVALID_INTERVAL = 0xC0220021,
+ MD_NTSTATUS_WIN_STATUS_FWP_ZERO_LENGTH_ARRAY = 0xC0220022,
+ MD_NTSTATUS_WIN_STATUS_FWP_NULL_DISPLAY_NAME = 0xC0220023,
+ MD_NTSTATUS_WIN_STATUS_FWP_INVALID_ACTION_TYPE = 0xC0220024,
+ MD_NTSTATUS_WIN_STATUS_FWP_INVALID_WEIGHT = 0xC0220025,
+ MD_NTSTATUS_WIN_STATUS_FWP_MATCH_TYPE_MISMATCH = 0xC0220026,
+ MD_NTSTATUS_WIN_STATUS_FWP_TYPE_MISMATCH = 0xC0220027,
+ MD_NTSTATUS_WIN_STATUS_FWP_OUT_OF_BOUNDS = 0xC0220028,
+ MD_NTSTATUS_WIN_STATUS_FWP_RESERVED = 0xC0220029,
+ MD_NTSTATUS_WIN_STATUS_FWP_DUPLICATE_CONDITION = 0xC022002A,
+ MD_NTSTATUS_WIN_STATUS_FWP_DUPLICATE_KEYMOD = 0xC022002B,
+ MD_NTSTATUS_WIN_STATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER = 0xC022002C,
+ MD_NTSTATUS_WIN_STATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER = 0xC022002D,
+ MD_NTSTATUS_WIN_STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER = 0xC022002E,
+ MD_NTSTATUS_WIN_STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT = 0xC022002F,
+ MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_AUTH_METHOD = 0xC0220030,
+ MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_DH_GROUP = 0xC0220031,
+ MD_NTSTATUS_WIN_STATUS_FWP_EM_NOT_SUPPORTED = 0xC0220032,
+ MD_NTSTATUS_WIN_STATUS_FWP_NEVER_MATCH = 0xC0220033,
+ MD_NTSTATUS_WIN_STATUS_FWP_PROVIDER_CONTEXT_MISMATCH = 0xC0220034,
+ MD_NTSTATUS_WIN_STATUS_FWP_INVALID_PARAMETER = 0xC0220035,
+ MD_NTSTATUS_WIN_STATUS_FWP_TOO_MANY_SUBLAYERS = 0xC0220036,
+ MD_NTSTATUS_WIN_STATUS_FWP_CALLOUT_NOTIFICATION_FAILED = 0xC0220037,
+ MD_NTSTATUS_WIN_STATUS_FWP_INVALID_AUTH_TRANSFORM = 0xC0220038,
+ MD_NTSTATUS_WIN_STATUS_FWP_INVALID_CIPHER_TRANSFORM = 0xC0220039,
+ MD_NTSTATUS_WIN_STATUS_FWP_INCOMPATIBLE_CIPHER_TRANSFORM = 0xC022003A,
+ MD_NTSTATUS_WIN_STATUS_FWP_INVALID_TRANSFORM_COMBINATION = 0xC022003B,
+ MD_NTSTATUS_WIN_STATUS_FWP_DUPLICATE_AUTH_METHOD = 0xC022003C,
+ MD_NTSTATUS_WIN_STATUS_FWP_INVALID_TUNNEL_ENDPOINT = 0xC022003D,
+ MD_NTSTATUS_WIN_STATUS_FWP_L2_DRIVER_NOT_READY = 0xC022003E,
+ MD_NTSTATUS_WIN_STATUS_FWP_KEY_DICTATOR_ALREADY_REGISTERED = 0xC022003F,
+ MD_NTSTATUS_WIN_STATUS_FWP_KEY_DICTATION_INVALID_KEYING_MATERIAL = 0xC0220040,
+ MD_NTSTATUS_WIN_STATUS_FWP_CONNECTIONS_DISABLED = 0xC0220041,
+ MD_NTSTATUS_WIN_STATUS_FWP_INVALID_DNS_NAME = 0xC0220042,
+ MD_NTSTATUS_WIN_STATUS_FWP_STILL_ON = 0xC0220043,
+ MD_NTSTATUS_WIN_STATUS_FWP_IKEEXT_NOT_RUNNING = 0xC0220044,
+ MD_NTSTATUS_WIN_STATUS_FWP_TCPIP_NOT_READY = 0xC0220100,
+ MD_NTSTATUS_WIN_STATUS_FWP_INJECT_HANDLE_CLOSING = 0xC0220101,
+ MD_NTSTATUS_WIN_STATUS_FWP_INJECT_HANDLE_STALE = 0xC0220102,
+ MD_NTSTATUS_WIN_STATUS_FWP_CANNOT_PEND = 0xC0220103,
+ MD_NTSTATUS_WIN_STATUS_FWP_DROP_NOICMP = 0xC0220104,
+ MD_NTSTATUS_WIN_STATUS_NDIS_CLOSING = 0xC0230002,
+ MD_NTSTATUS_WIN_STATUS_NDIS_BAD_VERSION = 0xC0230004,
+ MD_NTSTATUS_WIN_STATUS_NDIS_BAD_CHARACTERISTICS = 0xC0230005,
+ MD_NTSTATUS_WIN_STATUS_NDIS_ADAPTER_NOT_FOUND = 0xC0230006,
+ MD_NTSTATUS_WIN_STATUS_NDIS_OPEN_FAILED = 0xC0230007,
+ MD_NTSTATUS_WIN_STATUS_NDIS_DEVICE_FAILED = 0xC0230008,
+ MD_NTSTATUS_WIN_STATUS_NDIS_MULTICAST_FULL = 0xC0230009,
+ MD_NTSTATUS_WIN_STATUS_NDIS_MULTICAST_EXISTS = 0xC023000A,
+ MD_NTSTATUS_WIN_STATUS_NDIS_MULTICAST_NOT_FOUND = 0xC023000B,
+ MD_NTSTATUS_WIN_STATUS_NDIS_REQUEST_ABORTED = 0xC023000C,
+ MD_NTSTATUS_WIN_STATUS_NDIS_RESET_IN_PROGRESS = 0xC023000D,
+ MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_PACKET = 0xC023000F,
+ MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_DEVICE_REQUEST = 0xC0230010,
+ MD_NTSTATUS_WIN_STATUS_NDIS_ADAPTER_NOT_READY = 0xC0230011,
+ MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_LENGTH = 0xC0230014,
+ MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_DATA = 0xC0230015,
+ MD_NTSTATUS_WIN_STATUS_NDIS_BUFFER_TOO_SHORT = 0xC0230016,
+ MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_OID = 0xC0230017,
+ MD_NTSTATUS_WIN_STATUS_NDIS_ADAPTER_REMOVED = 0xC0230018,
+ MD_NTSTATUS_WIN_STATUS_NDIS_UNSUPPORTED_MEDIA = 0xC0230019,
+ MD_NTSTATUS_WIN_STATUS_NDIS_GROUP_ADDRESS_IN_USE = 0xC023001A,
+ MD_NTSTATUS_WIN_STATUS_NDIS_FILE_NOT_FOUND = 0xC023001B,
+ MD_NTSTATUS_WIN_STATUS_NDIS_ERROR_READING_FILE = 0xC023001C,
+ MD_NTSTATUS_WIN_STATUS_NDIS_ALREADY_MAPPED = 0xC023001D,
+ MD_NTSTATUS_WIN_STATUS_NDIS_RESOURCE_CONFLICT = 0xC023001E,
+ MD_NTSTATUS_WIN_STATUS_NDIS_MEDIA_DISCONNECTED = 0xC023001F,
+ MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_ADDRESS = 0xC0230022,
+ MD_NTSTATUS_WIN_STATUS_NDIS_PAUSED = 0xC023002A,
+ MD_NTSTATUS_WIN_STATUS_NDIS_INTERFACE_NOT_FOUND = 0xC023002B,
+ MD_NTSTATUS_WIN_STATUS_NDIS_UNSUPPORTED_REVISION = 0xC023002C,
+ MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_PORT = 0xC023002D,
+ MD_NTSTATUS_WIN_STATUS_NDIS_INVALID_PORT_STATE = 0xC023002E,
+ MD_NTSTATUS_WIN_STATUS_NDIS_LOW_POWER_STATE = 0xC023002F,
+ MD_NTSTATUS_WIN_STATUS_NDIS_REINIT_REQUIRED = 0xC0230030,
+ MD_NTSTATUS_WIN_STATUS_NDIS_NO_QUEUES = 0xC0230031,
+ MD_NTSTATUS_WIN_STATUS_NDIS_NOT_SUPPORTED = 0xC02300BB,
+ MD_NTSTATUS_WIN_STATUS_NDIS_OFFLOAD_POLICY = 0xC023100F,
+ MD_NTSTATUS_WIN_STATUS_NDIS_OFFLOAD_CONNECTION_REJECTED = 0xC0231012,
+ MD_NTSTATUS_WIN_STATUS_NDIS_OFFLOAD_PATH_REJECTED = 0xC0231013,
+ MD_NTSTATUS_WIN_STATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED = 0xC0232000,
+ MD_NTSTATUS_WIN_STATUS_NDIS_DOT11_MEDIA_IN_USE = 0xC0232001,
+ MD_NTSTATUS_WIN_STATUS_NDIS_DOT11_POWER_STATE_INVALID = 0xC0232002,
+ MD_NTSTATUS_WIN_STATUS_NDIS_PM_WOL_PATTERN_LIST_FULL = 0xC0232003,
+ MD_NTSTATUS_WIN_STATUS_NDIS_PM_PROTOCOL_OFFLOAD_LIST_FULL = 0xC0232004,
+ MD_NTSTATUS_WIN_STATUS_NDIS_DOT11_AP_CHANNEL_CURRENTLY_NOT_AVAILABLE = 0xC0232005,
+ MD_NTSTATUS_WIN_STATUS_NDIS_DOT11_AP_BAND_CURRENTLY_NOT_AVAILABLE = 0xC0232006,
+ MD_NTSTATUS_WIN_STATUS_NDIS_DOT11_AP_CHANNEL_NOT_ALLOWED = 0xC0232007,
+ MD_NTSTATUS_WIN_STATUS_NDIS_DOT11_AP_BAND_NOT_ALLOWED = 0xC0232008,
+ MD_NTSTATUS_WIN_STATUS_QUIC_HANDSHAKE_FAILURE = 0xC0240000,
+ MD_NTSTATUS_WIN_STATUS_QUIC_VER_NEG_FAILURE = 0xC0240001,
+ MD_NTSTATUS_WIN_STATUS_TPM_ERROR_MASK = 0xC0290000,
+ MD_NTSTATUS_WIN_STATUS_TPM_AUTHFAIL = 0xC0290001,
+ MD_NTSTATUS_WIN_STATUS_TPM_BADINDEX = 0xC0290002,
+ MD_NTSTATUS_WIN_STATUS_TPM_BAD_PARAMETER = 0xC0290003,
+ MD_NTSTATUS_WIN_STATUS_TPM_AUDITFAILURE = 0xC0290004,
+ MD_NTSTATUS_WIN_STATUS_TPM_CLEAR_DISABLED = 0xC0290005,
+ MD_NTSTATUS_WIN_STATUS_TPM_DEACTIVATED = 0xC0290006,
+ MD_NTSTATUS_WIN_STATUS_TPM_DISABLED = 0xC0290007,
+ MD_NTSTATUS_WIN_STATUS_TPM_DISABLED_CMD = 0xC0290008,
+ MD_NTSTATUS_WIN_STATUS_TPM_FAIL = 0xC0290009,
+ MD_NTSTATUS_WIN_STATUS_TPM_BAD_ORDINAL = 0xC029000A,
+ MD_NTSTATUS_WIN_STATUS_TPM_INSTALL_DISABLED = 0xC029000B,
+ MD_NTSTATUS_WIN_STATUS_TPM_INVALID_KEYHANDLE = 0xC029000C,
+ MD_NTSTATUS_WIN_STATUS_TPM_KEYNOTFOUND = 0xC029000D,
+ MD_NTSTATUS_WIN_STATUS_TPM_INAPPROPRIATE_ENC = 0xC029000E,
+ MD_NTSTATUS_WIN_STATUS_TPM_MIGRATEFAIL = 0xC029000F,
+ MD_NTSTATUS_WIN_STATUS_TPM_INVALID_PCR_INFO = 0xC0290010,
+ MD_NTSTATUS_WIN_STATUS_TPM_NOSPACE = 0xC0290011,
+ MD_NTSTATUS_WIN_STATUS_TPM_NOSRK = 0xC0290012,
+ MD_NTSTATUS_WIN_STATUS_TPM_NOTSEALED_BLOB = 0xC0290013,
+ MD_NTSTATUS_WIN_STATUS_TPM_OWNER_SET = 0xC0290014,
+ MD_NTSTATUS_WIN_STATUS_TPM_RESOURCES = 0xC0290015,
+ MD_NTSTATUS_WIN_STATUS_TPM_SHORTRANDOM = 0xC0290016,
+ MD_NTSTATUS_WIN_STATUS_TPM_SIZE = 0xC0290017,
+ MD_NTSTATUS_WIN_STATUS_TPM_WRONGPCRVAL = 0xC0290018,
+ MD_NTSTATUS_WIN_STATUS_TPM_BAD_PARAM_SIZE = 0xC0290019,
+ MD_NTSTATUS_WIN_STATUS_TPM_SHA_THREAD = 0xC029001A,
+ MD_NTSTATUS_WIN_STATUS_TPM_SHA_ERROR = 0xC029001B,
+ MD_NTSTATUS_WIN_STATUS_TPM_FAILEDSELFTEST = 0xC029001C,
+ MD_NTSTATUS_WIN_STATUS_TPM_AUTH2FAIL = 0xC029001D,
+ MD_NTSTATUS_WIN_STATUS_TPM_BADTAG = 0xC029001E,
+ MD_NTSTATUS_WIN_STATUS_TPM_IOERROR = 0xC029001F,
+ MD_NTSTATUS_WIN_STATUS_TPM_ENCRYPT_ERROR = 0xC0290020,
+ MD_NTSTATUS_WIN_STATUS_TPM_DECRYPT_ERROR = 0xC0290021,
+ MD_NTSTATUS_WIN_STATUS_TPM_INVALID_AUTHHANDLE = 0xC0290022,
+ MD_NTSTATUS_WIN_STATUS_TPM_NO_ENDORSEMENT = 0xC0290023,
+ MD_NTSTATUS_WIN_STATUS_TPM_INVALID_KEYUSAGE = 0xC0290024,
+ MD_NTSTATUS_WIN_STATUS_TPM_WRONG_ENTITYTYPE = 0xC0290025,
+ MD_NTSTATUS_WIN_STATUS_TPM_INVALID_POSTINIT = 0xC0290026,
+ MD_NTSTATUS_WIN_STATUS_TPM_INAPPROPRIATE_SIG = 0xC0290027,
+ MD_NTSTATUS_WIN_STATUS_TPM_BAD_KEY_PROPERTY = 0xC0290028,
+ MD_NTSTATUS_WIN_STATUS_TPM_BAD_MIGRATION = 0xC0290029,
+ MD_NTSTATUS_WIN_STATUS_TPM_BAD_SCHEME = 0xC029002A,
+ MD_NTSTATUS_WIN_STATUS_TPM_BAD_DATASIZE = 0xC029002B,
+ MD_NTSTATUS_WIN_STATUS_TPM_BAD_MODE = 0xC029002C,
+ MD_NTSTATUS_WIN_STATUS_TPM_BAD_PRESENCE = 0xC029002D,
+ MD_NTSTATUS_WIN_STATUS_TPM_BAD_VERSION = 0xC029002E,
+ MD_NTSTATUS_WIN_STATUS_TPM_NO_WRAP_TRANSPORT = 0xC029002F,
+ MD_NTSTATUS_WIN_STATUS_TPM_AUDITFAIL_UNSUCCESSFUL = 0xC0290030,
+ MD_NTSTATUS_WIN_STATUS_TPM_AUDITFAIL_SUCCESSFUL = 0xC0290031,
+ MD_NTSTATUS_WIN_STATUS_TPM_NOTRESETABLE = 0xC0290032,
+ MD_NTSTATUS_WIN_STATUS_TPM_NOTLOCAL = 0xC0290033,
+ MD_NTSTATUS_WIN_STATUS_TPM_BAD_TYPE = 0xC0290034,
+ MD_NTSTATUS_WIN_STATUS_TPM_INVALID_RESOURCE = 0xC0290035,
+ MD_NTSTATUS_WIN_STATUS_TPM_NOTFIPS = 0xC0290036,
+ MD_NTSTATUS_WIN_STATUS_TPM_INVALID_FAMILY = 0xC0290037,
+ MD_NTSTATUS_WIN_STATUS_TPM_NO_NV_PERMISSION = 0xC0290038,
+ MD_NTSTATUS_WIN_STATUS_TPM_REQUIRES_SIGN = 0xC0290039,
+ MD_NTSTATUS_WIN_STATUS_TPM_KEY_NOTSUPPORTED = 0xC029003A,
+ MD_NTSTATUS_WIN_STATUS_TPM_AUTH_CONFLICT = 0xC029003B,
+ MD_NTSTATUS_WIN_STATUS_TPM_AREA_LOCKED = 0xC029003C,
+ MD_NTSTATUS_WIN_STATUS_TPM_BAD_LOCALITY = 0xC029003D,
+ MD_NTSTATUS_WIN_STATUS_TPM_READ_ONLY = 0xC029003E,
+ MD_NTSTATUS_WIN_STATUS_TPM_PER_NOWRITE = 0xC029003F,
+ MD_NTSTATUS_WIN_STATUS_TPM_FAMILYCOUNT = 0xC0290040,
+ MD_NTSTATUS_WIN_STATUS_TPM_WRITE_LOCKED = 0xC0290041,
+ MD_NTSTATUS_WIN_STATUS_TPM_BAD_ATTRIBUTES = 0xC0290042,
+ MD_NTSTATUS_WIN_STATUS_TPM_INVALID_STRUCTURE = 0xC0290043,
+ MD_NTSTATUS_WIN_STATUS_TPM_KEY_OWNER_CONTROL = 0xC0290044,
+ MD_NTSTATUS_WIN_STATUS_TPM_BAD_COUNTER = 0xC0290045,
+ MD_NTSTATUS_WIN_STATUS_TPM_NOT_FULLWRITE = 0xC0290046,
+ MD_NTSTATUS_WIN_STATUS_TPM_CONTEXT_GAP = 0xC0290047,
+ MD_NTSTATUS_WIN_STATUS_TPM_MAXNVWRITES = 0xC0290048,
+ MD_NTSTATUS_WIN_STATUS_TPM_NOOPERATOR = 0xC0290049,
+ MD_NTSTATUS_WIN_STATUS_TPM_RESOURCEMISSING = 0xC029004A,
+ MD_NTSTATUS_WIN_STATUS_TPM_DELEGATE_LOCK = 0xC029004B,
+ MD_NTSTATUS_WIN_STATUS_TPM_DELEGATE_FAMILY = 0xC029004C,
+ MD_NTSTATUS_WIN_STATUS_TPM_DELEGATE_ADMIN = 0xC029004D,
+ MD_NTSTATUS_WIN_STATUS_TPM_TRANSPORT_NOTEXCLUSIVE = 0xC029004E,
+ MD_NTSTATUS_WIN_STATUS_TPM_OWNER_CONTROL = 0xC029004F,
+ MD_NTSTATUS_WIN_STATUS_TPM_DAA_RESOURCES = 0xC0290050,
+ MD_NTSTATUS_WIN_STATUS_TPM_DAA_INPUT_DATA0 = 0xC0290051,
+ MD_NTSTATUS_WIN_STATUS_TPM_DAA_INPUT_DATA1 = 0xC0290052,
+ MD_NTSTATUS_WIN_STATUS_TPM_DAA_ISSUER_SETTINGS = 0xC0290053,
+ MD_NTSTATUS_WIN_STATUS_TPM_DAA_TPM_SETTINGS = 0xC0290054,
+ MD_NTSTATUS_WIN_STATUS_TPM_DAA_STAGE = 0xC0290055,
+ MD_NTSTATUS_WIN_STATUS_TPM_DAA_ISSUER_VALIDITY = 0xC0290056,
+ MD_NTSTATUS_WIN_STATUS_TPM_DAA_WRONG_W = 0xC0290057,
+ MD_NTSTATUS_WIN_STATUS_TPM_BAD_HANDLE = 0xC0290058,
+ MD_NTSTATUS_WIN_STATUS_TPM_BAD_DELEGATE = 0xC0290059,
+ MD_NTSTATUS_WIN_STATUS_TPM_BADCONTEXT = 0xC029005A,
+ MD_NTSTATUS_WIN_STATUS_TPM_TOOMANYCONTEXTS = 0xC029005B,
+ MD_NTSTATUS_WIN_STATUS_TPM_MA_TICKET_SIGNATURE = 0xC029005C,
+ MD_NTSTATUS_WIN_STATUS_TPM_MA_DESTINATION = 0xC029005D,
+ MD_NTSTATUS_WIN_STATUS_TPM_MA_SOURCE = 0xC029005E,
+ MD_NTSTATUS_WIN_STATUS_TPM_MA_AUTHORITY = 0xC029005F,
+ MD_NTSTATUS_WIN_STATUS_TPM_PERMANENTEK = 0xC0290061,
+ MD_NTSTATUS_WIN_STATUS_TPM_BAD_SIGNATURE = 0xC0290062,
+ MD_NTSTATUS_WIN_STATUS_TPM_NOCONTEXTSPACE = 0xC0290063,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_ASYMMETRIC = 0xC0290081,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_ATTRIBUTES = 0xC0290082,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_HASH = 0xC0290083,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_VALUE = 0xC0290084,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_HIERARCHY = 0xC0290085,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_KEY_SIZE = 0xC0290087,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_MGF = 0xC0290088,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_MODE = 0xC0290089,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_TYPE = 0xC029008A,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_HANDLE = 0xC029008B,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_KDF = 0xC029008C,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_RANGE = 0xC029008D,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_AUTH_FAIL = 0xC029008E,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_NONCE = 0xC029008F,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_PP = 0xC0290090,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_SCHEME = 0xC0290092,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_SIZE = 0xC0290095,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_SYMMETRIC = 0xC0290096,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_TAG = 0xC0290097,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_SELECTOR = 0xC0290098,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_INSUFFICIENT = 0xC029009A,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_SIGNATURE = 0xC029009B,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_KEY = 0xC029009C,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_POLICY_FAIL = 0xC029009D,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_INTEGRITY = 0xC029009F,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_TICKET = 0xC02900A0,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_RESERVED_BITS = 0xC02900A1,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_BAD_AUTH = 0xC02900A2,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_EXPIRED = 0xC02900A3,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_POLICY_CC = 0xC02900A4,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_BINDING = 0xC02900A5,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_CURVE = 0xC02900A6,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_ECC_POINT = 0xC02900A7,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_INITIALIZE = 0xC0290100,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_FAILURE = 0xC0290101,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_SEQUENCE = 0xC0290103,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_PRIVATE = 0xC029010B,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_HMAC = 0xC0290119,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_DISABLED = 0xC0290120,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_EXCLUSIVE = 0xC0290121,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_ECC_CURVE = 0xC0290123,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_AUTH_TYPE = 0xC0290124,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_AUTH_MISSING = 0xC0290125,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_POLICY = 0xC0290126,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_PCR = 0xC0290127,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_PCR_CHANGED = 0xC0290128,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_UPGRADE = 0xC029012D,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_TOO_MANY_CONTEXTS = 0xC029012E,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_AUTH_UNAVAILABLE = 0xC029012F,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_REBOOT = 0xC0290130,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_UNBALANCED = 0xC0290131,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_COMMAND_SIZE = 0xC0290142,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_COMMAND_CODE = 0xC0290143,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_AUTHSIZE = 0xC0290144,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_AUTH_CONTEXT = 0xC0290145,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_NV_RANGE = 0xC0290146,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_NV_SIZE = 0xC0290147,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_NV_LOCKED = 0xC0290148,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_NV_AUTHORIZATION = 0xC0290149,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_NV_UNINITIALIZED = 0xC029014A,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_NV_SPACE = 0xC029014B,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_NV_DEFINED = 0xC029014C,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_BAD_CONTEXT = 0xC0290150,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_CPHASH = 0xC0290151,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_PARENT = 0xC0290152,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_NEEDS_TEST = 0xC0290153,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_NO_RESULT = 0xC0290154,
+ MD_NTSTATUS_WIN_STATUS_TPM_20_E_SENSITIVE = 0xC0290155,
+ MD_NTSTATUS_WIN_STATUS_TPM_COMMAND_BLOCKED = 0xC0290400,
+ MD_NTSTATUS_WIN_STATUS_TPM_INVALID_HANDLE = 0xC0290401,
+ MD_NTSTATUS_WIN_STATUS_TPM_DUPLICATE_VHANDLE = 0xC0290402,
+ MD_NTSTATUS_WIN_STATUS_TPM_EMBEDDED_COMMAND_BLOCKED = 0xC0290403,
+ MD_NTSTATUS_WIN_STATUS_TPM_EMBEDDED_COMMAND_UNSUPPORTED = 0xC0290404,
+ MD_NTSTATUS_WIN_STATUS_TPM_RETRY = 0xC0290800,
+ MD_NTSTATUS_WIN_STATUS_TPM_NEEDS_SELFTEST = 0xC0290801,
+ MD_NTSTATUS_WIN_STATUS_TPM_DOING_SELFTEST = 0xC0290802,
+ MD_NTSTATUS_WIN_STATUS_TPM_DEFEND_LOCK_RUNNING = 0xC0290803,
+ MD_NTSTATUS_WIN_STATUS_TPM_COMMAND_CANCELED = 0xC0291001,
+ MD_NTSTATUS_WIN_STATUS_TPM_TOO_MANY_CONTEXTS = 0xC0291002,
+ MD_NTSTATUS_WIN_STATUS_TPM_NOT_FOUND = 0xC0291003,
+ MD_NTSTATUS_WIN_STATUS_TPM_ACCESS_DENIED = 0xC0291004,
+ MD_NTSTATUS_WIN_STATUS_TPM_INSUFFICIENT_BUFFER = 0xC0291005,
+ MD_NTSTATUS_WIN_STATUS_TPM_PPI_FUNCTION_UNSUPPORTED = 0xC0291006,
+ MD_NTSTATUS_WIN_STATUS_PCP_ERROR_MASK = 0xC0292000,
+ MD_NTSTATUS_WIN_STATUS_PCP_DEVICE_NOT_READY = 0xC0292001,
+ MD_NTSTATUS_WIN_STATUS_PCP_INVALID_HANDLE = 0xC0292002,
+ MD_NTSTATUS_WIN_STATUS_PCP_INVALID_PARAMETER = 0xC0292003,
+ MD_NTSTATUS_WIN_STATUS_PCP_FLAG_NOT_SUPPORTED = 0xC0292004,
+ MD_NTSTATUS_WIN_STATUS_PCP_NOT_SUPPORTED = 0xC0292005,
+ MD_NTSTATUS_WIN_STATUS_PCP_BUFFER_TOO_SMALL = 0xC0292006,
+ MD_NTSTATUS_WIN_STATUS_PCP_INTERNAL_ERROR = 0xC0292007,
+ MD_NTSTATUS_WIN_STATUS_PCP_AUTHENTICATION_FAILED = 0xC0292008,
+ MD_NTSTATUS_WIN_STATUS_PCP_AUTHENTICATION_IGNORED = 0xC0292009,
+ MD_NTSTATUS_WIN_STATUS_PCP_POLICY_NOT_FOUND = 0xC029200A,
+ MD_NTSTATUS_WIN_STATUS_PCP_PROFILE_NOT_FOUND = 0xC029200B,
+ MD_NTSTATUS_WIN_STATUS_PCP_VALIDATION_FAILED = 0xC029200C,
+ MD_NTSTATUS_WIN_STATUS_PCP_DEVICE_NOT_FOUND = 0xC029200D,
+ MD_NTSTATUS_WIN_STATUS_PCP_WRONG_PARENT = 0xC029200E,
+ MD_NTSTATUS_WIN_STATUS_PCP_KEY_NOT_LOADED = 0xC029200F,
+ MD_NTSTATUS_WIN_STATUS_PCP_NO_KEY_CERTIFICATION = 0xC0292010,
+ MD_NTSTATUS_WIN_STATUS_PCP_KEY_NOT_FINALIZED = 0xC0292011,
+ MD_NTSTATUS_WIN_STATUS_PCP_ATTESTATION_CHALLENGE_NOT_SET = 0xC0292012,
+ MD_NTSTATUS_WIN_STATUS_PCP_NOT_PCR_BOUND = 0xC0292013,
+ MD_NTSTATUS_WIN_STATUS_PCP_KEY_ALREADY_FINALIZED = 0xC0292014,
+ MD_NTSTATUS_WIN_STATUS_PCP_KEY_USAGE_POLICY_NOT_SUPPORTED = 0xC0292015,
+ MD_NTSTATUS_WIN_STATUS_PCP_KEY_USAGE_POLICY_INVALID = 0xC0292016,
+ MD_NTSTATUS_WIN_STATUS_PCP_SOFT_KEY_ERROR = 0xC0292017,
+ MD_NTSTATUS_WIN_STATUS_PCP_KEY_NOT_AUTHENTICATED = 0xC0292018,
+ MD_NTSTATUS_WIN_STATUS_PCP_KEY_NOT_AIK = 0xC0292019,
+ MD_NTSTATUS_WIN_STATUS_PCP_KEY_NOT_SIGNING_KEY = 0xC029201A,
+ MD_NTSTATUS_WIN_STATUS_PCP_LOCKED_OUT = 0xC029201B,
+ MD_NTSTATUS_WIN_STATUS_PCP_CLAIM_TYPE_NOT_SUPPORTED = 0xC029201C,
+ MD_NTSTATUS_WIN_STATUS_PCP_TPM_VERSION_NOT_SUPPORTED = 0xC029201D,
+ MD_NTSTATUS_WIN_STATUS_PCP_BUFFER_LENGTH_MISMATCH = 0xC029201E,
+ MD_NTSTATUS_WIN_STATUS_PCP_IFX_RSA_KEY_CREATION_BLOCKED = 0xC029201F,
+ MD_NTSTATUS_WIN_STATUS_PCP_TICKET_MISSING = 0xC0292020,
+ MD_NTSTATUS_WIN_STATUS_PCP_RAW_POLICY_NOT_SUPPORTED = 0xC0292021,
+ MD_NTSTATUS_WIN_STATUS_PCP_KEY_HANDLE_INVALIDATED = 0xC0292022,
+ MD_NTSTATUS_WIN_STATUS_RTPM_NO_RESULT = 0xC0293002,
+ MD_NTSTATUS_WIN_STATUS_RTPM_PCR_READ_INCOMPLETE = 0xC0293003,
+ MD_NTSTATUS_WIN_STATUS_RTPM_INVALID_CONTEXT = 0xC0293004,
+ MD_NTSTATUS_WIN_STATUS_RTPM_UNSUPPORTED_CMD = 0xC0293005,
+ MD_NTSTATUS_WIN_STATUS_TPM_ZERO_EXHAUST_ENABLED = 0xC0294000,
+ MD_NTSTATUS_WIN_STATUS_HV_INVALID_HYPERCALL_CODE = 0xC0350002,
+ MD_NTSTATUS_WIN_STATUS_HV_INVALID_HYPERCALL_INPUT = 0xC0350003,
+ MD_NTSTATUS_WIN_STATUS_HV_INVALID_ALIGNMENT = 0xC0350004,
+ MD_NTSTATUS_WIN_STATUS_HV_INVALID_PARAMETER = 0xC0350005,
+ MD_NTSTATUS_WIN_STATUS_HV_ACCESS_DENIED = 0xC0350006,
+ MD_NTSTATUS_WIN_STATUS_HV_INVALID_PARTITION_STATE = 0xC0350007,
+ MD_NTSTATUS_WIN_STATUS_HV_OPERATION_DENIED = 0xC0350008,
+ MD_NTSTATUS_WIN_STATUS_HV_UNKNOWN_PROPERTY = 0xC0350009,
+ MD_NTSTATUS_WIN_STATUS_HV_PROPERTY_VALUE_OUT_OF_RANGE = 0xC035000A,
+ MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_MEMORY = 0xC035000B,
+ MD_NTSTATUS_WIN_STATUS_HV_PARTITION_TOO_DEEP = 0xC035000C,
+ MD_NTSTATUS_WIN_STATUS_HV_INVALID_PARTITION_ID = 0xC035000D,
+ MD_NTSTATUS_WIN_STATUS_HV_INVALID_VP_INDEX = 0xC035000E,
+ MD_NTSTATUS_WIN_STATUS_HV_INVALID_PORT_ID = 0xC0350011,
+ MD_NTSTATUS_WIN_STATUS_HV_INVALID_CONNECTION_ID = 0xC0350012,
+ MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_BUFFERS = 0xC0350013,
+ MD_NTSTATUS_WIN_STATUS_HV_NOT_ACKNOWLEDGED = 0xC0350014,
+ MD_NTSTATUS_WIN_STATUS_HV_INVALID_VP_STATE = 0xC0350015,
+ MD_NTSTATUS_WIN_STATUS_HV_ACKNOWLEDGED = 0xC0350016,
+ MD_NTSTATUS_WIN_STATUS_HV_INVALID_SAVE_RESTORE_STATE = 0xC0350017,
+ MD_NTSTATUS_WIN_STATUS_HV_INVALID_SYNIC_STATE = 0xC0350018,
+ MD_NTSTATUS_WIN_STATUS_HV_OBJECT_IN_USE = 0xC0350019,
+ MD_NTSTATUS_WIN_STATUS_HV_INVALID_PROXIMITY_DOMAIN_INFO = 0xC035001A,
+ MD_NTSTATUS_WIN_STATUS_HV_NO_DATA = 0xC035001B,
+ MD_NTSTATUS_WIN_STATUS_HV_INACTIVE = 0xC035001C,
+ MD_NTSTATUS_WIN_STATUS_HV_NO_RESOURCES = 0xC035001D,
+ MD_NTSTATUS_WIN_STATUS_HV_FEATURE_UNAVAILABLE = 0xC035001E,
+ MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_BUFFER = 0xC0350033,
+ MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_DEVICE_DOMAINS = 0xC0350038,
+ MD_NTSTATUS_WIN_STATUS_HV_CPUID_FEATURE_VALIDATION_ERROR = 0xC035003C,
+ MD_NTSTATUS_WIN_STATUS_HV_CPUID_XSAVE_FEATURE_VALIDATION_ERROR = 0xC035003D,
+ MD_NTSTATUS_WIN_STATUS_HV_PROCESSOR_STARTUP_TIMEOUT = 0xC035003E,
+ MD_NTSTATUS_WIN_STATUS_HV_SMX_ENABLED = 0xC035003F,
+ MD_NTSTATUS_WIN_STATUS_HV_INVALID_LP_INDEX = 0xC0350041,
+ MD_NTSTATUS_WIN_STATUS_HV_INVALID_REGISTER_VALUE = 0xC0350050,
+ MD_NTSTATUS_WIN_STATUS_HV_INVALID_VTL_STATE = 0xC0350051,
+ MD_NTSTATUS_WIN_STATUS_HV_NX_NOT_DETECTED = 0xC0350055,
+ MD_NTSTATUS_WIN_STATUS_HV_INVALID_DEVICE_ID = 0xC0350057,
+ MD_NTSTATUS_WIN_STATUS_HV_INVALID_DEVICE_STATE = 0xC0350058,
+ MD_NTSTATUS_WIN_STATUS_HV_PAGE_REQUEST_INVALID = 0xC0350060,
+ MD_NTSTATUS_WIN_STATUS_HV_INVALID_CPU_GROUP_ID = 0xC035006F,
+ MD_NTSTATUS_WIN_STATUS_HV_INVALID_CPU_GROUP_STATE = 0xC0350070,
+ MD_NTSTATUS_WIN_STATUS_HV_OPERATION_FAILED = 0xC0350071,
+ MD_NTSTATUS_WIN_STATUS_HV_NOT_ALLOWED_WITH_NESTED_VIRT_ACTIVE = 0xC0350072,
+ MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_ROOT_MEMORY = 0xC0350073,
+ MD_NTSTATUS_WIN_STATUS_HV_EVENT_BUFFER_ALREADY_FREED = 0xC0350074,
+ MD_NTSTATUS_WIN_STATUS_HV_INSUFFICIENT_CONTIGUOUS_MEMORY = 0xC0350075,
+ MD_NTSTATUS_WIN_STATUS_HV_NOT_PRESENT = 0xC0351000,
+ MD_NTSTATUS_WIN_STATUS_IPSEC_BAD_SPI = 0xC0360001,
+ MD_NTSTATUS_WIN_STATUS_IPSEC_SA_LIFETIME_EXPIRED = 0xC0360002,
+ MD_NTSTATUS_WIN_STATUS_IPSEC_WRONG_SA = 0xC0360003,
+ MD_NTSTATUS_WIN_STATUS_IPSEC_REPLAY_CHECK_FAILED = 0xC0360004,
+ MD_NTSTATUS_WIN_STATUS_IPSEC_INVALID_PACKET = 0xC0360005,
+ MD_NTSTATUS_WIN_STATUS_IPSEC_INTEGRITY_CHECK_FAILED = 0xC0360006,
+ MD_NTSTATUS_WIN_STATUS_IPSEC_CLEAR_TEXT_DROP = 0xC0360007,
+ MD_NTSTATUS_WIN_STATUS_IPSEC_AUTH_FIREWALL_DROP = 0xC0360008,
+ MD_NTSTATUS_WIN_STATUS_IPSEC_THROTTLE_DROP = 0xC0360009,
+ MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_BLOCK = 0xC0368000,
+ MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_RECEIVED_MULTICAST = 0xC0368001,
+ MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_INVALID_PACKET = 0xC0368002,
+ MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_STATE_LOOKUP_FAILED = 0xC0368003,
+ MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_MAX_ENTRIES = 0xC0368004,
+ MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_KEYMOD_NOT_ALLOWED = 0xC0368005,
+ MD_NTSTATUS_WIN_STATUS_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES = 0xC0368006,
+ MD_NTSTATUS_WIN_STATUS_VID_DUPLICATE_HANDLER = 0xC0370001,
+ MD_NTSTATUS_WIN_STATUS_VID_TOO_MANY_HANDLERS = 0xC0370002,
+ MD_NTSTATUS_WIN_STATUS_VID_QUEUE_FULL = 0xC0370003,
+ MD_NTSTATUS_WIN_STATUS_VID_HANDLER_NOT_PRESENT = 0xC0370004,
+ MD_NTSTATUS_WIN_STATUS_VID_INVALID_OBJECT_NAME = 0xC0370005,
+ MD_NTSTATUS_WIN_STATUS_VID_PARTITION_NAME_TOO_LONG = 0xC0370006,
+ MD_NTSTATUS_WIN_STATUS_VID_MESSAGE_QUEUE_NAME_TOO_LONG = 0xC0370007,
+ MD_NTSTATUS_WIN_STATUS_VID_PARTITION_ALREADY_EXISTS = 0xC0370008,
+ MD_NTSTATUS_WIN_STATUS_VID_PARTITION_DOES_NOT_EXIST = 0xC0370009,
+ MD_NTSTATUS_WIN_STATUS_VID_PARTITION_NAME_NOT_FOUND = 0xC037000A,
+ MD_NTSTATUS_WIN_STATUS_VID_MESSAGE_QUEUE_ALREADY_EXISTS = 0xC037000B,
+ MD_NTSTATUS_WIN_STATUS_VID_EXCEEDED_MBP_ENTRY_MAP_LIMIT = 0xC037000C,
+ MD_NTSTATUS_WIN_STATUS_VID_MB_STILL_REFERENCED = 0xC037000D,
+ MD_NTSTATUS_WIN_STATUS_VID_CHILD_GPA_PAGE_SET_CORRUPTED = 0xC037000E,
+ MD_NTSTATUS_WIN_STATUS_VID_INVALID_NUMA_SETTINGS = 0xC037000F,
+ MD_NTSTATUS_WIN_STATUS_VID_INVALID_NUMA_NODE_INDEX = 0xC0370010,
+ MD_NTSTATUS_WIN_STATUS_VID_NOTIFICATION_QUEUE_ALREADY_ASSOCIATED = 0xC0370011,
+ MD_NTSTATUS_WIN_STATUS_VID_INVALID_MEMORY_BLOCK_HANDLE = 0xC0370012,
+ MD_NTSTATUS_WIN_STATUS_VID_PAGE_RANGE_OVERFLOW = 0xC0370013,
+ MD_NTSTATUS_WIN_STATUS_VID_INVALID_MESSAGE_QUEUE_HANDLE = 0xC0370014,
+ MD_NTSTATUS_WIN_STATUS_VID_INVALID_GPA_RANGE_HANDLE = 0xC0370015,
+ MD_NTSTATUS_WIN_STATUS_VID_NO_MEMORY_BLOCK_NOTIFICATION_QUEUE = 0xC0370016,
+ MD_NTSTATUS_WIN_STATUS_VID_MEMORY_BLOCK_LOCK_COUNT_EXCEEDED = 0xC0370017,
+ MD_NTSTATUS_WIN_STATUS_VID_INVALID_PPM_HANDLE = 0xC0370018,
+ MD_NTSTATUS_WIN_STATUS_VID_MBPS_ARE_LOCKED = 0xC0370019,
+ MD_NTSTATUS_WIN_STATUS_VID_MESSAGE_QUEUE_CLOSED = 0xC037001A,
+ MD_NTSTATUS_WIN_STATUS_VID_VIRTUAL_PROCESSOR_LIMIT_EXCEEDED = 0xC037001B,
+ MD_NTSTATUS_WIN_STATUS_VID_STOP_PENDING = 0xC037001C,
+ MD_NTSTATUS_WIN_STATUS_VID_INVALID_PROCESSOR_STATE = 0xC037001D,
+ MD_NTSTATUS_WIN_STATUS_VID_EXCEEDED_KM_CONTEXT_COUNT_LIMIT = 0xC037001E,
+ MD_NTSTATUS_WIN_STATUS_VID_KM_INTERFACE_ALREADY_INITIALIZED = 0xC037001F,
+ MD_NTSTATUS_WIN_STATUS_VID_MB_PROPERTY_ALREADY_SET_RESET = 0xC0370020,
+ MD_NTSTATUS_WIN_STATUS_VID_MMIO_RANGE_DESTROYED = 0xC0370021,
+ MD_NTSTATUS_WIN_STATUS_VID_INVALID_CHILD_GPA_PAGE_SET = 0xC0370022,
+ MD_NTSTATUS_WIN_STATUS_VID_RESERVE_PAGE_SET_IS_BEING_USED = 0xC0370023,
+ MD_NTSTATUS_WIN_STATUS_VID_RESERVE_PAGE_SET_TOO_SMALL = 0xC0370024,
+ MD_NTSTATUS_WIN_STATUS_VID_MBP_ALREADY_LOCKED_USING_RESERVED_PAGE = 0xC0370025,
+ MD_NTSTATUS_WIN_STATUS_VID_MBP_COUNT_EXCEEDED_LIMIT = 0xC0370026,
+ MD_NTSTATUS_WIN_STATUS_VID_SAVED_STATE_CORRUPT = 0xC0370027,
+ MD_NTSTATUS_WIN_STATUS_VID_SAVED_STATE_UNRECOGNIZED_ITEM = 0xC0370028,
+ MD_NTSTATUS_WIN_STATUS_VID_SAVED_STATE_INCOMPATIBLE = 0xC0370029,
+ MD_NTSTATUS_WIN_STATUS_VID_VTL_ACCESS_DENIED = 0xC037002A,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DATABASE_FULL = 0xC0380001,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_CONFIGURATION_CORRUPTED = 0xC0380002,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_CONFIGURATION_NOT_IN_SYNC = 0xC0380003,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_CONFIG_UPDATE_FAILED = 0xC0380004,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_CONTAINS_NON_SIMPLE_VOLUME = 0xC0380005,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_DUPLICATE = 0xC0380006,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_DYNAMIC = 0xC0380007,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_ID_INVALID = 0xC0380008,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_INVALID = 0xC0380009,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAST_VOTER = 0xC038000A,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_INVALID = 0xC038000B,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_NON_BASIC_BETWEEN_BASIC_PARTITIONS = 0xC038000C,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_NOT_CYLINDER_ALIGNED = 0xC038000D,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_PARTITIONS_TOO_SMALL = 0xC038000E,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_PRIMARY_BETWEEN_LOGICAL_PARTITIONS = 0xC038000F,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_LAYOUT_TOO_MANY_PARTITIONS = 0xC0380010,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_MISSING = 0xC0380011,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_NOT_EMPTY = 0xC0380012,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_NOT_ENOUGH_SPACE = 0xC0380013,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_REVECTORING_FAILED = 0xC0380014,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_SECTOR_SIZE_INVALID = 0xC0380015,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_SET_NOT_CONTAINED = 0xC0380016,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_MEMBERS = 0xC0380017,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DISK_USED_BY_MULTIPLE_PLEXES = 0xC0380018,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DYNAMIC_DISK_NOT_SUPPORTED = 0xC0380019,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_ALREADY_USED = 0xC038001A,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_NOT_CONTIGUOUS = 0xC038001B,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_NOT_IN_PUBLIC_REGION = 0xC038001C,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_NOT_SECTOR_ALIGNED = 0xC038001D,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_OVERLAPS_EBR_PARTITION = 0xC038001E,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_EXTENT_VOLUME_LENGTHS_DO_NOT_MATCH = 0xC038001F,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_FAULT_TOLERANT_NOT_SUPPORTED = 0xC0380020,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_INTERLEAVE_LENGTH_INVALID = 0xC0380021,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_MAXIMUM_REGISTERED_USERS = 0xC0380022,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_IN_SYNC = 0xC0380023,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_INDEX_DUPLICATE = 0xC0380024,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_INDEX_INVALID = 0xC0380025,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_MISSING = 0xC0380026,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_NOT_DETACHED = 0xC0380027,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_MEMBER_REGENERATING = 0xC0380028,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_ALL_DISKS_FAILED = 0xC0380029,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_NO_REGISTERED_USERS = 0xC038002A,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_NO_SUCH_USER = 0xC038002B,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_NOTIFICATION_RESET = 0xC038002C,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_MEMBERS_INVALID = 0xC038002D,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_PLEXES_INVALID = 0xC038002E,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_DUPLICATE = 0xC038002F,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_ID_INVALID = 0xC0380030,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_INVALID = 0xC0380031,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_NAME_INVALID = 0xC0380032,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_OFFLINE = 0xC0380033,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_HAS_QUORUM = 0xC0380034,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_WITHOUT_QUORUM = 0xC0380035,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PARTITION_STYLE_INVALID = 0xC0380036,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PARTITION_UPDATE_FAILED = 0xC0380037,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_IN_SYNC = 0xC0380038,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_INDEX_DUPLICATE = 0xC0380039,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_INDEX_INVALID = 0xC038003A,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_LAST_ACTIVE = 0xC038003B,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_MISSING = 0xC038003C,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_REGENERATING = 0xC038003D,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_TYPE_INVALID = 0xC038003E,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_NOT_RAID5 = 0xC038003F,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_NOT_SIMPLE = 0xC0380040,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_STRUCTURE_SIZE_INVALID = 0xC0380041,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_TOO_MANY_NOTIFICATION_REQUESTS = 0xC0380042,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_TRANSACTION_IN_PROGRESS = 0xC0380043,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_UNEXPECTED_DISK_LAYOUT_CHANGE = 0xC0380044,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_CONTAINS_MISSING_DISK = 0xC0380045,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_ID_INVALID = 0xC0380046,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_LENGTH_INVALID = 0xC0380047,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_LENGTH_NOT_SECTOR_SIZE_MULTIPLE = 0xC0380048,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_NOT_MIRRORED = 0xC0380049,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_NOT_RETAINED = 0xC038004A,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_OFFLINE = 0xC038004B,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_RETAINED = 0xC038004C,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_EXTENTS_INVALID = 0xC038004D,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_DIFFERENT_SECTOR_SIZE = 0xC038004E,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_BAD_BOOT_DISK = 0xC038004F,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_CONFIG_OFFLINE = 0xC0380050,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_CONFIG_ONLINE = 0xC0380051,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_NOT_PRIMARY_PACK = 0xC0380052,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PACK_LOG_UPDATE_FAILED = 0xC0380053,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_DISKS_IN_PLEX_INVALID = 0xC0380054,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_DISKS_IN_MEMBER_INVALID = 0xC0380055,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_VOLUME_MIRRORED = 0xC0380056,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PLEX_NOT_SIMPLE_SPANNED = 0xC0380057,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_NO_VALID_LOG_COPIES = 0xC0380058,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_PRIMARY_PACK_PRESENT = 0xC0380059,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_NUMBER_OF_DISKS_INVALID = 0xC038005A,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_MIRROR_NOT_SUPPORTED = 0xC038005B,
+ MD_NTSTATUS_WIN_STATUS_VOLMGR_RAID5_NOT_SUPPORTED = 0xC038005C,
+ MD_NTSTATUS_WIN_STATUS_BCD_TOO_MANY_ELEMENTS = 0xC0390002,
+ MD_NTSTATUS_WIN_STATUS_VHD_DRIVE_FOOTER_MISSING = 0xC03A0001,
+ MD_NTSTATUS_WIN_STATUS_VHD_DRIVE_FOOTER_CHECKSUM_MISMATCH = 0xC03A0002,
+ MD_NTSTATUS_WIN_STATUS_VHD_DRIVE_FOOTER_CORRUPT = 0xC03A0003,
+ MD_NTSTATUS_WIN_STATUS_VHD_FORMAT_UNKNOWN = 0xC03A0004,
+ MD_NTSTATUS_WIN_STATUS_VHD_FORMAT_UNSUPPORTED_VERSION = 0xC03A0005,
+ MD_NTSTATUS_WIN_STATUS_VHD_SPARSE_HEADER_CHECKSUM_MISMATCH = 0xC03A0006,
+ MD_NTSTATUS_WIN_STATUS_VHD_SPARSE_HEADER_UNSUPPORTED_VERSION = 0xC03A0007,
+ MD_NTSTATUS_WIN_STATUS_VHD_SPARSE_HEADER_CORRUPT = 0xC03A0008,
+ MD_NTSTATUS_WIN_STATUS_VHD_BLOCK_ALLOCATION_FAILURE = 0xC03A0009,
+ MD_NTSTATUS_WIN_STATUS_VHD_BLOCK_ALLOCATION_TABLE_CORRUPT = 0xC03A000A,
+ MD_NTSTATUS_WIN_STATUS_VHD_INVALID_BLOCK_SIZE = 0xC03A000B,
+ MD_NTSTATUS_WIN_STATUS_VHD_BITMAP_MISMATCH = 0xC03A000C,
+ MD_NTSTATUS_WIN_STATUS_VHD_PARENT_VHD_NOT_FOUND = 0xC03A000D,
+ MD_NTSTATUS_WIN_STATUS_VHD_CHILD_PARENT_ID_MISMATCH = 0xC03A000E,
+ MD_NTSTATUS_WIN_STATUS_VHD_CHILD_PARENT_TIMESTAMP_MISMATCH = 0xC03A000F,
+ MD_NTSTATUS_WIN_STATUS_VHD_METADATA_READ_FAILURE = 0xC03A0010,
+ MD_NTSTATUS_WIN_STATUS_VHD_METADATA_WRITE_FAILURE = 0xC03A0011,
+ MD_NTSTATUS_WIN_STATUS_VHD_INVALID_SIZE = 0xC03A0012,
+ MD_NTSTATUS_WIN_STATUS_VHD_INVALID_FILE_SIZE = 0xC03A0013,
+ MD_NTSTATUS_WIN_STATUS_VIRTDISK_PROVIDER_NOT_FOUND = 0xC03A0014,
+ MD_NTSTATUS_WIN_STATUS_VIRTDISK_NOT_VIRTUAL_DISK = 0xC03A0015,
+ MD_NTSTATUS_WIN_STATUS_VHD_PARENT_VHD_ACCESS_DENIED = 0xC03A0016,
+ MD_NTSTATUS_WIN_STATUS_VHD_CHILD_PARENT_SIZE_MISMATCH = 0xC03A0017,
+ MD_NTSTATUS_WIN_STATUS_VHD_DIFFERENCING_CHAIN_CYCLE_DETECTED = 0xC03A0018,
+ MD_NTSTATUS_WIN_STATUS_VHD_DIFFERENCING_CHAIN_ERROR_IN_PARENT = 0xC03A0019,
+ MD_NTSTATUS_WIN_STATUS_VIRTUAL_DISK_LIMITATION = 0xC03A001A,
+ MD_NTSTATUS_WIN_STATUS_VHD_INVALID_TYPE = 0xC03A001B,
+ MD_NTSTATUS_WIN_STATUS_VHD_INVALID_STATE = 0xC03A001C,
+ MD_NTSTATUS_WIN_STATUS_VIRTDISK_UNSUPPORTED_DISK_SECTOR_SIZE = 0xC03A001D,
+ MD_NTSTATUS_WIN_STATUS_VIRTDISK_DISK_ALREADY_OWNED = 0xC03A001E,
+ MD_NTSTATUS_WIN_STATUS_VIRTDISK_DISK_ONLINE_AND_WRITABLE = 0xC03A001F,
+ MD_NTSTATUS_WIN_STATUS_CTLOG_TRACKING_NOT_INITIALIZED = 0xC03A0020,
+ MD_NTSTATUS_WIN_STATUS_CTLOG_LOGFILE_SIZE_EXCEEDED_MAXSIZE = 0xC03A0021,
+ MD_NTSTATUS_WIN_STATUS_CTLOG_VHD_CHANGED_OFFLINE = 0xC03A0022,
+ MD_NTSTATUS_WIN_STATUS_CTLOG_INVALID_TRACKING_STATE = 0xC03A0023,
+ MD_NTSTATUS_WIN_STATUS_CTLOG_INCONSISTENT_TRACKING_FILE = 0xC03A0024,
+ MD_NTSTATUS_WIN_STATUS_VHD_METADATA_FULL = 0xC03A0028,
+ MD_NTSTATUS_WIN_STATUS_VHD_INVALID_CHANGE_TRACKING_ID = 0xC03A0029,
+ MD_NTSTATUS_WIN_STATUS_VHD_CHANGE_TRACKING_DISABLED = 0xC03A002A,
+ MD_NTSTATUS_WIN_STATUS_VHD_MISSING_CHANGE_TRACKING_INFORMATION = 0xC03A0030,
+ MD_NTSTATUS_WIN_STATUS_VHD_RESIZE_WOULD_TRUNCATE_DATA = 0xC03A0031,
+ MD_NTSTATUS_WIN_STATUS_VHD_COULD_NOT_COMPUTE_MINIMUM_VIRTUAL_SIZE = 0xC03A0032,
+ MD_NTSTATUS_WIN_STATUS_VHD_ALREADY_AT_OR_BELOW_MINIMUM_VIRTUAL_SIZE = 0xC03A0033,
+ MD_NTSTATUS_WIN_STATUS_RKF_KEY_NOT_FOUND = 0xC0400001,
+ MD_NTSTATUS_WIN_STATUS_RKF_DUPLICATE_KEY = 0xC0400002,
+ MD_NTSTATUS_WIN_STATUS_RKF_BLOB_FULL = 0xC0400003,
+ MD_NTSTATUS_WIN_STATUS_RKF_STORE_FULL = 0xC0400004,
+ MD_NTSTATUS_WIN_STATUS_RKF_FILE_BLOCKED = 0xC0400005,
+ MD_NTSTATUS_WIN_STATUS_RKF_ACTIVE_KEY = 0xC0400006,
+ MD_NTSTATUS_WIN_STATUS_RDBSS_RESTART_OPERATION = 0xC0410001,
+ MD_NTSTATUS_WIN_STATUS_RDBSS_CONTINUE_OPERATION = 0xC0410002,
+ MD_NTSTATUS_WIN_STATUS_RDBSS_POST_OPERATION = 0xC0410003,
+ MD_NTSTATUS_WIN_STATUS_RDBSS_RETRY_LOOKUP = 0xC0410004,
+ MD_NTSTATUS_WIN_STATUS_BTH_ATT_INVALID_HANDLE = 0xC0420001,
+ MD_NTSTATUS_WIN_STATUS_BTH_ATT_READ_NOT_PERMITTED = 0xC0420002,
+ MD_NTSTATUS_WIN_STATUS_BTH_ATT_WRITE_NOT_PERMITTED = 0xC0420003,
+ MD_NTSTATUS_WIN_STATUS_BTH_ATT_INVALID_PDU = 0xC0420004,
+ MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_AUTHENTICATION = 0xC0420005,
+ MD_NTSTATUS_WIN_STATUS_BTH_ATT_REQUEST_NOT_SUPPORTED = 0xC0420006,
+ MD_NTSTATUS_WIN_STATUS_BTH_ATT_INVALID_OFFSET = 0xC0420007,
+ MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_AUTHORIZATION = 0xC0420008,
+ MD_NTSTATUS_WIN_STATUS_BTH_ATT_PREPARE_QUEUE_FULL = 0xC0420009,
+ MD_NTSTATUS_WIN_STATUS_BTH_ATT_ATTRIBUTE_NOT_FOUND = 0xC042000A,
+ MD_NTSTATUS_WIN_STATUS_BTH_ATT_ATTRIBUTE_NOT_LONG = 0xC042000B,
+ MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION_KEY_SIZE = 0xC042000C,
+ MD_NTSTATUS_WIN_STATUS_BTH_ATT_INVALID_ATTRIBUTE_VALUE_LENGTH = 0xC042000D,
+ MD_NTSTATUS_WIN_STATUS_BTH_ATT_UNLIKELY = 0xC042000E,
+ MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_ENCRYPTION = 0xC042000F,
+ MD_NTSTATUS_WIN_STATUS_BTH_ATT_UNSUPPORTED_GROUP_TYPE = 0xC0420010,
+ MD_NTSTATUS_WIN_STATUS_BTH_ATT_INSUFFICIENT_RESOURCES = 0xC0420011,
+ MD_NTSTATUS_WIN_STATUS_BTH_ATT_UNKNOWN_ERROR = 0xC0421000,
+ MD_NTSTATUS_WIN_STATUS_SECUREBOOT_ROLLBACK_DETECTED = 0xC0430001,
+ MD_NTSTATUS_WIN_STATUS_SECUREBOOT_POLICY_VIOLATION = 0xC0430002,
+ MD_NTSTATUS_WIN_STATUS_SECUREBOOT_INVALID_POLICY = 0xC0430003,
+ MD_NTSTATUS_WIN_STATUS_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND = 0xC0430004,
+ MD_NTSTATUS_WIN_STATUS_SECUREBOOT_POLICY_NOT_SIGNED = 0xC0430005,
+ MD_NTSTATUS_WIN_STATUS_SECUREBOOT_FILE_REPLACED = 0xC0430007,
+ MD_NTSTATUS_WIN_STATUS_SECUREBOOT_POLICY_NOT_AUTHORIZED = 0xC0430008,
+ MD_NTSTATUS_WIN_STATUS_SECUREBOOT_POLICY_UNKNOWN = 0xC0430009,
+ MD_NTSTATUS_WIN_STATUS_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION = 0xC043000A,
+ MD_NTSTATUS_WIN_STATUS_SECUREBOOT_PLATFORM_ID_MISMATCH = 0xC043000B,
+ MD_NTSTATUS_WIN_STATUS_SECUREBOOT_POLICY_ROLLBACK_DETECTED = 0xC043000C,
+ MD_NTSTATUS_WIN_STATUS_SECUREBOOT_POLICY_UPGRADE_MISMATCH = 0xC043000D,
+ MD_NTSTATUS_WIN_STATUS_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING = 0xC043000E,
+ MD_NTSTATUS_WIN_STATUS_SECUREBOOT_NOT_BASE_POLICY = 0xC043000F,
+ MD_NTSTATUS_WIN_STATUS_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY = 0xC0430010,
+ MD_NTSTATUS_WIN_STATUS_AUDIO_ENGINE_NODE_NOT_FOUND = 0xC0440001,
+ MD_NTSTATUS_WIN_STATUS_HDAUDIO_EMPTY_CONNECTION_LIST = 0xC0440002,
+ MD_NTSTATUS_WIN_STATUS_HDAUDIO_CONNECTION_LIST_NOT_SUPPORTED = 0xC0440003,
+ MD_NTSTATUS_WIN_STATUS_HDAUDIO_NO_LOGICAL_DEVICES_CREATED = 0xC0440004,
+ MD_NTSTATUS_WIN_STATUS_HDAUDIO_NULL_LINKED_LIST_ENTRY = 0xC0440005,
+ MD_NTSTATUS_WIN_STATUS_VSM_NOT_INITIALIZED = 0xC0450000,
+ MD_NTSTATUS_WIN_STATUS_VSM_DMA_PROTECTION_NOT_IN_USE = 0xC0450001,
+ MD_NTSTATUS_WIN_STATUS_VOLSNAP_BOOTFILE_NOT_VALID = 0xC0500003,
+ MD_NTSTATUS_WIN_STATUS_VOLSNAP_ACTIVATION_TIMEOUT = 0xC0500004,
+ MD_NTSTATUS_WIN_STATUS_IO_PREEMPTED = 0xC0510001,
+ MD_NTSTATUS_WIN_STATUS_SVHDX_ERROR_STORED = 0xC05C0000,
+ MD_NTSTATUS_WIN_STATUS_SVHDX_ERROR_NOT_AVAILABLE = 0xC05CFF00,
+ MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_AVAILABLE = 0xC05CFF01,
+ MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_CAPACITY_DATA_CHANGED = 0xC05CFF02,
+ MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_PREEMPTED = 0xC05CFF03,
+ MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_RESERVATIONS_RELEASED = 0xC05CFF04,
+ MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_REGISTRATIONS_PREEMPTED = 0xC05CFF05,
+ MD_NTSTATUS_WIN_STATUS_SVHDX_UNIT_ATTENTION_OPERATING_DEFINITION_CHANGED = 0xC05CFF06,
+ MD_NTSTATUS_WIN_STATUS_SVHDX_RESERVATION_CONFLICT = 0xC05CFF07,
+ MD_NTSTATUS_WIN_STATUS_SVHDX_WRONG_FILE_TYPE = 0xC05CFF08,
+ MD_NTSTATUS_WIN_STATUS_SVHDX_VERSION_MISMATCH = 0xC05CFF09,
+ MD_NTSTATUS_WIN_STATUS_VHD_SHARED = 0xC05CFF0A,
+ MD_NTSTATUS_WIN_STATUS_SVHDX_NO_INITIATOR = 0xC05CFF0B,
+ MD_NTSTATUS_WIN_STATUS_VHDSET_BACKING_STORAGE_NOT_FOUND = 0xC05CFF0C,
+ MD_NTSTATUS_WIN_STATUS_SMB_NO_PREAUTH_INTEGRITY_HASH_OVERLAP = 0xC05D0000,
+ MD_NTSTATUS_WIN_STATUS_SMB_BAD_CLUSTER_DIALECT = 0xC05D0001,
+ MD_NTSTATUS_WIN_STATUS_SMB_GUEST_LOGON_BLOCKED = 0xC05D0002,
+ MD_NTSTATUS_WIN_STATUS_SPACES_FAULT_DOMAIN_TYPE_INVALID = 0xC0E70001,
+ MD_NTSTATUS_WIN_STATUS_SPACES_RESILIENCY_TYPE_INVALID = 0xC0E70003,
+ MD_NTSTATUS_WIN_STATUS_SPACES_DRIVE_SECTOR_SIZE_INVALID = 0xC0E70004,
+ MD_NTSTATUS_WIN_STATUS_SPACES_DRIVE_REDUNDANCY_INVALID = 0xC0E70006,
+ MD_NTSTATUS_WIN_STATUS_SPACES_NUMBER_OF_DATA_COPIES_INVALID = 0xC0E70007,
+ MD_NTSTATUS_WIN_STATUS_SPACES_INTERLEAVE_LENGTH_INVALID = 0xC0E70009,
+ MD_NTSTATUS_WIN_STATUS_SPACES_NUMBER_OF_COLUMNS_INVALID = 0xC0E7000A,
+ MD_NTSTATUS_WIN_STATUS_SPACES_NOT_ENOUGH_DRIVES = 0xC0E7000B,
+ MD_NTSTATUS_WIN_STATUS_SPACES_EXTENDED_ERROR = 0xC0E7000C,
+ MD_NTSTATUS_WIN_STATUS_SPACES_PROVISIONING_TYPE_INVALID = 0xC0E7000D,
+ MD_NTSTATUS_WIN_STATUS_SPACES_ALLOCATION_SIZE_INVALID = 0xC0E7000E,
+ MD_NTSTATUS_WIN_STATUS_SPACES_ENCLOSURE_AWARE_INVALID = 0xC0E7000F,
+ MD_NTSTATUS_WIN_STATUS_SPACES_WRITE_CACHE_SIZE_INVALID = 0xC0E70010,
+ MD_NTSTATUS_WIN_STATUS_SPACES_NUMBER_OF_GROUPS_INVALID = 0xC0E70011,
+ MD_NTSTATUS_WIN_STATUS_SPACES_DRIVE_OPERATIONAL_STATE_INVALID = 0xC0E70012,
+ MD_NTSTATUS_WIN_STATUS_SPACES_UPDATE_COLUMN_STATE = 0xC0E70013,
+ MD_NTSTATUS_WIN_STATUS_SPACES_MAP_REQUIRED = 0xC0E70014,
+ MD_NTSTATUS_WIN_STATUS_SPACES_UNSUPPORTED_VERSION = 0xC0E70015,
+ MD_NTSTATUS_WIN_STATUS_SPACES_CORRUPT_METADATA = 0xC0E70016,
+ MD_NTSTATUS_WIN_STATUS_SPACES_DRT_FULL = 0xC0E70017,
+ MD_NTSTATUS_WIN_STATUS_SPACES_INCONSISTENCY = 0xC0E70018,
+ MD_NTSTATUS_WIN_STATUS_SPACES_LOG_NOT_READY = 0xC0E70019,
+ MD_NTSTATUS_WIN_STATUS_SPACES_NO_REDUNDANCY = 0xC0E7001A,
+ MD_NTSTATUS_WIN_STATUS_SPACES_DRIVE_NOT_READY = 0xC0E7001B,
+ MD_NTSTATUS_WIN_STATUS_SPACES_DRIVE_SPLIT = 0xC0E7001C,
+ MD_NTSTATUS_WIN_STATUS_SPACES_DRIVE_LOST_DATA = 0xC0E7001D,
+ MD_NTSTATUS_WIN_STATUS_SPACES_ENTRY_INCOMPLETE = 0xC0E7001E,
+ MD_NTSTATUS_WIN_STATUS_SPACES_ENTRY_INVALID = 0xC0E7001F,
+ MD_NTSTATUS_WIN_STATUS_SPACES_MARK_DIRTY = 0xC0E70020,
+ MD_NTSTATUS_WIN_STATUS_SECCORE_INVALID_COMMAND = 0xC0E80000,
+ MD_NTSTATUS_WIN_STATUS_SYSTEM_INTEGRITY_ROLLBACK_DETECTED = 0xC0E90001,
+ MD_NTSTATUS_WIN_STATUS_SYSTEM_INTEGRITY_POLICY_VIOLATION = 0xC0E90002,
+ MD_NTSTATUS_WIN_STATUS_SYSTEM_INTEGRITY_INVALID_POLICY = 0xC0E90003,
+ MD_NTSTATUS_WIN_STATUS_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED = 0xC0E90004,
+ MD_NTSTATUS_WIN_STATUS_SYSTEM_INTEGRITY_TOO_MANY_POLICIES = 0xC0E90005,
+ MD_NTSTATUS_WIN_STATUS_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED = 0xC0E90006,
+ MD_NTSTATUS_WIN_STATUS_NO_APPLICABLE_APP_LICENSES_FOUND = 0xC0EA0001,
+ MD_NTSTATUS_WIN_STATUS_CLIP_LICENSE_NOT_FOUND = 0xC0EA0002,
+ MD_NTSTATUS_WIN_STATUS_CLIP_DEVICE_LICENSE_MISSING = 0xC0EA0003,
+ MD_NTSTATUS_WIN_STATUS_CLIP_LICENSE_INVALID_SIGNATURE = 0xC0EA0004,
+ MD_NTSTATUS_WIN_STATUS_CLIP_KEYHOLDER_LICENSE_MISSING_OR_INVALID = 0xC0EA0005,
+ MD_NTSTATUS_WIN_STATUS_CLIP_LICENSE_EXPIRED = 0xC0EA0006,
+ MD_NTSTATUS_WIN_STATUS_CLIP_LICENSE_SIGNED_BY_UNKNOWN_SOURCE = 0xC0EA0007,
+ MD_NTSTATUS_WIN_STATUS_CLIP_LICENSE_NOT_SIGNED = 0xC0EA0008,
+ MD_NTSTATUS_WIN_STATUS_CLIP_LICENSE_HARDWARE_ID_OUT_OF_TOLERANCE = 0xC0EA0009,
+ MD_NTSTATUS_WIN_STATUS_CLIP_LICENSE_DEVICE_ID_MISMATCH = 0xC0EA000A,
+ MD_NTSTATUS_WIN_STATUS_PLATFORM_MANIFEST_NOT_AUTHORIZED = 0xC0EB0001,
+ MD_NTSTATUS_WIN_STATUS_PLATFORM_MANIFEST_INVALID = 0xC0EB0002,
+ MD_NTSTATUS_WIN_STATUS_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED = 0xC0EB0003,
+ MD_NTSTATUS_WIN_STATUS_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED = 0xC0EB0004,
+ MD_NTSTATUS_WIN_STATUS_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND = 0xC0EB0005,
+ MD_NTSTATUS_WIN_STATUS_PLATFORM_MANIFEST_NOT_ACTIVE = 0xC0EB0006,
+ MD_NTSTATUS_WIN_STATUS_PLATFORM_MANIFEST_NOT_SIGNED = 0xC0EB0007,
+ MD_NTSTATUS_WIN_STATUS_APPEXEC_CONDITION_NOT_SATISFIED = 0xC0EC0000,
+ MD_NTSTATUS_WIN_STATUS_APPEXEC_HANDLE_INVALIDATED = 0xC0EC0001,
+ MD_NTSTATUS_WIN_STATUS_APPEXEC_INVALID_HOST_GENERATION = 0xC0EC0002,
+ MD_NTSTATUS_WIN_STATUS_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION = 0xC0EC0003,
+ MD_NTSTATUS_WIN_STATUS_APPEXEC_INVALID_HOST_STATE = 0xC0EC0004,
+ MD_NTSTATUS_WIN_STATUS_APPEXEC_NO_DONOR = 0xC0EC0005,
+ MD_NTSTATUS_WIN_STATUS_APPEXEC_HOST_ID_MISMATCH = 0xC0EC0006,
+ MD_NTSTATUS_WIN_STATUS_APPEXEC_UNKNOWN_USER = 0xC0EC0007,
+} MDNTStatusCodeWin;
+
+// These constants are defined in the MSDN documentation of
+// the EXCEPTION_RECORD structure.
+typedef enum {
+ MD_ACCESS_VIOLATION_WIN_READ = 0,
+ MD_ACCESS_VIOLATION_WIN_WRITE = 1,
+ MD_ACCESS_VIOLATION_WIN_EXEC = 8
+} MDAccessViolationTypeWin;
+
+// These constants are defined in the MSDN documentation of
+// the EXCEPTION_RECORD structure.
+typedef enum {
+ MD_IN_PAGE_ERROR_WIN_READ = 0,
+ MD_IN_PAGE_ERROR_WIN_WRITE = 1,
+ MD_IN_PAGE_ERROR_WIN_EXEC = 8
+} MDInPageErrorTypeWin;
+
+/* For (MDException).exception_information[0], when (MDException).exception_code
+ * is MD_EXCEPTION_CODE_WIN_STACK_BUFFER_OVERRUN. This describes the underlying
+ * reason for the crash. These values come from winnt.h.
+ *
+ * The content of this enum was created from winnt.h in the 10 SDK
+ * (version 10.0.19041.0) with
+ *
+ * egrep '#define FAST_FAIL_[A-Z_0-9]+\s+[0-9]' winnt.h
+ * | tr -d '\r'
+ * | sed -r 's@#define FAST_FAIL_([A-Z_0-9]+)\s+([0-9]+).*@\2 \1@'
+ * | sed -r 's@([0-9]+) ([A-Z_0-9]+)@ MD_FAST_FAIL_WIN_\2 = \1,@' */
+typedef enum {
+ MD_FAST_FAIL_WIN_LEGACY_GS_VIOLATION = 0,
+ MD_FAST_FAIL_WIN_VTGUARD_CHECK_FAILURE = 1,
+ MD_FAST_FAIL_WIN_STACK_COOKIE_CHECK_FAILURE = 2,
+ MD_FAST_FAIL_WIN_CORRUPT_LIST_ENTRY = 3,
+ MD_FAST_FAIL_WIN_INCORRECT_STACK = 4,
+ MD_FAST_FAIL_WIN_INVALID_ARG = 5,
+ MD_FAST_FAIL_WIN_GS_COOKIE_INIT = 6,
+ MD_FAST_FAIL_WIN_FATAL_APP_EXIT = 7,
+ MD_FAST_FAIL_WIN_RANGE_CHECK_FAILURE = 8,
+ MD_FAST_FAIL_WIN_UNSAFE_REGISTRY_ACCESS = 9,
+ MD_FAST_FAIL_WIN_GUARD_ICALL_CHECK_FAILURE = 10,
+ MD_FAST_FAIL_WIN_GUARD_WRITE_CHECK_FAILURE = 11,
+ MD_FAST_FAIL_WIN_INVALID_FIBER_SWITCH = 12,
+ MD_FAST_FAIL_WIN_INVALID_SET_OF_CONTEXT = 13,
+ MD_FAST_FAIL_WIN_INVALID_REFERENCE_COUNT = 14,
+ MD_FAST_FAIL_WIN_INVALID_JUMP_BUFFER = 18,
+ MD_FAST_FAIL_WIN_MRDATA_MODIFIED = 19,
+ MD_FAST_FAIL_WIN_CERTIFICATION_FAILURE = 20,
+ MD_FAST_FAIL_WIN_INVALID_EXCEPTION_CHAIN = 21,
+ MD_FAST_FAIL_WIN_CRYPTO_LIBRARY = 22,
+ MD_FAST_FAIL_WIN_INVALID_CALL_IN_DLL_CALLOUT = 23,
+ MD_FAST_FAIL_WIN_INVALID_IMAGE_BASE = 24,
+ MD_FAST_FAIL_WIN_DLOAD_PROTECTION_FAILURE = 25,
+ MD_FAST_FAIL_WIN_UNSAFE_EXTENSION_CALL = 26,
+ MD_FAST_FAIL_WIN_DEPRECATED_SERVICE_INVOKED = 27,
+ MD_FAST_FAIL_WIN_INVALID_BUFFER_ACCESS = 28,
+ MD_FAST_FAIL_WIN_INVALID_BALANCED_TREE = 29,
+ MD_FAST_FAIL_WIN_INVALID_NEXT_THREAD = 30,
+ MD_FAST_FAIL_WIN_GUARD_ICALL_CHECK_SUPPRESSED = 31,
+ MD_FAST_FAIL_WIN_APCS_DISABLED = 32,
+ MD_FAST_FAIL_WIN_INVALID_IDLE_STATE = 33,
+ MD_FAST_FAIL_WIN_MRDATA_PROTECTION_FAILURE = 34,
+ MD_FAST_FAIL_WIN_UNEXPECTED_HEAP_EXCEPTION = 35,
+ MD_FAST_FAIL_WIN_INVALID_LOCK_STATE = 36,
+ MD_FAST_FAIL_WIN_GUARD_JUMPTABLE = 37,
+ MD_FAST_FAIL_WIN_INVALID_LONGJUMP_TARGET = 38,
+ MD_FAST_FAIL_WIN_INVALID_DISPATCH_CONTEXT = 39,
+ MD_FAST_FAIL_WIN_INVALID_THREAD = 40,
+ MD_FAST_FAIL_WIN_INVALID_SYSCALL_NUMBER = 41,
+ MD_FAST_FAIL_WIN_INVALID_FILE_OPERATION = 42,
+ MD_FAST_FAIL_WIN_LPAC_ACCESS_DENIED = 43,
+ MD_FAST_FAIL_WIN_GUARD_SS_FAILURE = 44,
+ MD_FAST_FAIL_WIN_LOADER_CONTINUITY_FAILURE = 45,
+ MD_FAST_FAIL_WIN_GUARD_EXPORT_SUPPRESSION_FAILURE = 46,
+ MD_FAST_FAIL_WIN_INVALID_CONTROL_STACK = 47,
+ MD_FAST_FAIL_WIN_SET_CONTEXT_DENIED = 48,
+ MD_FAST_FAIL_WIN_INVALID_IAT = 49,
+ MD_FAST_FAIL_WIN_HEAP_METADATA_CORRUPTION = 50,
+ MD_FAST_FAIL_WIN_PAYLOAD_RESTRICTION_VIOLATION = 51,
+ MD_FAST_FAIL_WIN_LOW_LABEL_ACCESS_DENIED = 52,
+ MD_FAST_FAIL_WIN_ENCLAVE_CALL_FAILURE = 53,
+ MD_FAST_FAIL_WIN_UNHANDLED_LSS_EXCEPTON = 54,
+ MD_FAST_FAIL_WIN_ADMINLESS_ACCESS_DENIED = 55,
+ MD_FAST_FAIL_WIN_UNEXPECTED_CALL = 56,
+ MD_FAST_FAIL_WIN_CONTROL_INVALID_RETURN_ADDRESS = 57,
+ MD_FAST_FAIL_WIN_UNEXPECTED_HOST_BEHAVIOR = 58,
+ MD_FAST_FAIL_WIN_FLAGS_CORRUPTION = 59,
+ MD_FAST_FAIL_WIN_VEH_CORRUPTION = 60,
+ MD_FAST_FAIL_WIN_ETW_CORRUPTION = 61,
+ MD_FAST_FAIL_WIN_RIO_ABORT = 62,
+ MD_FAST_FAIL_WIN_INVALID_PFN = 63,
+} MDFastFailWin;
+
+/* For various (MDException).exception_information entries. This describes the
+* underlying reason for the crash. These values come from winerror.h.
+ *
+ * The content of this enum was created from winnt.h in the 10 SDK
+ * (version 10.0.19041.0) with
+ *
+ * egrep -o '#define ERROR_[A-Z_0-9]+\s+[0-9]+L' winerror.h
+ * | tr -d '\r'
+ * | sed -r 's@#define ERROR_([A-Z_0-9]+)\s+([0-9]+)L@\2 \1@'
+ * | sort -n
+ * | sed -r 's@([0-9]+) ([A-Z_0-9]+)@ MD_ERROR_WIN_\2 = \1,@' */
+typedef enum {
+ MD_ERROR_WIN_SUCCESS = 0,
+ MD_ERROR_WIN_INVALID_FUNCTION = 1,
+ MD_ERROR_WIN_FILE_NOT_FOUND = 2,
+ MD_ERROR_WIN_PATH_NOT_FOUND = 3,
+ MD_ERROR_WIN_TOO_MANY_OPEN_FILES = 4,
+ MD_ERROR_WIN_ACCESS_DENIED = 5,
+ MD_ERROR_WIN_INVALID_HANDLE = 6,
+ MD_ERROR_WIN_ARENA_TRASHED = 7,
+ MD_ERROR_WIN_NOT_ENOUGH_MEMORY = 8,
+ MD_ERROR_WIN_INVALID_BLOCK = 9,
+ MD_ERROR_WIN_BAD_ENVIRONMENT = 10,
+ MD_ERROR_WIN_BAD_FORMAT = 11,
+ MD_ERROR_WIN_INVALID_ACCESS = 12,
+ MD_ERROR_WIN_INVALID_DATA = 13,
+ MD_ERROR_WIN_OUTOFMEMORY = 14,
+ MD_ERROR_WIN_INVALID_DRIVE = 15,
+ MD_ERROR_WIN_CURRENT_DIRECTORY = 16,
+ MD_ERROR_WIN_NOT_SAME_DEVICE = 17,
+ MD_ERROR_WIN_NO_MORE_FILES = 18,
+ MD_ERROR_WIN_WRITE_PROTECT = 19,
+ MD_ERROR_WIN_BAD_UNIT = 20,
+ MD_ERROR_WIN_NOT_READY = 21,
+ MD_ERROR_WIN_BAD_COMMAND = 22,
+ MD_ERROR_WIN_CRC = 23,
+ MD_ERROR_WIN_BAD_LENGTH = 24,
+ MD_ERROR_WIN_SEEK = 25,
+ MD_ERROR_WIN_NOT_DOS_DISK = 26,
+ MD_ERROR_WIN_SECTOR_NOT_FOUND = 27,
+ MD_ERROR_WIN_OUT_OF_PAPER = 28,
+ MD_ERROR_WIN_WRITE_FAULT = 29,
+ MD_ERROR_WIN_READ_FAULT = 30,
+ MD_ERROR_WIN_GEN_FAILURE = 31,
+ MD_ERROR_WIN_SHARING_VIOLATION = 32,
+ MD_ERROR_WIN_LOCK_VIOLATION = 33,
+ MD_ERROR_WIN_WRONG_DISK = 34,
+ MD_ERROR_WIN_SHARING_BUFFER_EXCEEDED = 36,
+ MD_ERROR_WIN_HANDLE_EOF = 38,
+ MD_ERROR_WIN_HANDLE_DISK_FULL = 39,
+ MD_ERROR_WIN_NOT_SUPPORTED = 50,
+ MD_ERROR_WIN_REM_NOT_LIST = 51,
+ MD_ERROR_WIN_DUP_NAME = 52,
+ MD_ERROR_WIN_BAD_NETPATH = 53,
+ MD_ERROR_WIN_NETWORK_BUSY = 54,
+ MD_ERROR_WIN_DEV_NOT_EXIST = 55,
+ MD_ERROR_WIN_TOO_MANY_CMDS = 56,
+ MD_ERROR_WIN_ADAP_HDW_ERR = 57,
+ MD_ERROR_WIN_BAD_NET_RESP = 58,
+ MD_ERROR_WIN_UNEXP_NET_ERR = 59,
+ MD_ERROR_WIN_BAD_REM_ADAP = 60,
+ MD_ERROR_WIN_PRINTQ_FULL = 61,
+ MD_ERROR_WIN_NO_SPOOL_SPACE = 62,
+ MD_ERROR_WIN_PRINT_CANCELLED = 63,
+ MD_ERROR_WIN_NETNAME_DELETED = 64,
+ MD_ERROR_WIN_NETWORK_ACCESS_DENIED = 65,
+ MD_ERROR_WIN_BAD_DEV_TYPE = 66,
+ MD_ERROR_WIN_BAD_NET_NAME = 67,
+ MD_ERROR_WIN_TOO_MANY_NAMES = 68,
+ MD_ERROR_WIN_TOO_MANY_SESS = 69,
+ MD_ERROR_WIN_SHARING_PAUSED = 70,
+ MD_ERROR_WIN_REQ_NOT_ACCEP = 71,
+ MD_ERROR_WIN_REDIR_PAUSED = 72,
+ MD_ERROR_WIN_FILE_EXISTS = 80,
+ MD_ERROR_WIN_CANNOT_MAKE = 82,
+ MD_ERROR_WIN_FAIL_I24 = 83,
+ MD_ERROR_WIN_OUT_OF_STRUCTURES = 84,
+ MD_ERROR_WIN_ALREADY_ASSIGNED = 85,
+ MD_ERROR_WIN_INVALID_PASSWORD = 86,
+ MD_ERROR_WIN_INVALID_PARAMETER = 87,
+ MD_ERROR_WIN_NET_WRITE_FAULT = 88,
+ MD_ERROR_WIN_NO_PROC_SLOTS = 89,
+ MD_ERROR_WIN_TOO_MANY_SEMAPHORES = 100,
+ MD_ERROR_WIN_EXCL_SEM_ALREADY_OWNED = 101,
+ MD_ERROR_WIN_SEM_IS_SET = 102,
+ MD_ERROR_WIN_TOO_MANY_SEM_REQUESTS = 103,
+ MD_ERROR_WIN_INVALID_AT_INTERRUPT_TIME = 104,
+ MD_ERROR_WIN_SEM_OWNER_DIED = 105,
+ MD_ERROR_WIN_SEM_USER_LIMIT = 106,
+ MD_ERROR_WIN_DISK_CHANGE = 107,
+ MD_ERROR_WIN_DRIVE_LOCKED = 108,
+ MD_ERROR_WIN_BROKEN_PIPE = 109,
+ MD_ERROR_WIN_OPEN_FAILED = 110,
+ MD_ERROR_WIN_BUFFER_OVERFLOW = 111,
+ MD_ERROR_WIN_DISK_FULL = 112,
+ MD_ERROR_WIN_NO_MORE_SEARCH_HANDLES = 113,
+ MD_ERROR_WIN_INVALID_TARGET_HANDLE = 114,
+ MD_ERROR_WIN_INVALID_CATEGORY = 117,
+ MD_ERROR_WIN_INVALID_VERIFY_SWITCH = 118,
+ MD_ERROR_WIN_BAD_DRIVER_LEVEL = 119,
+ MD_ERROR_WIN_CALL_NOT_IMPLEMENTED = 120,
+ MD_ERROR_WIN_SEM_TIMEOUT = 121,
+ MD_ERROR_WIN_INSUFFICIENT_BUFFER = 122,
+ MD_ERROR_WIN_INVALID_NAME = 123,
+ MD_ERROR_WIN_INVALID_LEVEL = 124,
+ MD_ERROR_WIN_NO_VOLUME_LABEL = 125,
+ MD_ERROR_WIN_MOD_NOT_FOUND = 126,
+ MD_ERROR_WIN_PROC_NOT_FOUND = 127,
+ MD_ERROR_WIN_WAIT_NO_CHILDREN = 128,
+ MD_ERROR_WIN_CHILD_NOT_COMPLETE = 129,
+ MD_ERROR_WIN_DIRECT_ACCESS_HANDLE = 130,
+ MD_ERROR_WIN_NEGATIVE_SEEK = 131,
+ MD_ERROR_WIN_SEEK_ON_DEVICE = 132,
+ MD_ERROR_WIN_IS_JOIN_TARGET = 133,
+ MD_ERROR_WIN_IS_JOINED = 134,
+ MD_ERROR_WIN_IS_SUBSTED = 135,
+ MD_ERROR_WIN_NOT_JOINED = 136,
+ MD_ERROR_WIN_NOT_SUBSTED = 137,
+ MD_ERROR_WIN_JOIN_TO_JOIN = 138,
+ MD_ERROR_WIN_SUBST_TO_SUBST = 139,
+ MD_ERROR_WIN_JOIN_TO_SUBST = 140,
+ MD_ERROR_WIN_SUBST_TO_JOIN = 141,
+ MD_ERROR_WIN_BUSY_DRIVE = 142,
+ MD_ERROR_WIN_SAME_DRIVE = 143,
+ MD_ERROR_WIN_DIR_NOT_ROOT = 144,
+ MD_ERROR_WIN_DIR_NOT_EMPTY = 145,
+ MD_ERROR_WIN_IS_SUBST_PATH = 146,
+ MD_ERROR_WIN_IS_JOIN_PATH = 147,
+ MD_ERROR_WIN_PATH_BUSY = 148,
+ MD_ERROR_WIN_IS_SUBST_TARGET = 149,
+ MD_ERROR_WIN_SYSTEM_TRACE = 150,
+ MD_ERROR_WIN_INVALID_EVENT_COUNT = 151,
+ MD_ERROR_WIN_TOO_MANY_MUXWAITERS = 152,
+ MD_ERROR_WIN_INVALID_LIST_FORMAT = 153,
+ MD_ERROR_WIN_LABEL_TOO_LONG = 154,
+ MD_ERROR_WIN_TOO_MANY_TCBS = 155,
+ MD_ERROR_WIN_SIGNAL_REFUSED = 156,
+ MD_ERROR_WIN_DISCARDED = 157,
+ MD_ERROR_WIN_NOT_LOCKED = 158,
+ MD_ERROR_WIN_BAD_THREADID_ADDR = 159,
+ MD_ERROR_WIN_BAD_ARGUMENTS = 160,
+ MD_ERROR_WIN_BAD_PATHNAME = 161,
+ MD_ERROR_WIN_SIGNAL_PENDING = 162,
+ MD_ERROR_WIN_MAX_THRDS_REACHED = 164,
+ MD_ERROR_WIN_LOCK_FAILED = 167,
+ MD_ERROR_WIN_BUSY = 170,
+ MD_ERROR_WIN_DEVICE_SUPPORT_IN_PROGRESS = 171,
+ MD_ERROR_WIN_CANCEL_VIOLATION = 173,
+ MD_ERROR_WIN_ATOMIC_LOCKS_NOT_SUPPORTED = 174,
+ MD_ERROR_WIN_INVALID_SEGMENT_NUMBER = 180,
+ MD_ERROR_WIN_INVALID_ORDINAL = 182,
+ MD_ERROR_WIN_ALREADY_EXISTS = 183,
+ MD_ERROR_WIN_INVALID_FLAG_NUMBER = 186,
+ MD_ERROR_WIN_SEM_NOT_FOUND = 187,
+ MD_ERROR_WIN_INVALID_STARTING_CODESEG = 188,
+ MD_ERROR_WIN_INVALID_STACKSEG = 189,
+ MD_ERROR_WIN_INVALID_MODULETYPE = 190,
+ MD_ERROR_WIN_INVALID_EXE_SIGNATURE = 191,
+ MD_ERROR_WIN_EXE_MARKED_INVALID = 192,
+ MD_ERROR_WIN_BAD_EXE_FORMAT = 193,
+ MD_ERROR_WIN_INVALID_MINALLOCSIZE = 195,
+ MD_ERROR_WIN_DYNLINK_FROM_INVALID_RING = 196,
+ MD_ERROR_WIN_IOPL_NOT_ENABLED = 197,
+ MD_ERROR_WIN_INVALID_SEGDPL = 198,
+ MD_ERROR_WIN_RING2SEG_MUST_BE_MOVABLE = 200,
+ MD_ERROR_WIN_RELOC_CHAIN_XEEDS_SEGLIM = 201,
+ MD_ERROR_WIN_INFLOOP_IN_RELOC_CHAIN = 202,
+ MD_ERROR_WIN_ENVVAR_NOT_FOUND = 203,
+ MD_ERROR_WIN_NO_SIGNAL_SENT = 205,
+ MD_ERROR_WIN_FILENAME_EXCED_RANGE = 206,
+ MD_ERROR_WIN_RING2_STACK_IN_USE = 207,
+ MD_ERROR_WIN_META_EXPANSION_TOO_LONG = 208,
+ MD_ERROR_WIN_INVALID_SIGNAL_NUMBER = 209,
+ MD_ERROR_WIN_THREAD_1_INACTIVE = 210,
+ MD_ERROR_WIN_LOCKED = 212,
+ MD_ERROR_WIN_TOO_MANY_MODULES = 214,
+ MD_ERROR_WIN_NESTING_NOT_ALLOWED = 215,
+ MD_ERROR_WIN_EXE_MACHINE_TYPE_MISMATCH = 216,
+ MD_ERROR_WIN_EXE_CANNOT_MODIFY_SIGNED_BINARY = 217,
+ MD_ERROR_WIN_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY = 218,
+ MD_ERROR_WIN_FILE_CHECKED_OUT = 220,
+ MD_ERROR_WIN_CHECKOUT_REQUIRED = 221,
+ MD_ERROR_WIN_BAD_FILE_TYPE = 222,
+ MD_ERROR_WIN_FILE_TOO_LARGE = 223,
+ MD_ERROR_WIN_FORMS_AUTH_REQUIRED = 224,
+ MD_ERROR_WIN_VIRUS_INFECTED = 225,
+ MD_ERROR_WIN_VIRUS_DELETED = 226,
+ MD_ERROR_WIN_PIPE_LOCAL = 229,
+ MD_ERROR_WIN_BAD_PIPE = 230,
+ MD_ERROR_WIN_PIPE_BUSY = 231,
+ MD_ERROR_WIN_NO_DATA = 232,
+ MD_ERROR_WIN_PIPE_NOT_CONNECTED = 233,
+ MD_ERROR_WIN_MORE_DATA = 234,
+ MD_ERROR_WIN_NO_WORK_DONE = 235,
+ MD_ERROR_WIN_VC_DISCONNECTED = 240,
+ MD_ERROR_WIN_INVALID_EA_NAME = 254,
+ MD_ERROR_WIN_EA_LIST_INCONSISTENT = 255,
+ MD_ERROR_WIN_NO_MORE_ITEMS = 259,
+ MD_ERROR_WIN_CANNOT_COPY = 266,
+ MD_ERROR_WIN_DIRECTORY = 267,
+ MD_ERROR_WIN_EAS_DIDNT_FIT = 275,
+ MD_ERROR_WIN_EA_FILE_CORRUPT = 276,
+ MD_ERROR_WIN_EA_TABLE_FULL = 277,
+ MD_ERROR_WIN_INVALID_EA_HANDLE = 278,
+ MD_ERROR_WIN_EAS_NOT_SUPPORTED = 282,
+ MD_ERROR_WIN_NOT_OWNER = 288,
+ MD_ERROR_WIN_TOO_MANY_POSTS = 298,
+ MD_ERROR_WIN_PARTIAL_COPY = 299,
+ MD_ERROR_WIN_OPLOCK_NOT_GRANTED = 300,
+ MD_ERROR_WIN_INVALID_OPLOCK_PROTOCOL = 301,
+ MD_ERROR_WIN_DISK_TOO_FRAGMENTED = 302,
+ MD_ERROR_WIN_DELETE_PENDING = 303,
+ MD_ERROR_WIN_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING = 304,
+ MD_ERROR_WIN_SHORT_NAMES_NOT_ENABLED_ON_VOLUME = 305,
+ MD_ERROR_WIN_SECURITY_STREAM_IS_INCONSISTENT = 306,
+ MD_ERROR_WIN_INVALID_LOCK_RANGE = 307,
+ MD_ERROR_WIN_IMAGE_SUBSYSTEM_NOT_PRESENT = 308,
+ MD_ERROR_WIN_NOTIFICATION_GUID_ALREADY_DEFINED = 309,
+ MD_ERROR_WIN_INVALID_EXCEPTION_HANDLER = 310,
+ MD_ERROR_WIN_DUPLICATE_PRIVILEGES = 311,
+ MD_ERROR_WIN_NO_RANGES_PROCESSED = 312,
+ MD_ERROR_WIN_NOT_ALLOWED_ON_SYSTEM_FILE = 313,
+ MD_ERROR_WIN_DISK_RESOURCES_EXHAUSTED = 314,
+ MD_ERROR_WIN_INVALID_TOKEN = 315,
+ MD_ERROR_WIN_DEVICE_FEATURE_NOT_SUPPORTED = 316,
+ MD_ERROR_WIN_MR_MID_NOT_FOUND = 317,
+ MD_ERROR_WIN_SCOPE_NOT_FOUND = 318,
+ MD_ERROR_WIN_UNDEFINED_SCOPE = 319,
+ MD_ERROR_WIN_INVALID_CAP = 320,
+ MD_ERROR_WIN_DEVICE_UNREACHABLE = 321,
+ MD_ERROR_WIN_DEVICE_NO_RESOURCES = 322,
+ MD_ERROR_WIN_DATA_CHECKSUM_ERROR = 323,
+ MD_ERROR_WIN_INTERMIXED_KERNEL_EA_OPERATION = 324,
+ MD_ERROR_WIN_FILE_LEVEL_TRIM_NOT_SUPPORTED = 326,
+ MD_ERROR_WIN_OFFSET_ALIGNMENT_VIOLATION = 327,
+ MD_ERROR_WIN_INVALID_FIELD_IN_PARAMETER_LIST = 328,
+ MD_ERROR_WIN_OPERATION_IN_PROGRESS = 329,
+ MD_ERROR_WIN_BAD_DEVICE_PATH = 330,
+ MD_ERROR_WIN_TOO_MANY_DESCRIPTORS = 331,
+ MD_ERROR_WIN_SCRUB_DATA_DISABLED = 332,
+ MD_ERROR_WIN_NOT_REDUNDANT_STORAGE = 333,
+ MD_ERROR_WIN_RESIDENT_FILE_NOT_SUPPORTED = 334,
+ MD_ERROR_WIN_COMPRESSED_FILE_NOT_SUPPORTED = 335,
+ MD_ERROR_WIN_DIRECTORY_NOT_SUPPORTED = 336,
+ MD_ERROR_WIN_NOT_READ_FROM_COPY = 337,
+ MD_ERROR_WIN_FT_WRITE_FAILURE = 338,
+ MD_ERROR_WIN_FT_DI_SCAN_REQUIRED = 339,
+ MD_ERROR_WIN_INVALID_KERNEL_INFO_VERSION = 340,
+ MD_ERROR_WIN_INVALID_PEP_INFO_VERSION = 341,
+ MD_ERROR_WIN_OBJECT_NOT_EXTERNALLY_BACKED = 342,
+ MD_ERROR_WIN_EXTERNAL_BACKING_PROVIDER_UNKNOWN = 343,
+ MD_ERROR_WIN_COMPRESSION_NOT_BENEFICIAL = 344,
+ MD_ERROR_WIN_STORAGE_TOPOLOGY_ID_MISMATCH = 345,
+ MD_ERROR_WIN_BLOCKED_BY_PARENTAL_CONTROLS = 346,
+ MD_ERROR_WIN_BLOCK_TOO_MANY_REFERENCES = 347,
+ MD_ERROR_WIN_MARKED_TO_DISALLOW_WRITES = 348,
+ MD_ERROR_WIN_ENCLAVE_FAILURE = 349,
+ MD_ERROR_WIN_FAIL_NOACTION_REBOOT = 350,
+ MD_ERROR_WIN_FAIL_SHUTDOWN = 351,
+ MD_ERROR_WIN_FAIL_RESTART = 352,
+ MD_ERROR_WIN_MAX_SESSIONS_REACHED = 353,
+ MD_ERROR_WIN_NETWORK_ACCESS_DENIED_EDP = 354,
+ MD_ERROR_WIN_DEVICE_HINT_NAME_BUFFER_TOO_SMALL = 355,
+ MD_ERROR_WIN_EDP_POLICY_DENIES_OPERATION = 356,
+ MD_ERROR_WIN_EDP_DPL_POLICY_CANT_BE_SATISFIED = 357,
+ MD_ERROR_WIN_CLOUD_FILE_SYNC_ROOT_METADATA_CORRUPT = 358,
+ MD_ERROR_WIN_DEVICE_IN_MAINTENANCE = 359,
+ MD_ERROR_WIN_NOT_SUPPORTED_ON_DAX = 360,
+ MD_ERROR_WIN_DAX_MAPPING_EXISTS = 361,
+ MD_ERROR_WIN_CLOUD_FILE_PROVIDER_NOT_RUNNING = 362,
+ MD_ERROR_WIN_CLOUD_FILE_METADATA_CORRUPT = 363,
+ MD_ERROR_WIN_CLOUD_FILE_METADATA_TOO_LARGE = 364,
+ MD_ERROR_WIN_CLOUD_FILE_PROPERTY_BLOB_TOO_LARGE = 365,
+ MD_ERROR_WIN_CLOUD_FILE_PROPERTY_BLOB_CHECKSUM_MISMATCH = 366,
+ MD_ERROR_WIN_CHILD_PROCESS_BLOCKED = 367,
+ MD_ERROR_WIN_STORAGE_LOST_DATA_PERSISTENCE = 368,
+ MD_ERROR_WIN_FILE_SYSTEM_VIRTUALIZATION_UNAVAILABLE = 369,
+ MD_ERROR_WIN_FILE_SYSTEM_VIRTUALIZATION_METADATA_CORRUPT = 370,
+ MD_ERROR_WIN_FILE_SYSTEM_VIRTUALIZATION_BUSY = 371,
+ MD_ERROR_WIN_FILE_SYSTEM_VIRTUALIZATION_PROVIDER_UNKNOWN = 372,
+ MD_ERROR_WIN_GDI_HANDLE_LEAK = 373,
+ MD_ERROR_WIN_CLOUD_FILE_TOO_MANY_PROPERTY_BLOBS = 374,
+ MD_ERROR_WIN_CLOUD_FILE_PROPERTY_VERSION_NOT_SUPPORTED = 375,
+ MD_ERROR_WIN_NOT_A_CLOUD_FILE = 376,
+ MD_ERROR_WIN_CLOUD_FILE_NOT_IN_SYNC = 377,
+ MD_ERROR_WIN_CLOUD_FILE_ALREADY_CONNECTED = 378,
+ MD_ERROR_WIN_CLOUD_FILE_NOT_SUPPORTED = 379,
+ MD_ERROR_WIN_CLOUD_FILE_INVALID_REQUEST = 380,
+ MD_ERROR_WIN_CLOUD_FILE_READ_ONLY_VOLUME = 381,
+ MD_ERROR_WIN_CLOUD_FILE_CONNECTED_PROVIDER_ONLY = 382,
+ MD_ERROR_WIN_CLOUD_FILE_VALIDATION_FAILED = 383,
+ MD_ERROR_WIN_SMB1_NOT_AVAILABLE = 384,
+ MD_ERROR_WIN_FILE_SYSTEM_VIRTUALIZATION_INVALID_OPERATION = 385,
+ MD_ERROR_WIN_CLOUD_FILE_AUTHENTICATION_FAILED = 386,
+ MD_ERROR_WIN_CLOUD_FILE_INSUFFICIENT_RESOURCES = 387,
+ MD_ERROR_WIN_CLOUD_FILE_NETWORK_UNAVAILABLE = 388,
+ MD_ERROR_WIN_CLOUD_FILE_UNSUCCESSFUL = 389,
+ MD_ERROR_WIN_CLOUD_FILE_NOT_UNDER_SYNC_ROOT = 390,
+ MD_ERROR_WIN_CLOUD_FILE_IN_USE = 391,
+ MD_ERROR_WIN_CLOUD_FILE_PINNED = 392,
+ MD_ERROR_WIN_CLOUD_FILE_REQUEST_ABORTED = 393,
+ MD_ERROR_WIN_CLOUD_FILE_PROPERTY_CORRUPT = 394,
+ MD_ERROR_WIN_CLOUD_FILE_ACCESS_DENIED = 395,
+ MD_ERROR_WIN_CLOUD_FILE_INCOMPATIBLE_HARDLINKS = 396,
+ MD_ERROR_WIN_CLOUD_FILE_PROPERTY_LOCK_CONFLICT = 397,
+ MD_ERROR_WIN_CLOUD_FILE_REQUEST_CANCELED = 398,
+ MD_ERROR_WIN_EXTERNAL_SYSKEY_NOT_SUPPORTED = 399,
+ MD_ERROR_WIN_THREAD_MODE_ALREADY_BACKGROUND = 400,
+ MD_ERROR_WIN_THREAD_MODE_NOT_BACKGROUND = 401,
+ MD_ERROR_WIN_PROCESS_MODE_ALREADY_BACKGROUND = 402,
+ MD_ERROR_WIN_PROCESS_MODE_NOT_BACKGROUND = 403,
+ MD_ERROR_WIN_CLOUD_FILE_PROVIDER_TERMINATED = 404,
+ MD_ERROR_WIN_NOT_A_CLOUD_SYNC_ROOT = 405,
+ MD_ERROR_WIN_FILE_PROTECTED_UNDER_DPL = 406,
+ MD_ERROR_WIN_VOLUME_NOT_CLUSTER_ALIGNED = 407,
+ MD_ERROR_WIN_NO_PHYSICALLY_ALIGNED_FREE_SPACE_FOUND = 408,
+ MD_ERROR_WIN_APPX_FILE_NOT_ENCRYPTED = 409,
+ MD_ERROR_WIN_RWRAW_ENCRYPTED_FILE_NOT_ENCRYPTED = 410,
+ MD_ERROR_WIN_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILEOFFSET = 411,
+ MD_ERROR_WIN_RWRAW_ENCRYPTED_INVALID_EDATAINFO_FILERANGE = 412,
+ MD_ERROR_WIN_RWRAW_ENCRYPTED_INVALID_EDATAINFO_PARAMETER = 413,
+ MD_ERROR_WIN_LINUX_SUBSYSTEM_NOT_PRESENT = 414,
+ MD_ERROR_WIN_FT_READ_FAILURE = 415,
+ MD_ERROR_WIN_STORAGE_RESERVE_ID_INVALID = 416,
+ MD_ERROR_WIN_STORAGE_RESERVE_DOES_NOT_EXIST = 417,
+ MD_ERROR_WIN_STORAGE_RESERVE_ALREADY_EXISTS = 418,
+ MD_ERROR_WIN_STORAGE_RESERVE_NOT_EMPTY = 419,
+ MD_ERROR_WIN_NOT_A_DAX_VOLUME = 420,
+ MD_ERROR_WIN_NOT_DAX_MAPPABLE = 421,
+ MD_ERROR_WIN_TIME_SENSITIVE_THREAD = 422,
+ MD_ERROR_WIN_DPL_NOT_SUPPORTED_FOR_USER = 423,
+ MD_ERROR_WIN_CASE_DIFFERING_NAMES_IN_DIR = 424,
+ MD_ERROR_WIN_FILE_NOT_SUPPORTED = 425,
+ MD_ERROR_WIN_CLOUD_FILE_REQUEST_TIMEOUT = 426,
+ MD_ERROR_WIN_NO_TASK_QUEUE = 427,
+ MD_ERROR_WIN_SRC_SRV_DLL_LOAD_FAILED = 428,
+ MD_ERROR_WIN_NOT_SUPPORTED_WITH_BTT = 429,
+ MD_ERROR_WIN_ENCRYPTION_DISABLED = 430,
+ MD_ERROR_WIN_ENCRYPTING_METADATA_DISALLOWED = 431,
+ MD_ERROR_WIN_CANT_CLEAR_ENCRYPTION_FLAG = 432,
+ MD_ERROR_WIN_NO_SUCH_DEVICE = 433,
+ MD_ERROR_WIN_CLOUD_FILE_DEHYDRATION_DISALLOWED = 434,
+ MD_ERROR_WIN_FILE_SNAP_IN_PROGRESS = 435,
+ MD_ERROR_WIN_FILE_SNAP_USER_SECTION_NOT_SUPPORTED = 436,
+ MD_ERROR_WIN_FILE_SNAP_MODIFY_NOT_SUPPORTED = 437,
+ MD_ERROR_WIN_FILE_SNAP_IO_NOT_COORDINATED = 438,
+ MD_ERROR_WIN_FILE_SNAP_UNEXPECTED_ERROR = 439,
+ MD_ERROR_WIN_FILE_SNAP_INVALID_PARAMETER = 440,
+ MD_ERROR_WIN_UNSATISFIED_DEPENDENCIES = 441,
+ MD_ERROR_WIN_CASE_SENSITIVE_PATH = 442,
+ MD_ERROR_WIN_UNEXPECTED_NTCACHEMANAGER_ERROR = 443,
+ MD_ERROR_WIN_LINUX_SUBSYSTEM_UPDATE_REQUIRED = 444,
+ MD_ERROR_WIN_DLP_POLICY_WARNS_AGAINST_OPERATION = 445,
+ MD_ERROR_WIN_DLP_POLICY_DENIES_OPERATION = 446,
+ MD_ERROR_WIN_DLP_POLICY_SILENTLY_FAIL = 449,
+ MD_ERROR_WIN_CAPAUTHZ_NOT_DEVUNLOCKED = 450,
+ MD_ERROR_WIN_CAPAUTHZ_CHANGE_TYPE = 451,
+ MD_ERROR_WIN_CAPAUTHZ_NOT_PROVISIONED = 452,
+ MD_ERROR_WIN_CAPAUTHZ_NOT_AUTHORIZED = 453,
+ MD_ERROR_WIN_CAPAUTHZ_NO_POLICY = 454,
+ MD_ERROR_WIN_CAPAUTHZ_DB_CORRUPTED = 455,
+ MD_ERROR_WIN_CAPAUTHZ_SCCD_INVALID_CATALOG = 456,
+ MD_ERROR_WIN_CAPAUTHZ_SCCD_NO_AUTH_ENTITY = 457,
+ MD_ERROR_WIN_CAPAUTHZ_SCCD_PARSE_ERROR = 458,
+ MD_ERROR_WIN_CAPAUTHZ_SCCD_DEV_MODE_REQUIRED = 459,
+ MD_ERROR_WIN_CAPAUTHZ_SCCD_NO_CAPABILITY_MATCH = 460,
+ MD_ERROR_WIN_CIMFS_IMAGE_CORRUPT = 470,
+ MD_ERROR_WIN_PNP_QUERY_REMOVE_DEVICE_TIMEOUT = 480,
+ MD_ERROR_WIN_PNP_QUERY_REMOVE_RELATED_DEVICE_TIMEOUT = 481,
+ MD_ERROR_WIN_PNP_QUERY_REMOVE_UNRELATED_DEVICE_TIMEOUT = 482,
+ MD_ERROR_WIN_DEVICE_HARDWARE_ERROR = 483,
+ MD_ERROR_WIN_INVALID_ADDRESS = 487,
+ MD_ERROR_WIN_HAS_SYSTEM_CRITICAL_FILES = 488,
+ MD_ERROR_WIN_USER_PROFILE_LOAD = 500,
+ MD_ERROR_WIN_ARITHMETIC_OVERFLOW = 534,
+ MD_ERROR_WIN_PIPE_CONNECTED = 535,
+ MD_ERROR_WIN_PIPE_LISTENING = 536,
+ MD_ERROR_WIN_VERIFIER_STOP = 537,
+ MD_ERROR_WIN_ABIOS_ERROR = 538,
+ MD_ERROR_WIN_WX86_WARNING = 539,
+ MD_ERROR_WIN_WX86_ERROR = 540,
+ MD_ERROR_WIN_TIMER_NOT_CANCELED = 541,
+ MD_ERROR_WIN_UNWIND = 542,
+ MD_ERROR_WIN_BAD_STACK = 543,
+ MD_ERROR_WIN_INVALID_UNWIND_TARGET = 544,
+ MD_ERROR_WIN_INVALID_PORT_ATTRIBUTES = 545,
+ MD_ERROR_WIN_PORT_MESSAGE_TOO_LONG = 546,
+ MD_ERROR_WIN_INVALID_QUOTA_LOWER = 547,
+ MD_ERROR_WIN_DEVICE_ALREADY_ATTACHED = 548,
+ MD_ERROR_WIN_INSTRUCTION_MISALIGNMENT = 549,
+ MD_ERROR_WIN_PROFILING_NOT_STARTED = 550,
+ MD_ERROR_WIN_PROFILING_NOT_STOPPED = 551,
+ MD_ERROR_WIN_COULD_NOT_INTERPRET = 552,
+ MD_ERROR_WIN_PROFILING_AT_LIMIT = 553,
+ MD_ERROR_WIN_CANT_WAIT = 554,
+ MD_ERROR_WIN_CANT_TERMINATE_SELF = 555,
+ MD_ERROR_WIN_UNEXPECTED_MM_CREATE_ERR = 556,
+ MD_ERROR_WIN_UNEXPECTED_MM_MAP_ERROR = 557,
+ MD_ERROR_WIN_UNEXPECTED_MM_EXTEND_ERR = 558,
+ MD_ERROR_WIN_BAD_FUNCTION_TABLE = 559,
+ MD_ERROR_WIN_NO_GUID_TRANSLATION = 560,
+ MD_ERROR_WIN_INVALID_LDT_SIZE = 561,
+ MD_ERROR_WIN_INVALID_LDT_OFFSET = 563,
+ MD_ERROR_WIN_INVALID_LDT_DESCRIPTOR = 564,
+ MD_ERROR_WIN_TOO_MANY_THREADS = 565,
+ MD_ERROR_WIN_THREAD_NOT_IN_PROCESS = 566,
+ MD_ERROR_WIN_PAGEFILE_QUOTA_EXCEEDED = 567,
+ MD_ERROR_WIN_LOGON_SERVER_CONFLICT = 568,
+ MD_ERROR_WIN_SYNCHRONIZATION_REQUIRED = 569,
+ MD_ERROR_WIN_NET_OPEN_FAILED = 570,
+ MD_ERROR_WIN_IO_PRIVILEGE_FAILED = 571,
+ MD_ERROR_WIN_CONTROL_C_EXIT = 572,
+ MD_ERROR_WIN_MISSING_SYSTEMFILE = 573,
+ MD_ERROR_WIN_UNHANDLED_EXCEPTION = 574,
+ MD_ERROR_WIN_APP_INIT_FAILURE = 575,
+ MD_ERROR_WIN_PAGEFILE_CREATE_FAILED = 576,
+ MD_ERROR_WIN_INVALID_IMAGE_HASH = 577,
+ MD_ERROR_WIN_NO_PAGEFILE = 578,
+ MD_ERROR_WIN_ILLEGAL_FLOAT_CONTEXT = 579,
+ MD_ERROR_WIN_NO_EVENT_PAIR = 580,
+ MD_ERROR_WIN_DOMAIN_CTRLR_CONFIG_ERROR = 581,
+ MD_ERROR_WIN_ILLEGAL_CHARACTER = 582,
+ MD_ERROR_WIN_UNDEFINED_CHARACTER = 583,
+ MD_ERROR_WIN_FLOPPY_VOLUME = 584,
+ MD_ERROR_WIN_BIOS_FAILED_TO_CONNECT_INTERRUPT = 585,
+ MD_ERROR_WIN_BACKUP_CONTROLLER = 586,
+ MD_ERROR_WIN_MUTANT_LIMIT_EXCEEDED = 587,
+ MD_ERROR_WIN_FS_DRIVER_REQUIRED = 588,
+ MD_ERROR_WIN_CANNOT_LOAD_REGISTRY_FILE = 589,
+ MD_ERROR_WIN_DEBUG_ATTACH_FAILED = 590,
+ MD_ERROR_WIN_SYSTEM_PROCESS_TERMINATED = 591,
+ MD_ERROR_WIN_DATA_NOT_ACCEPTED = 592,
+ MD_ERROR_WIN_VDM_HARD_ERROR = 593,
+ MD_ERROR_WIN_DRIVER_CANCEL_TIMEOUT = 594,
+ MD_ERROR_WIN_REPLY_MESSAGE_MISMATCH = 595,
+ MD_ERROR_WIN_LOST_WRITEBEHIND_DATA = 596,
+ MD_ERROR_WIN_CLIENT_SERVER_PARAMETERS_INVALID = 597,
+ MD_ERROR_WIN_NOT_TINY_STREAM = 598,
+ MD_ERROR_WIN_STACK_OVERFLOW_READ = 599,
+ MD_ERROR_WIN_CONVERT_TO_LARGE = 600,
+ MD_ERROR_WIN_FOUND_OUT_OF_SCOPE = 601,
+ MD_ERROR_WIN_ALLOCATE_BUCKET = 602,
+ MD_ERROR_WIN_MARSHALL_OVERFLOW = 603,
+ MD_ERROR_WIN_INVALID_VARIANT = 604,
+ MD_ERROR_WIN_BAD_COMPRESSION_BUFFER = 605,
+ MD_ERROR_WIN_AUDIT_FAILED = 606,
+ MD_ERROR_WIN_TIMER_RESOLUTION_NOT_SET = 607,
+ MD_ERROR_WIN_INSUFFICIENT_LOGON_INFO = 608,
+ MD_ERROR_WIN_BAD_DLL_ENTRYPOINT = 609,
+ MD_ERROR_WIN_BAD_SERVICE_ENTRYPOINT = 610,
+ MD_ERROR_WIN_IP_ADDRESS_CONFLICT1 = 611,
+ MD_ERROR_WIN_IP_ADDRESS_CONFLICT2 = 612,
+ MD_ERROR_WIN_REGISTRY_QUOTA_LIMIT = 613,
+ MD_ERROR_WIN_NO_CALLBACK_ACTIVE = 614,
+ MD_ERROR_WIN_PWD_TOO_SHORT = 615,
+ MD_ERROR_WIN_PWD_TOO_RECENT = 616,
+ MD_ERROR_WIN_PWD_HISTORY_CONFLICT = 617,
+ MD_ERROR_WIN_UNSUPPORTED_COMPRESSION = 618,
+ MD_ERROR_WIN_INVALID_HW_PROFILE = 619,
+ MD_ERROR_WIN_INVALID_PLUGPLAY_DEVICE_PATH = 620,
+ MD_ERROR_WIN_QUOTA_LIST_INCONSISTENT = 621,
+ MD_ERROR_WIN_EVALUATION_EXPIRATION = 622,
+ MD_ERROR_WIN_ILLEGAL_DLL_RELOCATION = 623,
+ MD_ERROR_WIN_DLL_INIT_FAILED_LOGOFF = 624,
+ MD_ERROR_WIN_VALIDATE_CONTINUE = 625,
+ MD_ERROR_WIN_NO_MORE_MATCHES = 626,
+ MD_ERROR_WIN_RANGE_LIST_CONFLICT = 627,
+ MD_ERROR_WIN_SERVER_SID_MISMATCH = 628,
+ MD_ERROR_WIN_CANT_ENABLE_DENY_ONLY = 629,
+ MD_ERROR_WIN_FLOAT_MULTIPLE_FAULTS = 630,
+ MD_ERROR_WIN_FLOAT_MULTIPLE_TRAPS = 631,
+ MD_ERROR_WIN_NOINTERFACE = 632,
+ MD_ERROR_WIN_DRIVER_FAILED_SLEEP = 633,
+ MD_ERROR_WIN_CORRUPT_SYSTEM_FILE = 634,
+ MD_ERROR_WIN_COMMITMENT_MINIMUM = 635,
+ MD_ERROR_WIN_PNP_RESTART_ENUMERATION = 636,
+ MD_ERROR_WIN_SYSTEM_IMAGE_BAD_SIGNATURE = 637,
+ MD_ERROR_WIN_PNP_REBOOT_REQUIRED = 638,
+ MD_ERROR_WIN_INSUFFICIENT_POWER = 639,
+ MD_ERROR_WIN_MULTIPLE_FAULT_VIOLATION = 640,
+ MD_ERROR_WIN_SYSTEM_SHUTDOWN = 641,
+ MD_ERROR_WIN_PORT_NOT_SET = 642,
+ MD_ERROR_WIN_DS_VERSION_CHECK_FAILURE = 643,
+ MD_ERROR_WIN_RANGE_NOT_FOUND = 644,
+ MD_ERROR_WIN_NOT_SAFE_MODE_DRIVER = 646,
+ MD_ERROR_WIN_FAILED_DRIVER_ENTRY = 647,
+ MD_ERROR_WIN_DEVICE_ENUMERATION_ERROR = 648,
+ MD_ERROR_WIN_MOUNT_POINT_NOT_RESOLVED = 649,
+ MD_ERROR_WIN_INVALID_DEVICE_OBJECT_PARAMETER = 650,
+ MD_ERROR_WIN_MCA_OCCURED = 651,
+ MD_ERROR_WIN_DRIVER_DATABASE_ERROR = 652,
+ MD_ERROR_WIN_SYSTEM_HIVE_TOO_LARGE = 653,
+ MD_ERROR_WIN_DRIVER_FAILED_PRIOR_UNLOAD = 654,
+ MD_ERROR_WIN_VOLSNAP_PREPARE_HIBERNATE = 655,
+ MD_ERROR_WIN_HIBERNATION_FAILURE = 656,
+ MD_ERROR_WIN_PWD_TOO_LONG = 657,
+ MD_ERROR_WIN_FILE_SYSTEM_LIMITATION = 665,
+ MD_ERROR_WIN_ASSERTION_FAILURE = 668,
+ MD_ERROR_WIN_ACPI_ERROR = 669,
+ MD_ERROR_WIN_WOW_ASSERTION = 670,
+ MD_ERROR_WIN_PNP_BAD_MPS_TABLE = 671,
+ MD_ERROR_WIN_PNP_TRANSLATION_FAILED = 672,
+ MD_ERROR_WIN_PNP_IRQ_TRANSLATION_FAILED = 673,
+ MD_ERROR_WIN_PNP_INVALID_ID = 674,
+ MD_ERROR_WIN_WAKE_SYSTEM_DEBUGGER = 675,
+ MD_ERROR_WIN_HANDLES_CLOSED = 676,
+ MD_ERROR_WIN_EXTRANEOUS_INFORMATION = 677,
+ MD_ERROR_WIN_RXACT_COMMIT_NECESSARY = 678,
+ MD_ERROR_WIN_MEDIA_CHECK = 679,
+ MD_ERROR_WIN_GUID_SUBSTITUTION_MADE = 680,
+ MD_ERROR_WIN_STOPPED_ON_SYMLINK = 681,
+ MD_ERROR_WIN_LONGJUMP = 682,
+ MD_ERROR_WIN_PLUGPLAY_QUERY_VETOED = 683,
+ MD_ERROR_WIN_UNWIND_CONSOLIDATE = 684,
+ MD_ERROR_WIN_REGISTRY_HIVE_RECOVERED = 685,
+ MD_ERROR_WIN_DLL_MIGHT_BE_INSECURE = 686,
+ MD_ERROR_WIN_DLL_MIGHT_BE_INCOMPATIBLE = 687,
+ MD_ERROR_WIN_DBG_EXCEPTION_NOT_HANDLED = 688,
+ MD_ERROR_WIN_DBG_REPLY_LATER = 689,
+ MD_ERROR_WIN_DBG_UNABLE_TO_PROVIDE_HANDLE = 690,
+ MD_ERROR_WIN_DBG_TERMINATE_THREAD = 691,
+ MD_ERROR_WIN_DBG_TERMINATE_PROCESS = 692,
+ MD_ERROR_WIN_DBG_CONTROL_C = 693,
+ MD_ERROR_WIN_DBG_PRINTEXCEPTION_C = 694,
+ MD_ERROR_WIN_DBG_RIPEXCEPTION = 695,
+ MD_ERROR_WIN_DBG_CONTROL_BREAK = 696,
+ MD_ERROR_WIN_DBG_COMMAND_EXCEPTION = 697,
+ MD_ERROR_WIN_OBJECT_NAME_EXISTS = 698,
+ MD_ERROR_WIN_THREAD_WAS_SUSPENDED = 699,
+ MD_ERROR_WIN_IMAGE_NOT_AT_BASE = 700,
+ MD_ERROR_WIN_RXACT_STATE_CREATED = 701,
+ MD_ERROR_WIN_SEGMENT_NOTIFICATION = 702,
+ MD_ERROR_WIN_BAD_CURRENT_DIRECTORY = 703,
+ MD_ERROR_WIN_FT_READ_RECOVERY_FROM_BACKUP = 704,
+ MD_ERROR_WIN_FT_WRITE_RECOVERY = 705,
+ MD_ERROR_WIN_IMAGE_MACHINE_TYPE_MISMATCH = 706,
+ MD_ERROR_WIN_RECEIVE_PARTIAL = 707,
+ MD_ERROR_WIN_RECEIVE_EXPEDITED = 708,
+ MD_ERROR_WIN_RECEIVE_PARTIAL_EXPEDITED = 709,
+ MD_ERROR_WIN_EVENT_DONE = 710,
+ MD_ERROR_WIN_EVENT_PENDING = 711,
+ MD_ERROR_WIN_CHECKING_FILE_SYSTEM = 712,
+ MD_ERROR_WIN_FATAL_APP_EXIT = 713,
+ MD_ERROR_WIN_PREDEFINED_HANDLE = 714,
+ MD_ERROR_WIN_WAS_UNLOCKED = 715,
+ MD_ERROR_WIN_SERVICE_NOTIFICATION = 716,
+ MD_ERROR_WIN_WAS_LOCKED = 717,
+ MD_ERROR_WIN_LOG_HARD_ERROR = 718,
+ MD_ERROR_WIN_ALREADY_WIN32 = 719,
+ MD_ERROR_WIN_IMAGE_MACHINE_TYPE_MISMATCH_EXE = 720,
+ MD_ERROR_WIN_NO_YIELD_PERFORMED = 721,
+ MD_ERROR_WIN_TIMER_RESUME_IGNORED = 722,
+ MD_ERROR_WIN_ARBITRATION_UNHANDLED = 723,
+ MD_ERROR_WIN_CARDBUS_NOT_SUPPORTED = 724,
+ MD_ERROR_WIN_MP_PROCESSOR_MISMATCH = 725,
+ MD_ERROR_WIN_HIBERNATED = 726,
+ MD_ERROR_WIN_RESUME_HIBERNATION = 727,
+ MD_ERROR_WIN_FIRMWARE_UPDATED = 728,
+ MD_ERROR_WIN_DRIVERS_LEAKING_LOCKED_PAGES = 729,
+ MD_ERROR_WIN_WAKE_SYSTEM = 730,
+ MD_ERROR_WIN_WAIT_1 = 731,
+ MD_ERROR_WIN_WAIT_2 = 732,
+ MD_ERROR_WIN_WAIT_3 = 733,
+ MD_ERROR_WIN_WAIT_63 = 734,
+ MD_ERROR_WIN_ABANDONED_WAIT_0 = 735,
+ MD_ERROR_WIN_ABANDONED_WAIT_63 = 736,
+ MD_ERROR_WIN_USER_APC = 737,
+ MD_ERROR_WIN_KERNEL_APC = 738,
+ MD_ERROR_WIN_ALERTED = 739,
+ MD_ERROR_WIN_ELEVATION_REQUIRED = 740,
+ MD_ERROR_WIN_REPARSE = 741,
+ MD_ERROR_WIN_OPLOCK_BREAK_IN_PROGRESS = 742,
+ MD_ERROR_WIN_VOLUME_MOUNTED = 743,
+ MD_ERROR_WIN_RXACT_COMMITTED = 744,
+ MD_ERROR_WIN_NOTIFY_CLEANUP = 745,
+ MD_ERROR_WIN_PRIMARY_TRANSPORT_CONNECT_FAILED = 746,
+ MD_ERROR_WIN_PAGE_FAULT_TRANSITION = 747,
+ MD_ERROR_WIN_PAGE_FAULT_DEMAND_ZERO = 748,
+ MD_ERROR_WIN_PAGE_FAULT_COPY_ON_WRITE = 749,
+ MD_ERROR_WIN_PAGE_FAULT_GUARD_PAGE = 750,
+ MD_ERROR_WIN_PAGE_FAULT_PAGING_FILE = 751,
+ MD_ERROR_WIN_CACHE_PAGE_LOCKED = 752,
+ MD_ERROR_WIN_CRASH_DUMP = 753,
+ MD_ERROR_WIN_BUFFER_ALL_ZEROS = 754,
+ MD_ERROR_WIN_REPARSE_OBJECT = 755,
+ MD_ERROR_WIN_RESOURCE_REQUIREMENTS_CHANGED = 756,
+ MD_ERROR_WIN_TRANSLATION_COMPLETE = 757,
+ MD_ERROR_WIN_NOTHING_TO_TERMINATE = 758,
+ MD_ERROR_WIN_PROCESS_NOT_IN_JOB = 759,
+ MD_ERROR_WIN_PROCESS_IN_JOB = 760,
+ MD_ERROR_WIN_VOLSNAP_HIBERNATE_READY = 761,
+ MD_ERROR_WIN_FSFILTER_OP_COMPLETED_SUCCESSFULLY = 762,
+ MD_ERROR_WIN_INTERRUPT_VECTOR_ALREADY_CONNECTED = 763,
+ MD_ERROR_WIN_INTERRUPT_STILL_CONNECTED = 764,
+ MD_ERROR_WIN_WAIT_FOR_OPLOCK = 765,
+ MD_ERROR_WIN_DBG_EXCEPTION_HANDLED = 766,
+ MD_ERROR_WIN_DBG_CONTINUE = 767,
+ MD_ERROR_WIN_CALLBACK_POP_STACK = 768,
+ MD_ERROR_WIN_COMPRESSION_DISABLED = 769,
+ MD_ERROR_WIN_CANTFETCHBACKWARDS = 770,
+ MD_ERROR_WIN_CANTSCROLLBACKWARDS = 771,
+ MD_ERROR_WIN_ROWSNOTRELEASED = 772,
+ MD_ERROR_WIN_BAD_ACCESSOR_FLAGS = 773,
+ MD_ERROR_WIN_ERRORS_ENCOUNTERED = 774,
+ MD_ERROR_WIN_NOT_CAPABLE = 775,
+ MD_ERROR_WIN_REQUEST_OUT_OF_SEQUENCE = 776,
+ MD_ERROR_WIN_VERSION_PARSE_ERROR = 777,
+ MD_ERROR_WIN_BADSTARTPOSITION = 778,
+ MD_ERROR_WIN_MEMORY_HARDWARE = 779,
+ MD_ERROR_WIN_DISK_REPAIR_DISABLED = 780,
+ MD_ERROR_WIN_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE = 781,
+ MD_ERROR_WIN_SYSTEM_POWERSTATE_TRANSITION = 782,
+ MD_ERROR_WIN_SYSTEM_POWERSTATE_COMPLEX_TRANSITION = 783,
+ MD_ERROR_WIN_MCA_EXCEPTION = 784,
+ MD_ERROR_WIN_ACCESS_AUDIT_BY_POLICY = 785,
+ MD_ERROR_WIN_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY = 786,
+ MD_ERROR_WIN_ABANDON_HIBERFILE = 787,
+ MD_ERROR_WIN_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED = 788,
+ MD_ERROR_WIN_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR = 789,
+ MD_ERROR_WIN_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR = 790,
+ MD_ERROR_WIN_BAD_MCFG_TABLE = 791,
+ MD_ERROR_WIN_DISK_REPAIR_REDIRECTED = 792,
+ MD_ERROR_WIN_DISK_REPAIR_UNSUCCESSFUL = 793,
+ MD_ERROR_WIN_CORRUPT_LOG_OVERFULL = 794,
+ MD_ERROR_WIN_CORRUPT_LOG_CORRUPTED = 795,
+ MD_ERROR_WIN_CORRUPT_LOG_UNAVAILABLE = 796,
+ MD_ERROR_WIN_CORRUPT_LOG_DELETED_FULL = 797,
+ MD_ERROR_WIN_CORRUPT_LOG_CLEARED = 798,
+ MD_ERROR_WIN_ORPHAN_NAME_EXHAUSTED = 799,
+ MD_ERROR_WIN_OPLOCK_SWITCHED_TO_NEW_HANDLE = 800,
+ MD_ERROR_WIN_CANNOT_GRANT_REQUESTED_OPLOCK = 801,
+ MD_ERROR_WIN_CANNOT_BREAK_OPLOCK = 802,
+ MD_ERROR_WIN_OPLOCK_HANDLE_CLOSED = 803,
+ MD_ERROR_WIN_NO_ACE_CONDITION = 804,
+ MD_ERROR_WIN_INVALID_ACE_CONDITION = 805,
+ MD_ERROR_WIN_FILE_HANDLE_REVOKED = 806,
+ MD_ERROR_WIN_IMAGE_AT_DIFFERENT_BASE = 807,
+ MD_ERROR_WIN_ENCRYPTED_IO_NOT_POSSIBLE = 808,
+ MD_ERROR_WIN_FILE_METADATA_OPTIMIZATION_IN_PROGRESS = 809,
+ MD_ERROR_WIN_QUOTA_ACTIVITY = 810,
+ MD_ERROR_WIN_HANDLE_REVOKED = 811,
+ MD_ERROR_WIN_CALLBACK_INVOKE_INLINE = 812,
+ MD_ERROR_WIN_CPU_SET_INVALID = 813,
+ MD_ERROR_WIN_ENCLAVE_NOT_TERMINATED = 814,
+ MD_ERROR_WIN_ENCLAVE_VIOLATION = 815,
+ MD_ERROR_WIN_EA_ACCESS_DENIED = 994,
+ MD_ERROR_WIN_OPERATION_ABORTED = 995,
+ MD_ERROR_WIN_IO_INCOMPLETE = 996,
+ MD_ERROR_WIN_IO_PENDING = 997,
+ MD_ERROR_WIN_NOACCESS = 998,
+ MD_ERROR_WIN_SWAPERROR = 999,
+ MD_ERROR_WIN_STACK_OVERFLOW = 1001,
+ MD_ERROR_WIN_INVALID_MESSAGE = 1002,
+ MD_ERROR_WIN_CAN_NOT_COMPLETE = 1003,
+ MD_ERROR_WIN_INVALID_FLAGS = 1004,
+ MD_ERROR_WIN_UNRECOGNIZED_VOLUME = 1005,
+ MD_ERROR_WIN_FILE_INVALID = 1006,
+ MD_ERROR_WIN_FULLSCREEN_MODE = 1007,
+ MD_ERROR_WIN_NO_TOKEN = 1008,
+ MD_ERROR_WIN_BADDB = 1009,
+ MD_ERROR_WIN_BADKEY = 1010,
+ MD_ERROR_WIN_CANTOPEN = 1011,
+ MD_ERROR_WIN_CANTREAD = 1012,
+ MD_ERROR_WIN_CANTWRITE = 1013,
+ MD_ERROR_WIN_REGISTRY_RECOVERED = 1014,
+ MD_ERROR_WIN_REGISTRY_CORRUPT = 1015,
+ MD_ERROR_WIN_REGISTRY_IO_FAILED = 1016,
+ MD_ERROR_WIN_NOT_REGISTRY_FILE = 1017,
+ MD_ERROR_WIN_KEY_DELETED = 1018,
+ MD_ERROR_WIN_NO_LOG_SPACE = 1019,
+ MD_ERROR_WIN_KEY_HAS_CHILDREN = 1020,
+ MD_ERROR_WIN_CHILD_MUST_BE_VOLATILE = 1021,
+ MD_ERROR_WIN_NOTIFY_ENUM_DIR = 1022,
+ MD_ERROR_WIN_DEPENDENT_SERVICES_RUNNING = 1051,
+ MD_ERROR_WIN_INVALID_SERVICE_CONTROL = 1052,
+ MD_ERROR_WIN_SERVICE_REQUEST_TIMEOUT = 1053,
+ MD_ERROR_WIN_SERVICE_NO_THREAD = 1054,
+ MD_ERROR_WIN_SERVICE_DATABASE_LOCKED = 1055,
+ MD_ERROR_WIN_SERVICE_ALREADY_RUNNING = 1056,
+ MD_ERROR_WIN_INVALID_SERVICE_ACCOUNT = 1057,
+ MD_ERROR_WIN_SERVICE_DISABLED = 1058,
+ MD_ERROR_WIN_CIRCULAR_DEPENDENCY = 1059,
+ MD_ERROR_WIN_SERVICE_DOES_NOT_EXIST = 1060,
+ MD_ERROR_WIN_SERVICE_CANNOT_ACCEPT_CTRL = 1061,
+ MD_ERROR_WIN_SERVICE_NOT_ACTIVE = 1062,
+ MD_ERROR_WIN_FAILED_SERVICE_CONTROLLER_CONNECT = 1063,
+ MD_ERROR_WIN_EXCEPTION_IN_SERVICE = 1064,
+ MD_ERROR_WIN_DATABASE_DOES_NOT_EXIST = 1065,
+ MD_ERROR_WIN_SERVICE_SPECIFIC_ERROR = 1066,
+ MD_ERROR_WIN_PROCESS_ABORTED = 1067,
+ MD_ERROR_WIN_SERVICE_DEPENDENCY_FAIL = 1068,
+ MD_ERROR_WIN_SERVICE_LOGON_FAILED = 1069,
+ MD_ERROR_WIN_SERVICE_START_HANG = 1070,
+ MD_ERROR_WIN_INVALID_SERVICE_LOCK = 1071,
+ MD_ERROR_WIN_SERVICE_MARKED_FOR_DELETE = 1072,
+ MD_ERROR_WIN_SERVICE_EXISTS = 1073,
+ MD_ERROR_WIN_ALREADY_RUNNING_LKG = 1074,
+ MD_ERROR_WIN_SERVICE_DEPENDENCY_DELETED = 1075,
+ MD_ERROR_WIN_BOOT_ALREADY_ACCEPTED = 1076,
+ MD_ERROR_WIN_SERVICE_NEVER_STARTED = 1077,
+ MD_ERROR_WIN_DUPLICATE_SERVICE_NAME = 1078,
+ MD_ERROR_WIN_DIFFERENT_SERVICE_ACCOUNT = 1079,
+ MD_ERROR_WIN_CANNOT_DETECT_DRIVER_FAILURE = 1080,
+ MD_ERROR_WIN_CANNOT_DETECT_PROCESS_ABORT = 1081,
+ MD_ERROR_WIN_NO_RECOVERY_PROGRAM = 1082,
+ MD_ERROR_WIN_SERVICE_NOT_IN_EXE = 1083,
+ MD_ERROR_WIN_NOT_SAFEBOOT_SERVICE = 1084,
+ MD_ERROR_WIN_END_OF_MEDIA = 1100,
+ MD_ERROR_WIN_FILEMARK_DETECTED = 1101,
+ MD_ERROR_WIN_BEGINNING_OF_MEDIA = 1102,
+ MD_ERROR_WIN_SETMARK_DETECTED = 1103,
+ MD_ERROR_WIN_NO_DATA_DETECTED = 1104,
+ MD_ERROR_WIN_PARTITION_FAILURE = 1105,
+ MD_ERROR_WIN_INVALID_BLOCK_LENGTH = 1106,
+ MD_ERROR_WIN_DEVICE_NOT_PARTITIONED = 1107,
+ MD_ERROR_WIN_UNABLE_TO_LOCK_MEDIA = 1108,
+ MD_ERROR_WIN_UNABLE_TO_UNLOAD_MEDIA = 1109,
+ MD_ERROR_WIN_MEDIA_CHANGED = 1110,
+ MD_ERROR_WIN_BUS_RESET = 1111,
+ MD_ERROR_WIN_NO_MEDIA_IN_DRIVE = 1112,
+ MD_ERROR_WIN_NO_UNICODE_TRANSLATION = 1113,
+ MD_ERROR_WIN_DLL_INIT_FAILED = 1114,
+ MD_ERROR_WIN_SHUTDOWN_IN_PROGRESS = 1115,
+ MD_ERROR_WIN_NO_SHUTDOWN_IN_PROGRESS = 1116,
+ MD_ERROR_WIN_IO_DEVICE = 1117,
+ MD_ERROR_WIN_SERIAL_NO_DEVICE = 1118,
+ MD_ERROR_WIN_IRQ_BUSY = 1119,
+ MD_ERROR_WIN_MORE_WRITES = 1120,
+ MD_ERROR_WIN_COUNTER_TIMEOUT = 1121,
+ MD_ERROR_WIN_FLOPPY_ID_MARK_NOT_FOUND = 1122,
+ MD_ERROR_WIN_FLOPPY_WRONG_CYLINDER = 1123,
+ MD_ERROR_WIN_FLOPPY_UNKNOWN_ERROR = 1124,
+ MD_ERROR_WIN_FLOPPY_BAD_REGISTERS = 1125,
+ MD_ERROR_WIN_DISK_RECALIBRATE_FAILED = 1126,
+ MD_ERROR_WIN_DISK_OPERATION_FAILED = 1127,
+ MD_ERROR_WIN_DISK_RESET_FAILED = 1128,
+ MD_ERROR_WIN_EOM_OVERFLOW = 1129,
+ MD_ERROR_WIN_NOT_ENOUGH_SERVER_MEMORY = 1130,
+ MD_ERROR_WIN_POSSIBLE_DEADLOCK = 1131,
+ MD_ERROR_WIN_MAPPED_ALIGNMENT = 1132,
+ MD_ERROR_WIN_SET_POWER_STATE_VETOED = 1140,
+ MD_ERROR_WIN_SET_POWER_STATE_FAILED = 1141,
+ MD_ERROR_WIN_TOO_MANY_LINKS = 1142,
+ MD_ERROR_WIN_OLD_WIN_VERSION = 1150,
+ MD_ERROR_WIN_APP_WRONG_OS = 1151,
+ MD_ERROR_WIN_SINGLE_INSTANCE_APP = 1152,
+ MD_ERROR_WIN_RMODE_APP = 1153,
+ MD_ERROR_WIN_INVALID_DLL = 1154,
+ MD_ERROR_WIN_NO_ASSOCIATION = 1155,
+ MD_ERROR_WIN_DDE_FAIL = 1156,
+ MD_ERROR_WIN_DLL_NOT_FOUND = 1157,
+ MD_ERROR_WIN_NO_MORE_USER_HANDLES = 1158,
+ MD_ERROR_WIN_MESSAGE_SYNC_ONLY = 1159,
+ MD_ERROR_WIN_SOURCE_ELEMENT_EMPTY = 1160,
+ MD_ERROR_WIN_DESTINATION_ELEMENT_FULL = 1161,
+ MD_ERROR_WIN_ILLEGAL_ELEMENT_ADDRESS = 1162,
+ MD_ERROR_WIN_MAGAZINE_NOT_PRESENT = 1163,
+ MD_ERROR_WIN_DEVICE_REINITIALIZATION_NEEDED = 1164,
+ MD_ERROR_WIN_DEVICE_REQUIRES_CLEANING = 1165,
+ MD_ERROR_WIN_DEVICE_DOOR_OPEN = 1166,
+ MD_ERROR_WIN_DEVICE_NOT_CONNECTED = 1167,
+ MD_ERROR_WIN_NOT_FOUND = 1168,
+ MD_ERROR_WIN_NO_MATCH = 1169,
+ MD_ERROR_WIN_SET_NOT_FOUND = 1170,
+ MD_ERROR_WIN_POINT_NOT_FOUND = 1171,
+ MD_ERROR_WIN_NO_TRACKING_SERVICE = 1172,
+ MD_ERROR_WIN_NO_VOLUME_ID = 1173,
+ MD_ERROR_WIN_UNABLE_TO_REMOVE_REPLACED = 1175,
+ MD_ERROR_WIN_UNABLE_TO_MOVE_REPLACEMENT = 1176,
+ MD_ERROR_WIN_UNABLE_TO_MOVE_REPLACEMENT_2 = 1177,
+ MD_ERROR_WIN_JOURNAL_DELETE_IN_PROGRESS = 1178,
+ MD_ERROR_WIN_JOURNAL_NOT_ACTIVE = 1179,
+ MD_ERROR_WIN_POTENTIAL_FILE_FOUND = 1180,
+ MD_ERROR_WIN_JOURNAL_ENTRY_DELETED = 1181,
+ MD_ERROR_WIN_VRF_CFG_AND_IO_ENABLED = 1183,
+ MD_ERROR_WIN_PARTITION_TERMINATING = 1184,
+ MD_ERROR_WIN_SHUTDOWN_IS_SCHEDULED = 1190,
+ MD_ERROR_WIN_SHUTDOWN_USERS_LOGGED_ON = 1191,
+ MD_ERROR_WIN_BAD_DEVICE = 1200,
+ MD_ERROR_WIN_CONNECTION_UNAVAIL = 1201,
+ MD_ERROR_WIN_DEVICE_ALREADY_REMEMBERED = 1202,
+ MD_ERROR_WIN_NO_NET_OR_BAD_PATH = 1203,
+ MD_ERROR_WIN_BAD_PROVIDER = 1204,
+ MD_ERROR_WIN_CANNOT_OPEN_PROFILE = 1205,
+ MD_ERROR_WIN_BAD_PROFILE = 1206,
+ MD_ERROR_WIN_NOT_CONTAINER = 1207,
+ MD_ERROR_WIN_EXTENDED_ERROR = 1208,
+ MD_ERROR_WIN_INVALID_GROUPNAME = 1209,
+ MD_ERROR_WIN_INVALID_COMPUTERNAME = 1210,
+ MD_ERROR_WIN_INVALID_EVENTNAME = 1211,
+ MD_ERROR_WIN_INVALID_DOMAINNAME = 1212,
+ MD_ERROR_WIN_INVALID_SERVICENAME = 1213,
+ MD_ERROR_WIN_INVALID_NETNAME = 1214,
+ MD_ERROR_WIN_INVALID_SHARENAME = 1215,
+ MD_ERROR_WIN_INVALID_PASSWORDNAME = 1216,
+ MD_ERROR_WIN_INVALID_MESSAGENAME = 1217,
+ MD_ERROR_WIN_INVALID_MESSAGEDEST = 1218,
+ MD_ERROR_WIN_SESSION_CREDENTIAL_CONFLICT = 1219,
+ MD_ERROR_WIN_REMOTE_SESSION_LIMIT_EXCEEDED = 1220,
+ MD_ERROR_WIN_DUP_DOMAINNAME = 1221,
+ MD_ERROR_WIN_NO_NETWORK = 1222,
+ MD_ERROR_WIN_CANCELLED = 1223,
+ MD_ERROR_WIN_USER_MAPPED_FILE = 1224,
+ MD_ERROR_WIN_CONNECTION_REFUSED = 1225,
+ MD_ERROR_WIN_GRACEFUL_DISCONNECT = 1226,
+ MD_ERROR_WIN_ADDRESS_ALREADY_ASSOCIATED = 1227,
+ MD_ERROR_WIN_ADDRESS_NOT_ASSOCIATED = 1228,
+ MD_ERROR_WIN_CONNECTION_INVALID = 1229,
+ MD_ERROR_WIN_CONNECTION_ACTIVE = 1230,
+ MD_ERROR_WIN_NETWORK_UNREACHABLE = 1231,
+ MD_ERROR_WIN_HOST_UNREACHABLE = 1232,
+ MD_ERROR_WIN_PROTOCOL_UNREACHABLE = 1233,
+ MD_ERROR_WIN_PORT_UNREACHABLE = 1234,
+ MD_ERROR_WIN_REQUEST_ABORTED = 1235,
+ MD_ERROR_WIN_CONNECTION_ABORTED = 1236,
+ MD_ERROR_WIN_RETRY = 1237,
+ MD_ERROR_WIN_CONNECTION_COUNT_LIMIT = 1238,
+ MD_ERROR_WIN_LOGIN_TIME_RESTRICTION = 1239,
+ MD_ERROR_WIN_LOGIN_WKSTA_RESTRICTION = 1240,
+ MD_ERROR_WIN_INCORRECT_ADDRESS = 1241,
+ MD_ERROR_WIN_ALREADY_REGISTERED = 1242,
+ MD_ERROR_WIN_SERVICE_NOT_FOUND = 1243,
+ MD_ERROR_WIN_NOT_AUTHENTICATED = 1244,
+ MD_ERROR_WIN_NOT_LOGGED_ON = 1245,
+ MD_ERROR_WIN_CONTINUE = 1246,
+ MD_ERROR_WIN_ALREADY_INITIALIZED = 1247,
+ MD_ERROR_WIN_NO_MORE_DEVICES = 1248,
+ MD_ERROR_WIN_NO_SUCH_SITE = 1249,
+ MD_ERROR_WIN_DOMAIN_CONTROLLER_EXISTS = 1250,
+ MD_ERROR_WIN_ONLY_IF_CONNECTED = 1251,
+ MD_ERROR_WIN_OVERRIDE_NOCHANGES = 1252,
+ MD_ERROR_WIN_BAD_USER_PROFILE = 1253,
+ MD_ERROR_WIN_NOT_SUPPORTED_ON_SBS = 1254,
+ MD_ERROR_WIN_SERVER_SHUTDOWN_IN_PROGRESS = 1255,
+ MD_ERROR_WIN_HOST_DOWN = 1256,
+ MD_ERROR_WIN_NON_ACCOUNT_SID = 1257,
+ MD_ERROR_WIN_NON_DOMAIN_SID = 1258,
+ MD_ERROR_WIN_APPHELP_BLOCK = 1259,
+ MD_ERROR_WIN_ACCESS_DISABLED_BY_POLICY = 1260,
+ MD_ERROR_WIN_REG_NAT_CONSUMPTION = 1261,
+ MD_ERROR_WIN_CSCSHARE_OFFLINE = 1262,
+ MD_ERROR_WIN_PKINIT_FAILURE = 1263,
+ MD_ERROR_WIN_SMARTCARD_SUBSYSTEM_FAILURE = 1264,
+ MD_ERROR_WIN_DOWNGRADE_DETECTED = 1265,
+ MD_ERROR_WIN_MACHINE_LOCKED = 1271,
+ MD_ERROR_WIN_SMB_GUEST_LOGON_BLOCKED = 1272,
+ MD_ERROR_WIN_CALLBACK_SUPPLIED_INVALID_DATA = 1273,
+ MD_ERROR_WIN_SYNC_FOREGROUND_REFRESH_REQUIRED = 1274,
+ MD_ERROR_WIN_DRIVER_BLOCKED = 1275,
+ MD_ERROR_WIN_INVALID_IMPORT_OF_NON_DLL = 1276,
+ MD_ERROR_WIN_ACCESS_DISABLED_WEBBLADE = 1277,
+ MD_ERROR_WIN_ACCESS_DISABLED_WEBBLADE_TAMPER = 1278,
+ MD_ERROR_WIN_RECOVERY_FAILURE = 1279,
+ MD_ERROR_WIN_ALREADY_FIBER = 1280,
+ MD_ERROR_WIN_ALREADY_THREAD = 1281,
+ MD_ERROR_WIN_STACK_BUFFER_OVERRUN = 1282,
+ MD_ERROR_WIN_PARAMETER_QUOTA_EXCEEDED = 1283,
+ MD_ERROR_WIN_DEBUGGER_INACTIVE = 1284,
+ MD_ERROR_WIN_DELAY_LOAD_FAILED = 1285,
+ MD_ERROR_WIN_VDM_DISALLOWED = 1286,
+ MD_ERROR_WIN_UNIDENTIFIED_ERROR = 1287,
+ MD_ERROR_WIN_INVALID_CRUNTIME_PARAMETER = 1288,
+ MD_ERROR_WIN_BEYOND_VDL = 1289,
+ MD_ERROR_WIN_INCOMPATIBLE_SERVICE_SID_TYPE = 1290,
+ MD_ERROR_WIN_DRIVER_PROCESS_TERMINATED = 1291,
+ MD_ERROR_WIN_IMPLEMENTATION_LIMIT = 1292,
+ MD_ERROR_WIN_PROCESS_IS_PROTECTED = 1293,
+ MD_ERROR_WIN_SERVICE_NOTIFY_CLIENT_LAGGING = 1294,
+ MD_ERROR_WIN_DISK_QUOTA_EXCEEDED = 1295,
+ MD_ERROR_WIN_CONTENT_BLOCKED = 1296,
+ MD_ERROR_WIN_INCOMPATIBLE_SERVICE_PRIVILEGE = 1297,
+ MD_ERROR_WIN_APP_HANG = 1298,
+ MD_ERROR_WIN_INVALID_LABEL = 1299,
+ MD_ERROR_WIN_NOT_ALL_ASSIGNED = 1300,
+ MD_ERROR_WIN_SOME_NOT_MAPPED = 1301,
+ MD_ERROR_WIN_NO_QUOTAS_FOR_ACCOUNT = 1302,
+ MD_ERROR_WIN_LOCAL_USER_SESSION_KEY = 1303,
+ MD_ERROR_WIN_NULL_LM_PASSWORD = 1304,
+ MD_ERROR_WIN_UNKNOWN_REVISION = 1305,
+ MD_ERROR_WIN_REVISION_MISMATCH = 1306,
+ MD_ERROR_WIN_INVALID_OWNER = 1307,
+ MD_ERROR_WIN_INVALID_PRIMARY_GROUP = 1308,
+ MD_ERROR_WIN_NO_IMPERSONATION_TOKEN = 1309,
+ MD_ERROR_WIN_CANT_DISABLE_MANDATORY = 1310,
+ MD_ERROR_WIN_NO_LOGON_SERVERS = 1311,
+ MD_ERROR_WIN_NO_SUCH_LOGON_SESSION = 1312,
+ MD_ERROR_WIN_NO_SUCH_PRIVILEGE = 1313,
+ MD_ERROR_WIN_PRIVILEGE_NOT_HELD = 1314,
+ MD_ERROR_WIN_INVALID_ACCOUNT_NAME = 1315,
+ MD_ERROR_WIN_USER_EXISTS = 1316,
+ MD_ERROR_WIN_NO_SUCH_USER = 1317,
+ MD_ERROR_WIN_GROUP_EXISTS = 1318,
+ MD_ERROR_WIN_NO_SUCH_GROUP = 1319,
+ MD_ERROR_WIN_MEMBER_IN_GROUP = 1320,
+ MD_ERROR_WIN_MEMBER_NOT_IN_GROUP = 1321,
+ MD_ERROR_WIN_LAST_ADMIN = 1322,
+ MD_ERROR_WIN_WRONG_PASSWORD = 1323,
+ MD_ERROR_WIN_ILL_FORMED_PASSWORD = 1324,
+ MD_ERROR_WIN_PASSWORD_RESTRICTION = 1325,
+ MD_ERROR_WIN_LOGON_FAILURE = 1326,
+ MD_ERROR_WIN_ACCOUNT_RESTRICTION = 1327,
+ MD_ERROR_WIN_INVALID_LOGON_HOURS = 1328,
+ MD_ERROR_WIN_INVALID_WORKSTATION = 1329,
+ MD_ERROR_WIN_PASSWORD_EXPIRED = 1330,
+ MD_ERROR_WIN_ACCOUNT_DISABLED = 1331,
+ MD_ERROR_WIN_NONE_MAPPED = 1332,
+ MD_ERROR_WIN_TOO_MANY_LUIDS_REQUESTED = 1333,
+ MD_ERROR_WIN_LUIDS_EXHAUSTED = 1334,
+ MD_ERROR_WIN_INVALID_SUB_AUTHORITY = 1335,
+ MD_ERROR_WIN_INVALID_ACL = 1336,
+ MD_ERROR_WIN_INVALID_SID = 1337,
+ MD_ERROR_WIN_INVALID_SECURITY_DESCR = 1338,
+ MD_ERROR_WIN_BAD_INHERITANCE_ACL = 1340,
+ MD_ERROR_WIN_SERVER_DISABLED = 1341,
+ MD_ERROR_WIN_SERVER_NOT_DISABLED = 1342,
+ MD_ERROR_WIN_INVALID_ID_AUTHORITY = 1343,
+ MD_ERROR_WIN_ALLOTTED_SPACE_EXCEEDED = 1344,
+ MD_ERROR_WIN_INVALID_GROUP_ATTRIBUTES = 1345,
+ MD_ERROR_WIN_BAD_IMPERSONATION_LEVEL = 1346,
+ MD_ERROR_WIN_CANT_OPEN_ANONYMOUS = 1347,
+ MD_ERROR_WIN_BAD_VALIDATION_CLASS = 1348,
+ MD_ERROR_WIN_BAD_TOKEN_TYPE = 1349,
+ MD_ERROR_WIN_NO_SECURITY_ON_OBJECT = 1350,
+ MD_ERROR_WIN_CANT_ACCESS_DOMAIN_INFO = 1351,
+ MD_ERROR_WIN_INVALID_SERVER_STATE = 1352,
+ MD_ERROR_WIN_INVALID_DOMAIN_STATE = 1353,
+ MD_ERROR_WIN_INVALID_DOMAIN_ROLE = 1354,
+ MD_ERROR_WIN_NO_SUCH_DOMAIN = 1355,
+ MD_ERROR_WIN_DOMAIN_EXISTS = 1356,
+ MD_ERROR_WIN_DOMAIN_LIMIT_EXCEEDED = 1357,
+ MD_ERROR_WIN_INTERNAL_DB_CORRUPTION = 1358,
+ MD_ERROR_WIN_INTERNAL_ERROR = 1359,
+ MD_ERROR_WIN_GENERIC_NOT_MAPPED = 1360,
+ MD_ERROR_WIN_BAD_DESCRIPTOR_FORMAT = 1361,
+ MD_ERROR_WIN_NOT_LOGON_PROCESS = 1362,
+ MD_ERROR_WIN_LOGON_SESSION_EXISTS = 1363,
+ MD_ERROR_WIN_NO_SUCH_PACKAGE = 1364,
+ MD_ERROR_WIN_BAD_LOGON_SESSION_STATE = 1365,
+ MD_ERROR_WIN_LOGON_SESSION_COLLISION = 1366,
+ MD_ERROR_WIN_INVALID_LOGON_TYPE = 1367,
+ MD_ERROR_WIN_CANNOT_IMPERSONATE = 1368,
+ MD_ERROR_WIN_RXACT_INVALID_STATE = 1369,
+ MD_ERROR_WIN_RXACT_COMMIT_FAILURE = 1370,
+ MD_ERROR_WIN_SPECIAL_ACCOUNT = 1371,
+ MD_ERROR_WIN_SPECIAL_GROUP = 1372,
+ MD_ERROR_WIN_SPECIAL_USER = 1373,
+ MD_ERROR_WIN_MEMBERS_PRIMARY_GROUP = 1374,
+ MD_ERROR_WIN_TOKEN_ALREADY_IN_USE = 1375,
+ MD_ERROR_WIN_NO_SUCH_ALIAS = 1376,
+ MD_ERROR_WIN_MEMBER_NOT_IN_ALIAS = 1377,
+ MD_ERROR_WIN_MEMBER_IN_ALIAS = 1378,
+ MD_ERROR_WIN_ALIAS_EXISTS = 1379,
+ MD_ERROR_WIN_LOGON_NOT_GRANTED = 1380,
+ MD_ERROR_WIN_TOO_MANY_SECRETS = 1381,
+ MD_ERROR_WIN_SECRET_TOO_LONG = 1382,
+ MD_ERROR_WIN_INTERNAL_DB_ERROR = 1383,
+ MD_ERROR_WIN_TOO_MANY_CONTEXT_IDS = 1384,
+ MD_ERROR_WIN_LOGON_TYPE_NOT_GRANTED = 1385,
+ MD_ERROR_WIN_NT_CROSS_ENCRYPTION_REQUIRED = 1386,
+ MD_ERROR_WIN_NO_SUCH_MEMBER = 1387,
+ MD_ERROR_WIN_INVALID_MEMBER = 1388,
+ MD_ERROR_WIN_TOO_MANY_SIDS = 1389,
+ MD_ERROR_WIN_LM_CROSS_ENCRYPTION_REQUIRED = 1390,
+ MD_ERROR_WIN_NO_INHERITANCE = 1391,
+ MD_ERROR_WIN_FILE_CORRUPT = 1392,
+ MD_ERROR_WIN_DISK_CORRUPT = 1393,
+ MD_ERROR_WIN_NO_USER_SESSION_KEY = 1394,
+ MD_ERROR_WIN_LICENSE_QUOTA_EXCEEDED = 1395,
+ MD_ERROR_WIN_WRONG_TARGET_NAME = 1396,
+ MD_ERROR_WIN_MUTUAL_AUTH_FAILED = 1397,
+ MD_ERROR_WIN_TIME_SKEW = 1398,
+ MD_ERROR_WIN_CURRENT_DOMAIN_NOT_ALLOWED = 1399,
+ MD_ERROR_WIN_INVALID_WINDOW_HANDLE = 1400,
+ MD_ERROR_WIN_INVALID_MENU_HANDLE = 1401,
+ MD_ERROR_WIN_INVALID_CURSOR_HANDLE = 1402,
+ MD_ERROR_WIN_INVALID_ACCEL_HANDLE = 1403,
+ MD_ERROR_WIN_INVALID_HOOK_HANDLE = 1404,
+ MD_ERROR_WIN_INVALID_DWP_HANDLE = 1405,
+ MD_ERROR_WIN_TLW_WITH_WSCHILD = 1406,
+ MD_ERROR_WIN_CANNOT_FIND_WND_CLASS = 1407,
+ MD_ERROR_WIN_WINDOW_OF_OTHER_THREAD = 1408,
+ MD_ERROR_WIN_HOTKEY_ALREADY_REGISTERED = 1409,
+ MD_ERROR_WIN_CLASS_ALREADY_EXISTS = 1410,
+ MD_ERROR_WIN_CLASS_DOES_NOT_EXIST = 1411,
+ MD_ERROR_WIN_CLASS_HAS_WINDOWS = 1412,
+ MD_ERROR_WIN_INVALID_INDEX = 1413,
+ MD_ERROR_WIN_INVALID_ICON_HANDLE = 1414,
+ MD_ERROR_WIN_PRIVATE_DIALOG_INDEX = 1415,
+ MD_ERROR_WIN_LISTBOX_ID_NOT_FOUND = 1416,
+ MD_ERROR_WIN_NO_WILDCARD_CHARACTERS = 1417,
+ MD_ERROR_WIN_CLIPBOARD_NOT_OPEN = 1418,
+ MD_ERROR_WIN_HOTKEY_NOT_REGISTERED = 1419,
+ MD_ERROR_WIN_WINDOW_NOT_DIALOG = 1420,
+ MD_ERROR_WIN_CONTROL_ID_NOT_FOUND = 1421,
+ MD_ERROR_WIN_INVALID_COMBOBOX_MESSAGE = 1422,
+ MD_ERROR_WIN_WINDOW_NOT_COMBOBOX = 1423,
+ MD_ERROR_WIN_INVALID_EDIT_HEIGHT = 1424,
+ MD_ERROR_WIN_DC_NOT_FOUND = 1425,
+ MD_ERROR_WIN_INVALID_HOOK_FILTER = 1426,
+ MD_ERROR_WIN_INVALID_FILTER_PROC = 1427,
+ MD_ERROR_WIN_HOOK_NEEDS_HMOD = 1428,
+ MD_ERROR_WIN_GLOBAL_ONLY_HOOK = 1429,
+ MD_ERROR_WIN_JOURNAL_HOOK_SET = 1430,
+ MD_ERROR_WIN_HOOK_NOT_INSTALLED = 1431,
+ MD_ERROR_WIN_INVALID_LB_MESSAGE = 1432,
+ MD_ERROR_WIN_SETCOUNT_ON_BAD_LB = 1433,
+ MD_ERROR_WIN_LB_WITHOUT_TABSTOPS = 1434,
+ MD_ERROR_WIN_DESTROY_OBJECT_OF_OTHER_THREAD = 1435,
+ MD_ERROR_WIN_CHILD_WINDOW_MENU = 1436,
+ MD_ERROR_WIN_NO_SYSTEM_MENU = 1437,
+ MD_ERROR_WIN_INVALID_MSGBOX_STYLE = 1438,
+ MD_ERROR_WIN_INVALID_SPI_VALUE = 1439,
+ MD_ERROR_WIN_SCREEN_ALREADY_LOCKED = 1440,
+ MD_ERROR_WIN_HWNDS_HAVE_DIFF_PARENT = 1441,
+ MD_ERROR_WIN_NOT_CHILD_WINDOW = 1442,
+ MD_ERROR_WIN_INVALID_GW_COMMAND = 1443,
+ MD_ERROR_WIN_INVALID_THREAD_ID = 1444,
+ MD_ERROR_WIN_NON_MDICHILD_WINDOW = 1445,
+ MD_ERROR_WIN_POPUP_ALREADY_ACTIVE = 1446,
+ MD_ERROR_WIN_NO_SCROLLBARS = 1447,
+ MD_ERROR_WIN_INVALID_SCROLLBAR_RANGE = 1448,
+ MD_ERROR_WIN_INVALID_SHOWWIN_COMMAND = 1449,
+ MD_ERROR_WIN_NO_SYSTEM_RESOURCES = 1450,
+ MD_ERROR_WIN_NONPAGED_SYSTEM_RESOURCES = 1451,
+ MD_ERROR_WIN_PAGED_SYSTEM_RESOURCES = 1452,
+ MD_ERROR_WIN_WORKING_SET_QUOTA = 1453,
+ MD_ERROR_WIN_PAGEFILE_QUOTA = 1454,
+ MD_ERROR_WIN_COMMITMENT_LIMIT = 1455,
+ MD_ERROR_WIN_MENU_ITEM_NOT_FOUND = 1456,
+ MD_ERROR_WIN_INVALID_KEYBOARD_HANDLE = 1457,
+ MD_ERROR_WIN_HOOK_TYPE_NOT_ALLOWED = 1458,
+ MD_ERROR_WIN_REQUIRES_INTERACTIVE_WINDOWSTATION = 1459,
+ MD_ERROR_WIN_TIMEOUT = 1460,
+ MD_ERROR_WIN_INVALID_MONITOR_HANDLE = 1461,
+ MD_ERROR_WIN_INCORRECT_SIZE = 1462,
+ MD_ERROR_WIN_SYMLINK_CLASS_DISABLED = 1463,
+ MD_ERROR_WIN_SYMLINK_NOT_SUPPORTED = 1464,
+ MD_ERROR_WIN_XML_PARSE_ERROR = 1465,
+ MD_ERROR_WIN_XMLDSIG_ERROR = 1466,
+ MD_ERROR_WIN_RESTART_APPLICATION = 1467,
+ MD_ERROR_WIN_WRONG_COMPARTMENT = 1468,
+ MD_ERROR_WIN_AUTHIP_FAILURE = 1469,
+ MD_ERROR_WIN_NO_NVRAM_RESOURCES = 1470,
+ MD_ERROR_WIN_NOT_GUI_PROCESS = 1471,
+ MD_ERROR_WIN_EVENTLOG_FILE_CORRUPT = 1500,
+ MD_ERROR_WIN_EVENTLOG_CANT_START = 1501,
+ MD_ERROR_WIN_LOG_FILE_FULL = 1502,
+ MD_ERROR_WIN_EVENTLOG_FILE_CHANGED = 1503,
+ MD_ERROR_WIN_CONTAINER_ASSIGNED = 1504,
+ MD_ERROR_WIN_JOB_NO_CONTAINER = 1505,
+ MD_ERROR_WIN_INVALID_TASK_NAME = 1550,
+ MD_ERROR_WIN_INVALID_TASK_INDEX = 1551,
+ MD_ERROR_WIN_THREAD_ALREADY_IN_TASK = 1552,
+ MD_ERROR_WIN_INSTALL_SERVICE_FAILURE = 1601,
+ MD_ERROR_WIN_INSTALL_USEREXIT = 1602,
+ MD_ERROR_WIN_INSTALL_FAILURE = 1603,
+ MD_ERROR_WIN_INSTALL_SUSPEND = 1604,
+ MD_ERROR_WIN_UNKNOWN_PRODUCT = 1605,
+ MD_ERROR_WIN_UNKNOWN_FEATURE = 1606,
+ MD_ERROR_WIN_UNKNOWN_COMPONENT = 1607,
+ MD_ERROR_WIN_UNKNOWN_PROPERTY = 1608,
+ MD_ERROR_WIN_INVALID_HANDLE_STATE = 1609,
+ MD_ERROR_WIN_BAD_CONFIGURATION = 1610,
+ MD_ERROR_WIN_INDEX_ABSENT = 1611,
+ MD_ERROR_WIN_INSTALL_SOURCE_ABSENT = 1612,
+ MD_ERROR_WIN_INSTALL_PACKAGE_VERSION = 1613,
+ MD_ERROR_WIN_PRODUCT_UNINSTALLED = 1614,
+ MD_ERROR_WIN_BAD_QUERY_SYNTAX = 1615,
+ MD_ERROR_WIN_INVALID_FIELD = 1616,
+ MD_ERROR_WIN_DEVICE_REMOVED = 1617,
+ MD_ERROR_WIN_INSTALL_ALREADY_RUNNING = 1618,
+ MD_ERROR_WIN_INSTALL_PACKAGE_OPEN_FAILED = 1619,
+ MD_ERROR_WIN_INSTALL_PACKAGE_INVALID = 1620,
+ MD_ERROR_WIN_INSTALL_UI_FAILURE = 1621,
+ MD_ERROR_WIN_INSTALL_LOG_FAILURE = 1622,
+ MD_ERROR_WIN_INSTALL_LANGUAGE_UNSUPPORTED = 1623,
+ MD_ERROR_WIN_INSTALL_TRANSFORM_FAILURE = 1624,
+ MD_ERROR_WIN_INSTALL_PACKAGE_REJECTED = 1625,
+ MD_ERROR_WIN_FUNCTION_NOT_CALLED = 1626,
+ MD_ERROR_WIN_FUNCTION_FAILED = 1627,
+ MD_ERROR_WIN_INVALID_TABLE = 1628,
+ MD_ERROR_WIN_DATATYPE_MISMATCH = 1629,
+ MD_ERROR_WIN_UNSUPPORTED_TYPE = 1630,
+ MD_ERROR_WIN_CREATE_FAILED = 1631,
+ MD_ERROR_WIN_INSTALL_TEMP_UNWRITABLE = 1632,
+ MD_ERROR_WIN_INSTALL_PLATFORM_UNSUPPORTED = 1633,
+ MD_ERROR_WIN_INSTALL_NOTUSED = 1634,
+ MD_ERROR_WIN_PATCH_PACKAGE_OPEN_FAILED = 1635,
+ MD_ERROR_WIN_PATCH_PACKAGE_INVALID = 1636,
+ MD_ERROR_WIN_PATCH_PACKAGE_UNSUPPORTED = 1637,
+ MD_ERROR_WIN_PRODUCT_VERSION = 1638,
+ MD_ERROR_WIN_INVALID_COMMAND_LINE = 1639,
+ MD_ERROR_WIN_INSTALL_REMOTE_DISALLOWED = 1640,
+ MD_ERROR_WIN_SUCCESS_REBOOT_INITIATED = 1641,
+ MD_ERROR_WIN_PATCH_TARGET_NOT_FOUND = 1642,
+ MD_ERROR_WIN_PATCH_PACKAGE_REJECTED = 1643,
+ MD_ERROR_WIN_INSTALL_TRANSFORM_REJECTED = 1644,
+ MD_ERROR_WIN_INSTALL_REMOTE_PROHIBITED = 1645,
+ MD_ERROR_WIN_PATCH_REMOVAL_UNSUPPORTED = 1646,
+ MD_ERROR_WIN_UNKNOWN_PATCH = 1647,
+ MD_ERROR_WIN_PATCH_NO_SEQUENCE = 1648,
+ MD_ERROR_WIN_PATCH_REMOVAL_DISALLOWED = 1649,
+ MD_ERROR_WIN_INVALID_PATCH_XML = 1650,
+ MD_ERROR_WIN_PATCH_MANAGED_ADVERTISED_PRODUCT = 1651,
+ MD_ERROR_WIN_INSTALL_SERVICE_SAFEBOOT = 1652,
+ MD_ERROR_WIN_FAIL_FAST_EXCEPTION = 1653,
+ MD_ERROR_WIN_INSTALL_REJECTED = 1654,
+ MD_ERROR_WIN_DYNAMIC_CODE_BLOCKED = 1655,
+ MD_ERROR_WIN_NOT_SAME_OBJECT = 1656,
+ MD_ERROR_WIN_STRICT_CFG_VIOLATION = 1657,
+ MD_ERROR_WIN_SET_CONTEXT_DENIED = 1660,
+ MD_ERROR_WIN_CROSS_PARTITION_VIOLATION = 1661,
+ MD_ERROR_WIN_RETURN_ADDRESS_HIJACK_ATTEMPT = 1662,
+ MD_ERROR_WIN_INVALID_USER_BUFFER = 1784,
+ MD_ERROR_WIN_UNRECOGNIZED_MEDIA = 1785,
+ MD_ERROR_WIN_NO_TRUST_LSA_SECRET = 1786,
+ MD_ERROR_WIN_NO_TRUST_SAM_ACCOUNT = 1787,
+ MD_ERROR_WIN_TRUSTED_DOMAIN_FAILURE = 1788,
+ MD_ERROR_WIN_TRUSTED_RELATIONSHIP_FAILURE = 1789,
+ MD_ERROR_WIN_TRUST_FAILURE = 1790,
+ MD_ERROR_WIN_NETLOGON_NOT_STARTED = 1792,
+ MD_ERROR_WIN_ACCOUNT_EXPIRED = 1793,
+ MD_ERROR_WIN_REDIRECTOR_HAS_OPEN_HANDLES = 1794,
+ MD_ERROR_WIN_PRINTER_DRIVER_ALREADY_INSTALLED = 1795,
+ MD_ERROR_WIN_UNKNOWN_PORT = 1796,
+ MD_ERROR_WIN_UNKNOWN_PRINTER_DRIVER = 1797,
+ MD_ERROR_WIN_UNKNOWN_PRINTPROCESSOR = 1798,
+ MD_ERROR_WIN_INVALID_SEPARATOR_FILE = 1799,
+ MD_ERROR_WIN_INVALID_PRIORITY = 1800,
+ MD_ERROR_WIN_INVALID_PRINTER_NAME = 1801,
+ MD_ERROR_WIN_PRINTER_ALREADY_EXISTS = 1802,
+ MD_ERROR_WIN_INVALID_PRINTER_COMMAND = 1803,
+ MD_ERROR_WIN_INVALID_DATATYPE = 1804,
+ MD_ERROR_WIN_INVALID_ENVIRONMENT = 1805,
+ MD_ERROR_WIN_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT = 1807,
+ MD_ERROR_WIN_NOLOGON_WORKSTATION_TRUST_ACCOUNT = 1808,
+ MD_ERROR_WIN_NOLOGON_SERVER_TRUST_ACCOUNT = 1809,
+ MD_ERROR_WIN_DOMAIN_TRUST_INCONSISTENT = 1810,
+ MD_ERROR_WIN_SERVER_HAS_OPEN_HANDLES = 1811,
+ MD_ERROR_WIN_RESOURCE_DATA_NOT_FOUND = 1812,
+ MD_ERROR_WIN_RESOURCE_TYPE_NOT_FOUND = 1813,
+ MD_ERROR_WIN_RESOURCE_NAME_NOT_FOUND = 1814,
+ MD_ERROR_WIN_RESOURCE_LANG_NOT_FOUND = 1815,
+ MD_ERROR_WIN_NOT_ENOUGH_QUOTA = 1816,
+ MD_ERROR_WIN_INVALID_TIME = 1901,
+ MD_ERROR_WIN_INVALID_FORM_NAME = 1902,
+ MD_ERROR_WIN_INVALID_FORM_SIZE = 1903,
+ MD_ERROR_WIN_ALREADY_WAITING = 1904,
+ MD_ERROR_WIN_PRINTER_DELETED = 1905,
+ MD_ERROR_WIN_INVALID_PRINTER_STATE = 1906,
+ MD_ERROR_WIN_PASSWORD_MUST_CHANGE = 1907,
+ MD_ERROR_WIN_DOMAIN_CONTROLLER_NOT_FOUND = 1908,
+ MD_ERROR_WIN_ACCOUNT_LOCKED_OUT = 1909,
+ MD_ERROR_WIN_NO_SITENAME = 1919,
+ MD_ERROR_WIN_CANT_ACCESS_FILE = 1920,
+ MD_ERROR_WIN_CANT_RESOLVE_FILENAME = 1921,
+ MD_ERROR_WIN_KM_DRIVER_BLOCKED = 1930,
+ MD_ERROR_WIN_CONTEXT_EXPIRED = 1931,
+ MD_ERROR_WIN_PER_USER_TRUST_QUOTA_EXCEEDED = 1932,
+ MD_ERROR_WIN_ALL_USER_TRUST_QUOTA_EXCEEDED = 1933,
+ MD_ERROR_WIN_USER_DELETE_TRUST_QUOTA_EXCEEDED = 1934,
+ MD_ERROR_WIN_AUTHENTICATION_FIREWALL_FAILED = 1935,
+ MD_ERROR_WIN_REMOTE_PRINT_CONNECTIONS_BLOCKED = 1936,
+ MD_ERROR_WIN_NTLM_BLOCKED = 1937,
+ MD_ERROR_WIN_PASSWORD_CHANGE_REQUIRED = 1938,
+ MD_ERROR_WIN_LOST_MODE_LOGON_RESTRICTION = 1939,
+ MD_ERROR_WIN_INVALID_PIXEL_FORMAT = 2000,
+ MD_ERROR_WIN_BAD_DRIVER = 2001,
+ MD_ERROR_WIN_INVALID_WINDOW_STYLE = 2002,
+ MD_ERROR_WIN_METAFILE_NOT_SUPPORTED = 2003,
+ MD_ERROR_WIN_TRANSFORM_NOT_SUPPORTED = 2004,
+ MD_ERROR_WIN_CLIPPING_NOT_SUPPORTED = 2005,
+ MD_ERROR_WIN_INVALID_CMM = 2010,
+ MD_ERROR_WIN_INVALID_PROFILE = 2011,
+ MD_ERROR_WIN_TAG_NOT_FOUND = 2012,
+ MD_ERROR_WIN_TAG_NOT_PRESENT = 2013,
+ MD_ERROR_WIN_DUPLICATE_TAG = 2014,
+ MD_ERROR_WIN_PROFILE_NOT_ASSOCIATED_WITH_DEVICE = 2015,
+ MD_ERROR_WIN_PROFILE_NOT_FOUND = 2016,
+ MD_ERROR_WIN_INVALID_COLORSPACE = 2017,
+ MD_ERROR_WIN_ICM_NOT_ENABLED = 2018,
+ MD_ERROR_WIN_DELETING_ICM_XFORM = 2019,
+ MD_ERROR_WIN_INVALID_TRANSFORM = 2020,
+ MD_ERROR_WIN_COLORSPACE_MISMATCH = 2021,
+ MD_ERROR_WIN_INVALID_COLORINDEX = 2022,
+ MD_ERROR_WIN_PROFILE_DOES_NOT_MATCH_DEVICE = 2023,
+ MD_ERROR_WIN_CONNECTED_OTHER_PASSWORD = 2108,
+ MD_ERROR_WIN_CONNECTED_OTHER_PASSWORD_DEFAULT = 2109,
+ MD_ERROR_WIN_BAD_USERNAME = 2202,
+ MD_ERROR_WIN_NOT_CONNECTED = 2250,
+ MD_ERROR_WIN_OPEN_FILES = 2401,
+ MD_ERROR_WIN_ACTIVE_CONNECTIONS = 2402,
+ MD_ERROR_WIN_DEVICE_IN_USE = 2404,
+ MD_ERROR_WIN_UNKNOWN_PRINT_MONITOR = 3000,
+ MD_ERROR_WIN_PRINTER_DRIVER_IN_USE = 3001,
+ MD_ERROR_WIN_SPOOL_FILE_NOT_FOUND = 3002,
+ MD_ERROR_WIN_SPL_NO_STARTDOC = 3003,
+ MD_ERROR_WIN_SPL_NO_ADDJOB = 3004,
+ MD_ERROR_WIN_PRINT_PROCESSOR_ALREADY_INSTALLED = 3005,
+ MD_ERROR_WIN_PRINT_MONITOR_ALREADY_INSTALLED = 3006,
+ MD_ERROR_WIN_INVALID_PRINT_MONITOR = 3007,
+ MD_ERROR_WIN_PRINT_MONITOR_IN_USE = 3008,
+ MD_ERROR_WIN_PRINTER_HAS_JOBS_QUEUED = 3009,
+ MD_ERROR_WIN_SUCCESS_REBOOT_REQUIRED = 3010,
+ MD_ERROR_WIN_SUCCESS_RESTART_REQUIRED = 3011,
+ MD_ERROR_WIN_PRINTER_NOT_FOUND = 3012,
+ MD_ERROR_WIN_PRINTER_DRIVER_WARNED = 3013,
+ MD_ERROR_WIN_PRINTER_DRIVER_BLOCKED = 3014,
+ MD_ERROR_WIN_PRINTER_DRIVER_PACKAGE_IN_USE = 3015,
+ MD_ERROR_WIN_CORE_DRIVER_PACKAGE_NOT_FOUND = 3016,
+ MD_ERROR_WIN_FAIL_REBOOT_REQUIRED = 3017,
+ MD_ERROR_WIN_FAIL_REBOOT_INITIATED = 3018,
+ MD_ERROR_WIN_PRINTER_DRIVER_DOWNLOAD_NEEDED = 3019,
+ MD_ERROR_WIN_PRINT_JOB_RESTART_REQUIRED = 3020,
+ MD_ERROR_WIN_INVALID_PRINTER_DRIVER_MANIFEST = 3021,
+ MD_ERROR_WIN_PRINTER_NOT_SHAREABLE = 3022,
+ MD_ERROR_WIN_REQUEST_PAUSED = 3050,
+ MD_ERROR_WIN_APPEXEC_CONDITION_NOT_SATISFIED = 3060,
+ MD_ERROR_WIN_APPEXEC_HANDLE_INVALIDATED = 3061,
+ MD_ERROR_WIN_APPEXEC_INVALID_HOST_GENERATION = 3062,
+ MD_ERROR_WIN_APPEXEC_UNEXPECTED_PROCESS_REGISTRATION = 3063,
+ MD_ERROR_WIN_APPEXEC_INVALID_HOST_STATE = 3064,
+ MD_ERROR_WIN_APPEXEC_NO_DONOR = 3065,
+ MD_ERROR_WIN_APPEXEC_HOST_ID_MISMATCH = 3066,
+ MD_ERROR_WIN_APPEXEC_UNKNOWN_USER = 3067,
+ MD_ERROR_WIN_IO_REISSUE_AS_CACHED = 3950,
+ MD_ERROR_WIN_WINS_INTERNAL = 4000,
+ MD_ERROR_WIN_CAN_NOT_DEL_LOCAL_WINS = 4001,
+ MD_ERROR_WIN_STATIC_INIT = 4002,
+ MD_ERROR_WIN_INC_BACKUP = 4003,
+ MD_ERROR_WIN_FULL_BACKUP = 4004,
+ MD_ERROR_WIN_REC_NON_EXISTENT = 4005,
+ MD_ERROR_WIN_RPL_NOT_ALLOWED = 4006,
+ MD_ERROR_WIN_DHCP_ADDRESS_CONFLICT = 4100,
+ MD_ERROR_WIN_WMI_GUID_NOT_FOUND = 4200,
+ MD_ERROR_WIN_WMI_INSTANCE_NOT_FOUND = 4201,
+ MD_ERROR_WIN_WMI_ITEMID_NOT_FOUND = 4202,
+ MD_ERROR_WIN_WMI_TRY_AGAIN = 4203,
+ MD_ERROR_WIN_WMI_DP_NOT_FOUND = 4204,
+ MD_ERROR_WIN_WMI_UNRESOLVED_INSTANCE_REF = 4205,
+ MD_ERROR_WIN_WMI_ALREADY_ENABLED = 4206,
+ MD_ERROR_WIN_WMI_GUID_DISCONNECTED = 4207,
+ MD_ERROR_WIN_WMI_SERVER_UNAVAILABLE = 4208,
+ MD_ERROR_WIN_WMI_DP_FAILED = 4209,
+ MD_ERROR_WIN_WMI_INVALID_MOF = 4210,
+ MD_ERROR_WIN_WMI_INVALID_REGINFO = 4211,
+ MD_ERROR_WIN_WMI_ALREADY_DISABLED = 4212,
+ MD_ERROR_WIN_WMI_READ_ONLY = 4213,
+ MD_ERROR_WIN_WMI_SET_FAILURE = 4214,
+ MD_ERROR_WIN_NOT_APPCONTAINER = 4250,
+ MD_ERROR_WIN_APPCONTAINER_REQUIRED = 4251,
+ MD_ERROR_WIN_NOT_SUPPORTED_IN_APPCONTAINER = 4252,
+ MD_ERROR_WIN_INVALID_PACKAGE_SID_LENGTH = 4253,
+ MD_ERROR_WIN_INVALID_MEDIA = 4300,
+ MD_ERROR_WIN_INVALID_LIBRARY = 4301,
+ MD_ERROR_WIN_INVALID_MEDIA_POOL = 4302,
+ MD_ERROR_WIN_DRIVE_MEDIA_MISMATCH = 4303,
+ MD_ERROR_WIN_MEDIA_OFFLINE = 4304,
+ MD_ERROR_WIN_LIBRARY_OFFLINE = 4305,
+ MD_ERROR_WIN_EMPTY = 4306,
+ MD_ERROR_WIN_NOT_EMPTY = 4307,
+ MD_ERROR_WIN_MEDIA_UNAVAILABLE = 4308,
+ MD_ERROR_WIN_RESOURCE_DISABLED = 4309,
+ MD_ERROR_WIN_INVALID_CLEANER = 4310,
+ MD_ERROR_WIN_UNABLE_TO_CLEAN = 4311,
+ MD_ERROR_WIN_OBJECT_NOT_FOUND = 4312,
+ MD_ERROR_WIN_DATABASE_FAILURE = 4313,
+ MD_ERROR_WIN_DATABASE_FULL = 4314,
+ MD_ERROR_WIN_MEDIA_INCOMPATIBLE = 4315,
+ MD_ERROR_WIN_RESOURCE_NOT_PRESENT = 4316,
+ MD_ERROR_WIN_INVALID_OPERATION = 4317,
+ MD_ERROR_WIN_MEDIA_NOT_AVAILABLE = 4318,
+ MD_ERROR_WIN_DEVICE_NOT_AVAILABLE = 4319,
+ MD_ERROR_WIN_REQUEST_REFUSED = 4320,
+ MD_ERROR_WIN_INVALID_DRIVE_OBJECT = 4321,
+ MD_ERROR_WIN_LIBRARY_FULL = 4322,
+ MD_ERROR_WIN_MEDIUM_NOT_ACCESSIBLE = 4323,
+ MD_ERROR_WIN_UNABLE_TO_LOAD_MEDIUM = 4324,
+ MD_ERROR_WIN_UNABLE_TO_INVENTORY_DRIVE = 4325,
+ MD_ERROR_WIN_UNABLE_TO_INVENTORY_SLOT = 4326,
+ MD_ERROR_WIN_UNABLE_TO_INVENTORY_TRANSPORT = 4327,
+ MD_ERROR_WIN_TRANSPORT_FULL = 4328,
+ MD_ERROR_WIN_CONTROLLING_IEPORT = 4329,
+ MD_ERROR_WIN_UNABLE_TO_EJECT_MOUNTED_MEDIA = 4330,
+ MD_ERROR_WIN_CLEANER_SLOT_SET = 4331,
+ MD_ERROR_WIN_CLEANER_SLOT_NOT_SET = 4332,
+ MD_ERROR_WIN_CLEANER_CARTRIDGE_SPENT = 4333,
+ MD_ERROR_WIN_UNEXPECTED_OMID = 4334,
+ MD_ERROR_WIN_CANT_DELETE_LAST_ITEM = 4335,
+ MD_ERROR_WIN_MESSAGE_EXCEEDS_MAX_SIZE = 4336,
+ MD_ERROR_WIN_VOLUME_CONTAINS_SYS_FILES = 4337,
+ MD_ERROR_WIN_INDIGENOUS_TYPE = 4338,
+ MD_ERROR_WIN_NO_SUPPORTING_DRIVES = 4339,
+ MD_ERROR_WIN_CLEANER_CARTRIDGE_INSTALLED = 4340,
+ MD_ERROR_WIN_IEPORT_FULL = 4341,
+ MD_ERROR_WIN_FILE_OFFLINE = 4350,
+ MD_ERROR_WIN_REMOTE_STORAGE_NOT_ACTIVE = 4351,
+ MD_ERROR_WIN_REMOTE_STORAGE_MEDIA_ERROR = 4352,
+ MD_ERROR_WIN_NOT_A_REPARSE_POINT = 4390,
+ MD_ERROR_WIN_REPARSE_ATTRIBUTE_CONFLICT = 4391,
+ MD_ERROR_WIN_INVALID_REPARSE_DATA = 4392,
+ MD_ERROR_WIN_REPARSE_TAG_INVALID = 4393,
+ MD_ERROR_WIN_REPARSE_TAG_MISMATCH = 4394,
+ MD_ERROR_WIN_REPARSE_POINT_ENCOUNTERED = 4395,
+ MD_ERROR_WIN_APP_DATA_NOT_FOUND = 4400,
+ MD_ERROR_WIN_APP_DATA_EXPIRED = 4401,
+ MD_ERROR_WIN_APP_DATA_CORRUPT = 4402,
+ MD_ERROR_WIN_APP_DATA_LIMIT_EXCEEDED = 4403,
+ MD_ERROR_WIN_APP_DATA_REBOOT_REQUIRED = 4404,
+ MD_ERROR_WIN_SECUREBOOT_ROLLBACK_DETECTED = 4420,
+ MD_ERROR_WIN_SECUREBOOT_POLICY_VIOLATION = 4421,
+ MD_ERROR_WIN_SECUREBOOT_INVALID_POLICY = 4422,
+ MD_ERROR_WIN_SECUREBOOT_POLICY_PUBLISHER_NOT_FOUND = 4423,
+ MD_ERROR_WIN_SECUREBOOT_POLICY_NOT_SIGNED = 4424,
+ MD_ERROR_WIN_SECUREBOOT_NOT_ENABLED = 4425,
+ MD_ERROR_WIN_SECUREBOOT_FILE_REPLACED = 4426,
+ MD_ERROR_WIN_SECUREBOOT_POLICY_NOT_AUTHORIZED = 4427,
+ MD_ERROR_WIN_SECUREBOOT_POLICY_UNKNOWN = 4428,
+ MD_ERROR_WIN_SECUREBOOT_POLICY_MISSING_ANTIROLLBACKVERSION = 4429,
+ MD_ERROR_WIN_SECUREBOOT_PLATFORM_ID_MISMATCH = 4430,
+ MD_ERROR_WIN_SECUREBOOT_POLICY_ROLLBACK_DETECTED = 4431,
+ MD_ERROR_WIN_SECUREBOOT_POLICY_UPGRADE_MISMATCH = 4432,
+ MD_ERROR_WIN_SECUREBOOT_REQUIRED_POLICY_FILE_MISSING = 4433,
+ MD_ERROR_WIN_SECUREBOOT_NOT_BASE_POLICY = 4434,
+ MD_ERROR_WIN_SECUREBOOT_NOT_SUPPLEMENTAL_POLICY = 4435,
+ MD_ERROR_WIN_OFFLOAD_READ_FLT_NOT_SUPPORTED = 4440,
+ MD_ERROR_WIN_OFFLOAD_WRITE_FLT_NOT_SUPPORTED = 4441,
+ MD_ERROR_WIN_OFFLOAD_READ_FILE_NOT_SUPPORTED = 4442,
+ MD_ERROR_WIN_OFFLOAD_WRITE_FILE_NOT_SUPPORTED = 4443,
+ MD_ERROR_WIN_ALREADY_HAS_STREAM_ID = 4444,
+ MD_ERROR_WIN_SMR_GARBAGE_COLLECTION_REQUIRED = 4445,
+ MD_ERROR_WIN_WOF_WIM_HEADER_CORRUPT = 4446,
+ MD_ERROR_WIN_WOF_WIM_RESOURCE_TABLE_CORRUPT = 4447,
+ MD_ERROR_WIN_WOF_FILE_RESOURCE_TABLE_CORRUPT = 4448,
+ MD_ERROR_WIN_VOLUME_NOT_SIS_ENABLED = 4500,
+ MD_ERROR_WIN_SYSTEM_INTEGRITY_ROLLBACK_DETECTED = 4550,
+ MD_ERROR_WIN_SYSTEM_INTEGRITY_POLICY_VIOLATION = 4551,
+ MD_ERROR_WIN_SYSTEM_INTEGRITY_INVALID_POLICY = 4552,
+ MD_ERROR_WIN_SYSTEM_INTEGRITY_POLICY_NOT_SIGNED = 4553,
+ MD_ERROR_WIN_SYSTEM_INTEGRITY_TOO_MANY_POLICIES = 4554,
+ MD_ERROR_WIN_SYSTEM_INTEGRITY_SUPPLEMENTAL_POLICY_NOT_AUTHORIZED = 4555,
+ MD_ERROR_WIN_VSM_NOT_INITIALIZED = 4560,
+ MD_ERROR_WIN_VSM_DMA_PROTECTION_NOT_IN_USE = 4561,
+ MD_ERROR_WIN_PLATFORM_MANIFEST_NOT_AUTHORIZED = 4570,
+ MD_ERROR_WIN_PLATFORM_MANIFEST_INVALID = 4571,
+ MD_ERROR_WIN_PLATFORM_MANIFEST_FILE_NOT_AUTHORIZED = 4572,
+ MD_ERROR_WIN_PLATFORM_MANIFEST_CATALOG_NOT_AUTHORIZED = 4573,
+ MD_ERROR_WIN_PLATFORM_MANIFEST_BINARY_ID_NOT_FOUND = 4574,
+ MD_ERROR_WIN_PLATFORM_MANIFEST_NOT_ACTIVE = 4575,
+ MD_ERROR_WIN_PLATFORM_MANIFEST_NOT_SIGNED = 4576,
+ MD_ERROR_WIN_DEPENDENT_RESOURCE_EXISTS = 5001,
+ MD_ERROR_WIN_DEPENDENCY_NOT_FOUND = 5002,
+ MD_ERROR_WIN_DEPENDENCY_ALREADY_EXISTS = 5003,
+ MD_ERROR_WIN_RESOURCE_NOT_ONLINE = 5004,
+ MD_ERROR_WIN_HOST_NODE_NOT_AVAILABLE = 5005,
+ MD_ERROR_WIN_RESOURCE_NOT_AVAILABLE = 5006,
+ MD_ERROR_WIN_RESOURCE_NOT_FOUND = 5007,
+ MD_ERROR_WIN_SHUTDOWN_CLUSTER = 5008,
+ MD_ERROR_WIN_CANT_EVICT_ACTIVE_NODE = 5009,
+ MD_ERROR_WIN_OBJECT_ALREADY_EXISTS = 5010,
+ MD_ERROR_WIN_OBJECT_IN_LIST = 5011,
+ MD_ERROR_WIN_GROUP_NOT_AVAILABLE = 5012,
+ MD_ERROR_WIN_GROUP_NOT_FOUND = 5013,
+ MD_ERROR_WIN_GROUP_NOT_ONLINE = 5014,
+ MD_ERROR_WIN_HOST_NODE_NOT_RESOURCE_OWNER = 5015,
+ MD_ERROR_WIN_HOST_NODE_NOT_GROUP_OWNER = 5016,
+ MD_ERROR_WIN_RESMON_CREATE_FAILED = 5017,
+ MD_ERROR_WIN_RESMON_ONLINE_FAILED = 5018,
+ MD_ERROR_WIN_RESOURCE_ONLINE = 5019,
+ MD_ERROR_WIN_QUORUM_RESOURCE = 5020,
+ MD_ERROR_WIN_NOT_QUORUM_CAPABLE = 5021,
+ MD_ERROR_WIN_CLUSTER_SHUTTING_DOWN = 5022,
+ MD_ERROR_WIN_INVALID_STATE = 5023,
+ MD_ERROR_WIN_RESOURCE_PROPERTIES_STORED = 5024,
+ MD_ERROR_WIN_NOT_QUORUM_CLASS = 5025,
+ MD_ERROR_WIN_CORE_RESOURCE = 5026,
+ MD_ERROR_WIN_QUORUM_RESOURCE_ONLINE_FAILED = 5027,
+ MD_ERROR_WIN_QUORUMLOG_OPEN_FAILED = 5028,
+ MD_ERROR_WIN_CLUSTERLOG_CORRUPT = 5029,
+ MD_ERROR_WIN_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE = 5030,
+ MD_ERROR_WIN_CLUSTERLOG_EXCEEDS_MAXSIZE = 5031,
+ MD_ERROR_WIN_CLUSTERLOG_CHKPOINT_NOT_FOUND = 5032,
+ MD_ERROR_WIN_CLUSTERLOG_NOT_ENOUGH_SPACE = 5033,
+ MD_ERROR_WIN_QUORUM_OWNER_ALIVE = 5034,
+ MD_ERROR_WIN_NETWORK_NOT_AVAILABLE = 5035,
+ MD_ERROR_WIN_NODE_NOT_AVAILABLE = 5036,
+ MD_ERROR_WIN_ALL_NODES_NOT_AVAILABLE = 5037,
+ MD_ERROR_WIN_RESOURCE_FAILED = 5038,
+ MD_ERROR_WIN_CLUSTER_INVALID_NODE = 5039,
+ MD_ERROR_WIN_CLUSTER_NODE_EXISTS = 5040,
+ MD_ERROR_WIN_CLUSTER_JOIN_IN_PROGRESS = 5041,
+ MD_ERROR_WIN_CLUSTER_NODE_NOT_FOUND = 5042,
+ MD_ERROR_WIN_CLUSTER_LOCAL_NODE_NOT_FOUND = 5043,
+ MD_ERROR_WIN_CLUSTER_NETWORK_EXISTS = 5044,
+ MD_ERROR_WIN_CLUSTER_NETWORK_NOT_FOUND = 5045,
+ MD_ERROR_WIN_CLUSTER_NETINTERFACE_EXISTS = 5046,
+ MD_ERROR_WIN_CLUSTER_NETINTERFACE_NOT_FOUND = 5047,
+ MD_ERROR_WIN_CLUSTER_INVALID_REQUEST = 5048,
+ MD_ERROR_WIN_CLUSTER_INVALID_NETWORK_PROVIDER = 5049,
+ MD_ERROR_WIN_CLUSTER_NODE_DOWN = 5050,
+ MD_ERROR_WIN_CLUSTER_NODE_UNREACHABLE = 5051,
+ MD_ERROR_WIN_CLUSTER_NODE_NOT_MEMBER = 5052,
+ MD_ERROR_WIN_CLUSTER_JOIN_NOT_IN_PROGRESS = 5053,
+ MD_ERROR_WIN_CLUSTER_INVALID_NETWORK = 5054,
+ MD_ERROR_WIN_CLUSTER_NODE_UP = 5056,
+ MD_ERROR_WIN_CLUSTER_IPADDR_IN_USE = 5057,
+ MD_ERROR_WIN_CLUSTER_NODE_NOT_PAUSED = 5058,
+ MD_ERROR_WIN_CLUSTER_NO_SECURITY_CONTEXT = 5059,
+ MD_ERROR_WIN_CLUSTER_NETWORK_NOT_INTERNAL = 5060,
+ MD_ERROR_WIN_CLUSTER_NODE_ALREADY_UP = 5061,
+ MD_ERROR_WIN_CLUSTER_NODE_ALREADY_DOWN = 5062,
+ MD_ERROR_WIN_CLUSTER_NETWORK_ALREADY_ONLINE = 5063,
+ MD_ERROR_WIN_CLUSTER_NETWORK_ALREADY_OFFLINE = 5064,
+ MD_ERROR_WIN_CLUSTER_NODE_ALREADY_MEMBER = 5065,
+ MD_ERROR_WIN_CLUSTER_LAST_INTERNAL_NETWORK = 5066,
+ MD_ERROR_WIN_CLUSTER_NETWORK_HAS_DEPENDENTS = 5067,
+ MD_ERROR_WIN_INVALID_OPERATION_ON_QUORUM = 5068,
+ MD_ERROR_WIN_DEPENDENCY_NOT_ALLOWED = 5069,
+ MD_ERROR_WIN_CLUSTER_NODE_PAUSED = 5070,
+ MD_ERROR_WIN_NODE_CANT_HOST_RESOURCE = 5071,
+ MD_ERROR_WIN_CLUSTER_NODE_NOT_READY = 5072,
+ MD_ERROR_WIN_CLUSTER_NODE_SHUTTING_DOWN = 5073,
+ MD_ERROR_WIN_CLUSTER_JOIN_ABORTED = 5074,
+ MD_ERROR_WIN_CLUSTER_INCOMPATIBLE_VERSIONS = 5075,
+ MD_ERROR_WIN_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED = 5076,
+ MD_ERROR_WIN_CLUSTER_SYSTEM_CONFIG_CHANGED = 5077,
+ MD_ERROR_WIN_CLUSTER_RESOURCE_TYPE_NOT_FOUND = 5078,
+ MD_ERROR_WIN_CLUSTER_RESTYPE_NOT_SUPPORTED = 5079,
+ MD_ERROR_WIN_CLUSTER_RESNAME_NOT_FOUND = 5080,
+ MD_ERROR_WIN_CLUSTER_NO_RPC_PACKAGES_REGISTERED = 5081,
+ MD_ERROR_WIN_CLUSTER_OWNER_NOT_IN_PREFLIST = 5082,
+ MD_ERROR_WIN_CLUSTER_DATABASE_SEQMISMATCH = 5083,
+ MD_ERROR_WIN_RESMON_INVALID_STATE = 5084,
+ MD_ERROR_WIN_CLUSTER_GUM_NOT_LOCKER = 5085,
+ MD_ERROR_WIN_QUORUM_DISK_NOT_FOUND = 5086,
+ MD_ERROR_WIN_DATABASE_BACKUP_CORRUPT = 5087,
+ MD_ERROR_WIN_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT = 5088,
+ MD_ERROR_WIN_RESOURCE_PROPERTY_UNCHANGEABLE = 5089,
+ MD_ERROR_WIN_NO_ADMIN_ACCESS_POINT = 5090,
+ MD_ERROR_WIN_CLUSTER_MEMBERSHIP_INVALID_STATE = 5890,
+ MD_ERROR_WIN_CLUSTER_QUORUMLOG_NOT_FOUND = 5891,
+ MD_ERROR_WIN_CLUSTER_MEMBERSHIP_HALT = 5892,
+ MD_ERROR_WIN_CLUSTER_INSTANCE_ID_MISMATCH = 5893,
+ MD_ERROR_WIN_CLUSTER_NETWORK_NOT_FOUND_FOR_IP = 5894,
+ MD_ERROR_WIN_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH = 5895,
+ MD_ERROR_WIN_CLUSTER_EVICT_WITHOUT_CLEANUP = 5896,
+ MD_ERROR_WIN_CLUSTER_PARAMETER_MISMATCH = 5897,
+ MD_ERROR_WIN_NODE_CANNOT_BE_CLUSTERED = 5898,
+ MD_ERROR_WIN_CLUSTER_WRONG_OS_VERSION = 5899,
+ MD_ERROR_WIN_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME = 5900,
+ MD_ERROR_WIN_CLUSCFG_ALREADY_COMMITTED = 5901,
+ MD_ERROR_WIN_CLUSCFG_ROLLBACK_FAILED = 5902,
+ MD_ERROR_WIN_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT = 5903,
+ MD_ERROR_WIN_CLUSTER_OLD_VERSION = 5904,
+ MD_ERROR_WIN_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME = 5905,
+ MD_ERROR_WIN_CLUSTER_NO_NET_ADAPTERS = 5906,
+ MD_ERROR_WIN_CLUSTER_POISONED = 5907,
+ MD_ERROR_WIN_CLUSTER_GROUP_MOVING = 5908,
+ MD_ERROR_WIN_CLUSTER_RESOURCE_TYPE_BUSY = 5909,
+ MD_ERROR_WIN_RESOURCE_CALL_TIMED_OUT = 5910,
+ MD_ERROR_WIN_INVALID_CLUSTER_IPV6_ADDRESS = 5911,
+ MD_ERROR_WIN_CLUSTER_INTERNAL_INVALID_FUNCTION = 5912,
+ MD_ERROR_WIN_CLUSTER_PARAMETER_OUT_OF_BOUNDS = 5913,
+ MD_ERROR_WIN_CLUSTER_PARTIAL_SEND = 5914,
+ MD_ERROR_WIN_CLUSTER_REGISTRY_INVALID_FUNCTION = 5915,
+ MD_ERROR_WIN_CLUSTER_INVALID_STRING_TERMINATION = 5916,
+ MD_ERROR_WIN_CLUSTER_INVALID_STRING_FORMAT = 5917,
+ MD_ERROR_WIN_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS = 5918,
+ MD_ERROR_WIN_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS = 5919,
+ MD_ERROR_WIN_CLUSTER_NULL_DATA = 5920,
+ MD_ERROR_WIN_CLUSTER_PARTIAL_READ = 5921,
+ MD_ERROR_WIN_CLUSTER_PARTIAL_WRITE = 5922,
+ MD_ERROR_WIN_CLUSTER_CANT_DESERIALIZE_DATA = 5923,
+ MD_ERROR_WIN_DEPENDENT_RESOURCE_PROPERTY_CONFLICT = 5924,
+ MD_ERROR_WIN_CLUSTER_NO_QUORUM = 5925,
+ MD_ERROR_WIN_CLUSTER_INVALID_IPV6_NETWORK = 5926,
+ MD_ERROR_WIN_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK = 5927,
+ MD_ERROR_WIN_QUORUM_NOT_ALLOWED_IN_THIS_GROUP = 5928,
+ MD_ERROR_WIN_DEPENDENCY_TREE_TOO_COMPLEX = 5929,
+ MD_ERROR_WIN_EXCEPTION_IN_RESOURCE_CALL = 5930,
+ MD_ERROR_WIN_CLUSTER_RHS_FAILED_INITIALIZATION = 5931,
+ MD_ERROR_WIN_CLUSTER_NOT_INSTALLED = 5932,
+ MD_ERROR_WIN_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE = 5933,
+ MD_ERROR_WIN_CLUSTER_MAX_NODES_IN_CLUSTER = 5934,
+ MD_ERROR_WIN_CLUSTER_TOO_MANY_NODES = 5935,
+ MD_ERROR_WIN_CLUSTER_OBJECT_ALREADY_USED = 5936,
+ MD_ERROR_WIN_NONCORE_GROUPS_FOUND = 5937,
+ MD_ERROR_WIN_FILE_SHARE_RESOURCE_CONFLICT = 5938,
+ MD_ERROR_WIN_CLUSTER_EVICT_INVALID_REQUEST = 5939,
+ MD_ERROR_WIN_CLUSTER_SINGLETON_RESOURCE = 5940,
+ MD_ERROR_WIN_CLUSTER_GROUP_SINGLETON_RESOURCE = 5941,
+ MD_ERROR_WIN_CLUSTER_RESOURCE_PROVIDER_FAILED = 5942,
+ MD_ERROR_WIN_CLUSTER_RESOURCE_CONFIGURATION_ERROR = 5943,
+ MD_ERROR_WIN_CLUSTER_GROUP_BUSY = 5944,
+ MD_ERROR_WIN_CLUSTER_NOT_SHARED_VOLUME = 5945,
+ MD_ERROR_WIN_CLUSTER_INVALID_SECURITY_DESCRIPTOR = 5946,
+ MD_ERROR_WIN_CLUSTER_SHARED_VOLUMES_IN_USE = 5947,
+ MD_ERROR_WIN_CLUSTER_USE_SHARED_VOLUMES_API = 5948,
+ MD_ERROR_WIN_CLUSTER_BACKUP_IN_PROGRESS = 5949,
+ MD_ERROR_WIN_NON_CSV_PATH = 5950,
+ MD_ERROR_WIN_CSV_VOLUME_NOT_LOCAL = 5951,
+ MD_ERROR_WIN_CLUSTER_WATCHDOG_TERMINATING = 5952,
+ MD_ERROR_WIN_CLUSTER_RESOURCE_VETOED_MOVE_INCOMPATIBLE_NODES = 5953,
+ MD_ERROR_WIN_CLUSTER_INVALID_NODE_WEIGHT = 5954,
+ MD_ERROR_WIN_CLUSTER_RESOURCE_VETOED_CALL = 5955,
+ MD_ERROR_WIN_RESMON_SYSTEM_RESOURCES_LACKING = 5956,
+ MD_ERROR_WIN_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_DESTINATION = 5957,
+ MD_ERROR_WIN_CLUSTER_RESOURCE_VETOED_MOVE_NOT_ENOUGH_RESOURCES_ON_SOURCE = 5958,
+ MD_ERROR_WIN_CLUSTER_GROUP_QUEUED = 5959,
+ MD_ERROR_WIN_CLUSTER_RESOURCE_LOCKED_STATUS = 5960,
+ MD_ERROR_WIN_CLUSTER_SHARED_VOLUME_FAILOVER_NOT_ALLOWED = 5961,
+ MD_ERROR_WIN_CLUSTER_NODE_DRAIN_IN_PROGRESS = 5962,
+ MD_ERROR_WIN_CLUSTER_DISK_NOT_CONNECTED = 5963,
+ MD_ERROR_WIN_DISK_NOT_CSV_CAPABLE = 5964,
+ MD_ERROR_WIN_RESOURCE_NOT_IN_AVAILABLE_STORAGE = 5965,
+ MD_ERROR_WIN_CLUSTER_SHARED_VOLUME_REDIRECTED = 5966,
+ MD_ERROR_WIN_CLUSTER_SHARED_VOLUME_NOT_REDIRECTED = 5967,
+ MD_ERROR_WIN_CLUSTER_CANNOT_RETURN_PROPERTIES = 5968,
+ MD_ERROR_WIN_CLUSTER_RESOURCE_CONTAINS_UNSUPPORTED_DIFF_AREA_FOR_SHARED_VOLUMES = 5969,
+ MD_ERROR_WIN_CLUSTER_RESOURCE_IS_IN_MAINTENANCE_MODE = 5970,
+ MD_ERROR_WIN_CLUSTER_AFFINITY_CONFLICT = 5971,
+ MD_ERROR_WIN_CLUSTER_RESOURCE_IS_REPLICA_VIRTUAL_MACHINE = 5972,
+ MD_ERROR_WIN_CLUSTER_UPGRADE_INCOMPATIBLE_VERSIONS = 5973,
+ MD_ERROR_WIN_CLUSTER_UPGRADE_FIX_QUORUM_NOT_SUPPORTED = 5974,
+ MD_ERROR_WIN_CLUSTER_UPGRADE_RESTART_REQUIRED = 5975,
+ MD_ERROR_WIN_CLUSTER_UPGRADE_IN_PROGRESS = 5976,
+ MD_ERROR_WIN_CLUSTER_UPGRADE_INCOMPLETE = 5977,
+ MD_ERROR_WIN_CLUSTER_NODE_IN_GRACE_PERIOD = 5978,
+ MD_ERROR_WIN_CLUSTER_CSV_IO_PAUSE_TIMEOUT = 5979,
+ MD_ERROR_WIN_NODE_NOT_ACTIVE_CLUSTER_MEMBER = 5980,
+ MD_ERROR_WIN_CLUSTER_RESOURCE_NOT_MONITORED = 5981,
+ MD_ERROR_WIN_CLUSTER_RESOURCE_DOES_NOT_SUPPORT_UNMONITORED = 5982,
+ MD_ERROR_WIN_CLUSTER_RESOURCE_IS_REPLICATED = 5983,
+ MD_ERROR_WIN_CLUSTER_NODE_ISOLATED = 5984,
+ MD_ERROR_WIN_CLUSTER_NODE_QUARANTINED = 5985,
+ MD_ERROR_WIN_CLUSTER_DATABASE_UPDATE_CONDITION_FAILED = 5986,
+ MD_ERROR_WIN_CLUSTER_SPACE_DEGRADED = 5987,
+ MD_ERROR_WIN_CLUSTER_TOKEN_DELEGATION_NOT_SUPPORTED = 5988,
+ MD_ERROR_WIN_CLUSTER_CSV_INVALID_HANDLE = 5989,
+ MD_ERROR_WIN_CLUSTER_CSV_SUPPORTED_ONLY_ON_COORDINATOR = 5990,
+ MD_ERROR_WIN_GROUPSET_NOT_AVAILABLE = 5991,
+ MD_ERROR_WIN_GROUPSET_NOT_FOUND = 5992,
+ MD_ERROR_WIN_GROUPSET_CANT_PROVIDE = 5993,
+ MD_ERROR_WIN_CLUSTER_FAULT_DOMAIN_PARENT_NOT_FOUND = 5994,
+ MD_ERROR_WIN_CLUSTER_FAULT_DOMAIN_INVALID_HIERARCHY = 5995,
+ MD_ERROR_WIN_CLUSTER_FAULT_DOMAIN_FAILED_S2D_VALIDATION = 5996,
+ MD_ERROR_WIN_CLUSTER_FAULT_DOMAIN_S2D_CONNECTIVITY_LOSS = 5997,
+ MD_ERROR_WIN_CLUSTER_INVALID_INFRASTRUCTURE_FILESERVER_NAME = 5998,
+ MD_ERROR_WIN_CLUSTERSET_MANAGEMENT_CLUSTER_UNREACHABLE = 5999,
+ MD_ERROR_WIN_ENCRYPTION_FAILED = 6000,
+ MD_ERROR_WIN_DECRYPTION_FAILED = 6001,
+ MD_ERROR_WIN_FILE_ENCRYPTED = 6002,
+ MD_ERROR_WIN_NO_RECOVERY_POLICY = 6003,
+ MD_ERROR_WIN_NO_EFS = 6004,
+ MD_ERROR_WIN_WRONG_EFS = 6005,
+ MD_ERROR_WIN_NO_USER_KEYS = 6006,
+ MD_ERROR_WIN_FILE_NOT_ENCRYPTED = 6007,
+ MD_ERROR_WIN_NOT_EXPORT_FORMAT = 6008,
+ MD_ERROR_WIN_FILE_READ_ONLY = 6009,
+ MD_ERROR_WIN_DIR_EFS_DISALLOWED = 6010,
+ MD_ERROR_WIN_EFS_SERVER_NOT_TRUSTED = 6011,
+ MD_ERROR_WIN_BAD_RECOVERY_POLICY = 6012,
+ MD_ERROR_WIN_EFS_ALG_BLOB_TOO_BIG = 6013,
+ MD_ERROR_WIN_VOLUME_NOT_SUPPORT_EFS = 6014,
+ MD_ERROR_WIN_EFS_DISABLED = 6015,
+ MD_ERROR_WIN_EFS_VERSION_NOT_SUPPORT = 6016,
+ MD_ERROR_WIN_CS_ENCRYPTION_INVALID_SERVER_RESPONSE = 6017,
+ MD_ERROR_WIN_CS_ENCRYPTION_UNSUPPORTED_SERVER = 6018,
+ MD_ERROR_WIN_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE = 6019,
+ MD_ERROR_WIN_CS_ENCRYPTION_NEW_ENCRYPTED_FILE = 6020,
+ MD_ERROR_WIN_CS_ENCRYPTION_FILE_NOT_CSE = 6021,
+ MD_ERROR_WIN_ENCRYPTION_POLICY_DENIES_OPERATION = 6022,
+ MD_ERROR_WIN_WIP_ENCRYPTION_FAILED = 6023,
+ MD_ERROR_WIN_NO_BROWSER_SERVERS_FOUND = 6118,
+ MD_ERROR_WIN_CLUSTER_OBJECT_IS_CLUSTER_SET_VM = 6250,
+ MD_ERROR_WIN_LOG_SECTOR_INVALID = 6600,
+ MD_ERROR_WIN_LOG_SECTOR_PARITY_INVALID = 6601,
+ MD_ERROR_WIN_LOG_SECTOR_REMAPPED = 6602,
+ MD_ERROR_WIN_LOG_BLOCK_INCOMPLETE = 6603,
+ MD_ERROR_WIN_LOG_INVALID_RANGE = 6604,
+ MD_ERROR_WIN_LOG_BLOCKS_EXHAUSTED = 6605,
+ MD_ERROR_WIN_LOG_READ_CONTEXT_INVALID = 6606,
+ MD_ERROR_WIN_LOG_RESTART_INVALID = 6607,
+ MD_ERROR_WIN_LOG_BLOCK_VERSION = 6608,
+ MD_ERROR_WIN_LOG_BLOCK_INVALID = 6609,
+ MD_ERROR_WIN_LOG_READ_MODE_INVALID = 6610,
+ MD_ERROR_WIN_LOG_NO_RESTART = 6611,
+ MD_ERROR_WIN_LOG_METADATA_CORRUPT = 6612,
+ MD_ERROR_WIN_LOG_METADATA_INVALID = 6613,
+ MD_ERROR_WIN_LOG_METADATA_INCONSISTENT = 6614,
+ MD_ERROR_WIN_LOG_RESERVATION_INVALID = 6615,
+ MD_ERROR_WIN_LOG_CANT_DELETE = 6616,
+ MD_ERROR_WIN_LOG_CONTAINER_LIMIT_EXCEEDED = 6617,
+ MD_ERROR_WIN_LOG_START_OF_LOG = 6618,
+ MD_ERROR_WIN_LOG_POLICY_ALREADY_INSTALLED = 6619,
+ MD_ERROR_WIN_LOG_POLICY_NOT_INSTALLED = 6620,
+ MD_ERROR_WIN_LOG_POLICY_INVALID = 6621,
+ MD_ERROR_WIN_LOG_POLICY_CONFLICT = 6622,
+ MD_ERROR_WIN_LOG_PINNED_ARCHIVE_TAIL = 6623,
+ MD_ERROR_WIN_LOG_RECORD_NONEXISTENT = 6624,
+ MD_ERROR_WIN_LOG_RECORDS_RESERVED_INVALID = 6625,
+ MD_ERROR_WIN_LOG_SPACE_RESERVED_INVALID = 6626,
+ MD_ERROR_WIN_LOG_TAIL_INVALID = 6627,
+ MD_ERROR_WIN_LOG_FULL = 6628,
+ MD_ERROR_WIN_COULD_NOT_RESIZE_LOG = 6629,
+ MD_ERROR_WIN_LOG_MULTIPLEXED = 6630,
+ MD_ERROR_WIN_LOG_DEDICATED = 6631,
+ MD_ERROR_WIN_LOG_ARCHIVE_NOT_IN_PROGRESS = 6632,
+ MD_ERROR_WIN_LOG_ARCHIVE_IN_PROGRESS = 6633,
+ MD_ERROR_WIN_LOG_EPHEMERAL = 6634,
+ MD_ERROR_WIN_LOG_NOT_ENOUGH_CONTAINERS = 6635,
+ MD_ERROR_WIN_LOG_CLIENT_ALREADY_REGISTERED = 6636,
+ MD_ERROR_WIN_LOG_CLIENT_NOT_REGISTERED = 6637,
+ MD_ERROR_WIN_LOG_FULL_HANDLER_IN_PROGRESS = 6638,
+ MD_ERROR_WIN_LOG_CONTAINER_READ_FAILED = 6639,
+ MD_ERROR_WIN_LOG_CONTAINER_WRITE_FAILED = 6640,
+ MD_ERROR_WIN_LOG_CONTAINER_OPEN_FAILED = 6641,
+ MD_ERROR_WIN_LOG_CONTAINER_STATE_INVALID = 6642,
+ MD_ERROR_WIN_LOG_STATE_INVALID = 6643,
+ MD_ERROR_WIN_LOG_PINNED = 6644,
+ MD_ERROR_WIN_LOG_METADATA_FLUSH_FAILED = 6645,
+ MD_ERROR_WIN_LOG_INCONSISTENT_SECURITY = 6646,
+ MD_ERROR_WIN_LOG_APPENDED_FLUSH_FAILED = 6647,
+ MD_ERROR_WIN_LOG_PINNED_RESERVATION = 6648,
+ MD_ERROR_WIN_INVALID_TRANSACTION = 6700,
+ MD_ERROR_WIN_TRANSACTION_NOT_ACTIVE = 6701,
+ MD_ERROR_WIN_TRANSACTION_REQUEST_NOT_VALID = 6702,
+ MD_ERROR_WIN_TRANSACTION_NOT_REQUESTED = 6703,
+ MD_ERROR_WIN_TRANSACTION_ALREADY_ABORTED = 6704,
+ MD_ERROR_WIN_TRANSACTION_ALREADY_COMMITTED = 6705,
+ MD_ERROR_WIN_TM_INITIALIZATION_FAILED = 6706,
+ MD_ERROR_WIN_RESOURCEMANAGER_READ_ONLY = 6707,
+ MD_ERROR_WIN_TRANSACTION_NOT_JOINED = 6708,
+ MD_ERROR_WIN_TRANSACTION_SUPERIOR_EXISTS = 6709,
+ MD_ERROR_WIN_CRM_PROTOCOL_ALREADY_EXISTS = 6710,
+ MD_ERROR_WIN_TRANSACTION_PROPAGATION_FAILED = 6711,
+ MD_ERROR_WIN_CRM_PROTOCOL_NOT_FOUND = 6712,
+ MD_ERROR_WIN_TRANSACTION_INVALID_MARSHALL_BUFFER = 6713,
+ MD_ERROR_WIN_CURRENT_TRANSACTION_NOT_VALID = 6714,
+ MD_ERROR_WIN_TRANSACTION_NOT_FOUND = 6715,
+ MD_ERROR_WIN_RESOURCEMANAGER_NOT_FOUND = 6716,
+ MD_ERROR_WIN_ENLISTMENT_NOT_FOUND = 6717,
+ MD_ERROR_WIN_TRANSACTIONMANAGER_NOT_FOUND = 6718,
+ MD_ERROR_WIN_TRANSACTIONMANAGER_NOT_ONLINE = 6719,
+ MD_ERROR_WIN_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION = 6720,
+ MD_ERROR_WIN_TRANSACTION_NOT_ROOT = 6721,
+ MD_ERROR_WIN_TRANSACTION_OBJECT_EXPIRED = 6722,
+ MD_ERROR_WIN_TRANSACTION_RESPONSE_NOT_ENLISTED = 6723,
+ MD_ERROR_WIN_TRANSACTION_RECORD_TOO_LONG = 6724,
+ MD_ERROR_WIN_IMPLICIT_TRANSACTION_NOT_SUPPORTED = 6725,
+ MD_ERROR_WIN_TRANSACTION_INTEGRITY_VIOLATED = 6726,
+ MD_ERROR_WIN_TRANSACTIONMANAGER_IDENTITY_MISMATCH = 6727,
+ MD_ERROR_WIN_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT = 6728,
+ MD_ERROR_WIN_TRANSACTION_MUST_WRITETHROUGH = 6729,
+ MD_ERROR_WIN_TRANSACTION_NO_SUPERIOR = 6730,
+ MD_ERROR_WIN_HEURISTIC_DAMAGE_POSSIBLE = 6731,
+ MD_ERROR_WIN_TRANSACTIONAL_CONFLICT = 6800,
+ MD_ERROR_WIN_RM_NOT_ACTIVE = 6801,
+ MD_ERROR_WIN_RM_METADATA_CORRUPT = 6802,
+ MD_ERROR_WIN_DIRECTORY_NOT_RM = 6803,
+ MD_ERROR_WIN_TRANSACTIONS_UNSUPPORTED_REMOTE = 6805,
+ MD_ERROR_WIN_LOG_RESIZE_INVALID_SIZE = 6806,
+ MD_ERROR_WIN_OBJECT_NO_LONGER_EXISTS = 6807,
+ MD_ERROR_WIN_STREAM_MINIVERSION_NOT_FOUND = 6808,
+ MD_ERROR_WIN_STREAM_MINIVERSION_NOT_VALID = 6809,
+ MD_ERROR_WIN_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION = 6810,
+ MD_ERROR_WIN_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT = 6811,
+ MD_ERROR_WIN_CANT_CREATE_MORE_STREAM_MINIVERSIONS = 6812,
+ MD_ERROR_WIN_REMOTE_FILE_VERSION_MISMATCH = 6814,
+ MD_ERROR_WIN_HANDLE_NO_LONGER_VALID = 6815,
+ MD_ERROR_WIN_NO_TXF_METADATA = 6816,
+ MD_ERROR_WIN_LOG_CORRUPTION_DETECTED = 6817,
+ MD_ERROR_WIN_CANT_RECOVER_WITH_HANDLE_OPEN = 6818,
+ MD_ERROR_WIN_RM_DISCONNECTED = 6819,
+ MD_ERROR_WIN_ENLISTMENT_NOT_SUPERIOR = 6820,
+ MD_ERROR_WIN_RECOVERY_NOT_NEEDED = 6821,
+ MD_ERROR_WIN_RM_ALREADY_STARTED = 6822,
+ MD_ERROR_WIN_FILE_IDENTITY_NOT_PERSISTENT = 6823,
+ MD_ERROR_WIN_CANT_BREAK_TRANSACTIONAL_DEPENDENCY = 6824,
+ MD_ERROR_WIN_CANT_CROSS_RM_BOUNDARY = 6825,
+ MD_ERROR_WIN_TXF_DIR_NOT_EMPTY = 6826,
+ MD_ERROR_WIN_INDOUBT_TRANSACTIONS_EXIST = 6827,
+ MD_ERROR_WIN_TM_VOLATILE = 6828,
+ MD_ERROR_WIN_ROLLBACK_TIMER_EXPIRED = 6829,
+ MD_ERROR_WIN_TXF_ATTRIBUTE_CORRUPT = 6830,
+ MD_ERROR_WIN_EFS_NOT_ALLOWED_IN_TRANSACTION = 6831,
+ MD_ERROR_WIN_TRANSACTIONAL_OPEN_NOT_ALLOWED = 6832,
+ MD_ERROR_WIN_LOG_GROWTH_FAILED = 6833,
+ MD_ERROR_WIN_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE = 6834,
+ MD_ERROR_WIN_TXF_METADATA_ALREADY_PRESENT = 6835,
+ MD_ERROR_WIN_TRANSACTION_SCOPE_CALLBACKS_NOT_SET = 6836,
+ MD_ERROR_WIN_TRANSACTION_REQUIRED_PROMOTION = 6837,
+ MD_ERROR_WIN_CANNOT_EXECUTE_FILE_IN_TRANSACTION = 6838,
+ MD_ERROR_WIN_TRANSACTIONS_NOT_FROZEN = 6839,
+ MD_ERROR_WIN_TRANSACTION_FREEZE_IN_PROGRESS = 6840,
+ MD_ERROR_WIN_NOT_SNAPSHOT_VOLUME = 6841,
+ MD_ERROR_WIN_NO_SAVEPOINT_WITH_OPEN_FILES = 6842,
+ MD_ERROR_WIN_DATA_LOST_REPAIR = 6843,
+ MD_ERROR_WIN_SPARSE_NOT_ALLOWED_IN_TRANSACTION = 6844,
+ MD_ERROR_WIN_TM_IDENTITY_MISMATCH = 6845,
+ MD_ERROR_WIN_FLOATED_SECTION = 6846,
+ MD_ERROR_WIN_CANNOT_ACCEPT_TRANSACTED_WORK = 6847,
+ MD_ERROR_WIN_CANNOT_ABORT_TRANSACTIONS = 6848,
+ MD_ERROR_WIN_BAD_CLUSTERS = 6849,
+ MD_ERROR_WIN_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION = 6850,
+ MD_ERROR_WIN_VOLUME_DIRTY = 6851,
+ MD_ERROR_WIN_NO_LINK_TRACKING_IN_TRANSACTION = 6852,
+ MD_ERROR_WIN_OPERATION_NOT_SUPPORTED_IN_TRANSACTION = 6853,
+ MD_ERROR_WIN_EXPIRED_HANDLE = 6854,
+ MD_ERROR_WIN_TRANSACTION_NOT_ENLISTED = 6855,
+ MD_ERROR_WIN_CTX_WINSTATION_NAME_INVALID = 7001,
+ MD_ERROR_WIN_CTX_INVALID_PD = 7002,
+ MD_ERROR_WIN_CTX_PD_NOT_FOUND = 7003,
+ MD_ERROR_WIN_CTX_WD_NOT_FOUND = 7004,
+ MD_ERROR_WIN_CTX_CANNOT_MAKE_EVENTLOG_ENTRY = 7005,
+ MD_ERROR_WIN_CTX_SERVICE_NAME_COLLISION = 7006,
+ MD_ERROR_WIN_CTX_CLOSE_PENDING = 7007,
+ MD_ERROR_WIN_CTX_NO_OUTBUF = 7008,
+ MD_ERROR_WIN_CTX_MODEM_INF_NOT_FOUND = 7009,
+ MD_ERROR_WIN_CTX_INVALID_MODEMNAME = 7010,
+ MD_ERROR_WIN_CTX_MODEM_RESPONSE_ERROR = 7011,
+ MD_ERROR_WIN_CTX_MODEM_RESPONSE_TIMEOUT = 7012,
+ MD_ERROR_WIN_CTX_MODEM_RESPONSE_NO_CARRIER = 7013,
+ MD_ERROR_WIN_CTX_MODEM_RESPONSE_NO_DIALTONE = 7014,
+ MD_ERROR_WIN_CTX_MODEM_RESPONSE_BUSY = 7015,
+ MD_ERROR_WIN_CTX_MODEM_RESPONSE_VOICE = 7016,
+ MD_ERROR_WIN_CTX_TD_ERROR = 7017,
+ MD_ERROR_WIN_CTX_WINSTATION_NOT_FOUND = 7022,
+ MD_ERROR_WIN_CTX_WINSTATION_ALREADY_EXISTS = 7023,
+ MD_ERROR_WIN_CTX_WINSTATION_BUSY = 7024,
+ MD_ERROR_WIN_CTX_BAD_VIDEO_MODE = 7025,
+ MD_ERROR_WIN_CTX_GRAPHICS_INVALID = 7035,
+ MD_ERROR_WIN_CTX_LOGON_DISABLED = 7037,
+ MD_ERROR_WIN_CTX_NOT_CONSOLE = 7038,
+ MD_ERROR_WIN_CTX_CLIENT_QUERY_TIMEOUT = 7040,
+ MD_ERROR_WIN_CTX_CONSOLE_DISCONNECT = 7041,
+ MD_ERROR_WIN_CTX_CONSOLE_CONNECT = 7042,
+ MD_ERROR_WIN_CTX_SHADOW_DENIED = 7044,
+ MD_ERROR_WIN_CTX_WINSTATION_ACCESS_DENIED = 7045,
+ MD_ERROR_WIN_CTX_INVALID_WD = 7049,
+ MD_ERROR_WIN_CTX_SHADOW_INVALID = 7050,
+ MD_ERROR_WIN_CTX_SHADOW_DISABLED = 7051,
+ MD_ERROR_WIN_CTX_CLIENT_LICENSE_IN_USE = 7052,
+ MD_ERROR_WIN_CTX_CLIENT_LICENSE_NOT_SET = 7053,
+ MD_ERROR_WIN_CTX_LICENSE_NOT_AVAILABLE = 7054,
+ MD_ERROR_WIN_CTX_LICENSE_CLIENT_INVALID = 7055,
+ MD_ERROR_WIN_CTX_LICENSE_EXPIRED = 7056,
+ MD_ERROR_WIN_CTX_SHADOW_NOT_RUNNING = 7057,
+ MD_ERROR_WIN_CTX_SHADOW_ENDED_BY_MODE_CHANGE = 7058,
+ MD_ERROR_WIN_ACTIVATION_COUNT_EXCEEDED = 7059,
+ MD_ERROR_WIN_CTX_WINSTATIONS_DISABLED = 7060,
+ MD_ERROR_WIN_CTX_ENCRYPTION_LEVEL_REQUIRED = 7061,
+ MD_ERROR_WIN_CTX_SESSION_IN_USE = 7062,
+ MD_ERROR_WIN_CTX_NO_FORCE_LOGOFF = 7063,
+ MD_ERROR_WIN_CTX_ACCOUNT_RESTRICTION = 7064,
+ MD_ERROR_WIN_RDP_PROTOCOL_ERROR = 7065,
+ MD_ERROR_WIN_CTX_CDM_CONNECT = 7066,
+ MD_ERROR_WIN_CTX_CDM_DISCONNECT = 7067,
+ MD_ERROR_WIN_CTX_SECURITY_LAYER_ERROR = 7068,
+ MD_ERROR_WIN_TS_INCOMPATIBLE_SESSIONS = 7069,
+ MD_ERROR_WIN_TS_VIDEO_SUBSYSTEM_ERROR = 7070,
+ MD_ERROR_WIN_DS_NOT_INSTALLED = 8200,
+ MD_ERROR_WIN_DS_MEMBERSHIP_EVALUATED_LOCALLY = 8201,
+ MD_ERROR_WIN_DS_NO_ATTRIBUTE_OR_VALUE = 8202,
+ MD_ERROR_WIN_DS_INVALID_ATTRIBUTE_SYNTAX = 8203,
+ MD_ERROR_WIN_DS_ATTRIBUTE_TYPE_UNDEFINED = 8204,
+ MD_ERROR_WIN_DS_ATTRIBUTE_OR_VALUE_EXISTS = 8205,
+ MD_ERROR_WIN_DS_BUSY = 8206,
+ MD_ERROR_WIN_DS_UNAVAILABLE = 8207,
+ MD_ERROR_WIN_DS_NO_RIDS_ALLOCATED = 8208,
+ MD_ERROR_WIN_DS_NO_MORE_RIDS = 8209,
+ MD_ERROR_WIN_DS_INCORRECT_ROLE_OWNER = 8210,
+ MD_ERROR_WIN_DS_RIDMGR_INIT_ERROR = 8211,
+ MD_ERROR_WIN_DS_OBJ_CLASS_VIOLATION = 8212,
+ MD_ERROR_WIN_DS_CANT_ON_NON_LEAF = 8213,
+ MD_ERROR_WIN_DS_CANT_ON_RDN = 8214,
+ MD_ERROR_WIN_DS_CANT_MOD_OBJ_CLASS = 8215,
+ MD_ERROR_WIN_DS_CROSS_DOM_MOVE_ERROR = 8216,
+ MD_ERROR_WIN_DS_GC_NOT_AVAILABLE = 8217,
+ MD_ERROR_WIN_SHARED_POLICY = 8218,
+ MD_ERROR_WIN_POLICY_OBJECT_NOT_FOUND = 8219,
+ MD_ERROR_WIN_POLICY_ONLY_IN_DS = 8220,
+ MD_ERROR_WIN_PROMOTION_ACTIVE = 8221,
+ MD_ERROR_WIN_NO_PROMOTION_ACTIVE = 8222,
+ MD_ERROR_WIN_DS_OPERATIONS_ERROR = 8224,
+ MD_ERROR_WIN_DS_PROTOCOL_ERROR = 8225,
+ MD_ERROR_WIN_DS_TIMELIMIT_EXCEEDED = 8226,
+ MD_ERROR_WIN_DS_SIZELIMIT_EXCEEDED = 8227,
+ MD_ERROR_WIN_DS_ADMIN_LIMIT_EXCEEDED = 8228,
+ MD_ERROR_WIN_DS_COMPARE_FALSE = 8229,
+ MD_ERROR_WIN_DS_COMPARE_TRUE = 8230,
+ MD_ERROR_WIN_DS_AUTH_METHOD_NOT_SUPPORTED = 8231,
+ MD_ERROR_WIN_DS_STRONG_AUTH_REQUIRED = 8232,
+ MD_ERROR_WIN_DS_INAPPROPRIATE_AUTH = 8233,
+ MD_ERROR_WIN_DS_AUTH_UNKNOWN = 8234,
+ MD_ERROR_WIN_DS_REFERRAL = 8235,
+ MD_ERROR_WIN_DS_UNAVAILABLE_CRIT_EXTENSION = 8236,
+ MD_ERROR_WIN_DS_CONFIDENTIALITY_REQUIRED = 8237,
+ MD_ERROR_WIN_DS_INAPPROPRIATE_MATCHING = 8238,
+ MD_ERROR_WIN_DS_CONSTRAINT_VIOLATION = 8239,
+ MD_ERROR_WIN_DS_NO_SUCH_OBJECT = 8240,
+ MD_ERROR_WIN_DS_ALIAS_PROBLEM = 8241,
+ MD_ERROR_WIN_DS_INVALID_DN_SYNTAX = 8242,
+ MD_ERROR_WIN_DS_IS_LEAF = 8243,
+ MD_ERROR_WIN_DS_ALIAS_DEREF_PROBLEM = 8244,
+ MD_ERROR_WIN_DS_UNWILLING_TO_PERFORM = 8245,
+ MD_ERROR_WIN_DS_LOOP_DETECT = 8246,
+ MD_ERROR_WIN_DS_NAMING_VIOLATION = 8247,
+ MD_ERROR_WIN_DS_OBJECT_RESULTS_TOO_LARGE = 8248,
+ MD_ERROR_WIN_DS_AFFECTS_MULTIPLE_DSAS = 8249,
+ MD_ERROR_WIN_DS_SERVER_DOWN = 8250,
+ MD_ERROR_WIN_DS_LOCAL_ERROR = 8251,
+ MD_ERROR_WIN_DS_ENCODING_ERROR = 8252,
+ MD_ERROR_WIN_DS_DECODING_ERROR = 8253,
+ MD_ERROR_WIN_DS_FILTER_UNKNOWN = 8254,
+ MD_ERROR_WIN_DS_PARAM_ERROR = 8255,
+ MD_ERROR_WIN_DS_NOT_SUPPORTED = 8256,
+ MD_ERROR_WIN_DS_NO_RESULTS_RETURNED = 8257,
+ MD_ERROR_WIN_DS_CONTROL_NOT_FOUND = 8258,
+ MD_ERROR_WIN_DS_CLIENT_LOOP = 8259,
+ MD_ERROR_WIN_DS_REFERRAL_LIMIT_EXCEEDED = 8260,
+ MD_ERROR_WIN_DS_SORT_CONTROL_MISSING = 8261,
+ MD_ERROR_WIN_DS_OFFSET_RANGE_ERROR = 8262,
+ MD_ERROR_WIN_DS_RIDMGR_DISABLED = 8263,
+ MD_ERROR_WIN_DS_ROOT_MUST_BE_NC = 8301,
+ MD_ERROR_WIN_DS_ADD_REPLICA_INHIBITED = 8302,
+ MD_ERROR_WIN_DS_ATT_NOT_DEF_IN_SCHEMA = 8303,
+ MD_ERROR_WIN_DS_MAX_OBJ_SIZE_EXCEEDED = 8304,
+ MD_ERROR_WIN_DS_OBJ_STRING_NAME_EXISTS = 8305,
+ MD_ERROR_WIN_DS_NO_RDN_DEFINED_IN_SCHEMA = 8306,
+ MD_ERROR_WIN_DS_RDN_DOESNT_MATCH_SCHEMA = 8307,
+ MD_ERROR_WIN_DS_NO_REQUESTED_ATTS_FOUND = 8308,
+ MD_ERROR_WIN_DS_USER_BUFFER_TO_SMALL = 8309,
+ MD_ERROR_WIN_DS_ATT_IS_NOT_ON_OBJ = 8310,
+ MD_ERROR_WIN_DS_ILLEGAL_MOD_OPERATION = 8311,
+ MD_ERROR_WIN_DS_OBJ_TOO_LARGE = 8312,
+ MD_ERROR_WIN_DS_BAD_INSTANCE_TYPE = 8313,
+ MD_ERROR_WIN_DS_MASTERDSA_REQUIRED = 8314,
+ MD_ERROR_WIN_DS_OBJECT_CLASS_REQUIRED = 8315,
+ MD_ERROR_WIN_DS_MISSING_REQUIRED_ATT = 8316,
+ MD_ERROR_WIN_DS_ATT_NOT_DEF_FOR_CLASS = 8317,
+ MD_ERROR_WIN_DS_ATT_ALREADY_EXISTS = 8318,
+ MD_ERROR_WIN_DS_CANT_ADD_ATT_VALUES = 8320,
+ MD_ERROR_WIN_DS_SINGLE_VALUE_CONSTRAINT = 8321,
+ MD_ERROR_WIN_DS_RANGE_CONSTRAINT = 8322,
+ MD_ERROR_WIN_DS_ATT_VAL_ALREADY_EXISTS = 8323,
+ MD_ERROR_WIN_DS_CANT_REM_MISSING_ATT = 8324,
+ MD_ERROR_WIN_DS_CANT_REM_MISSING_ATT_VAL = 8325,
+ MD_ERROR_WIN_DS_ROOT_CANT_BE_SUBREF = 8326,
+ MD_ERROR_WIN_DS_NO_CHAINING = 8327,
+ MD_ERROR_WIN_DS_NO_CHAINED_EVAL = 8328,
+ MD_ERROR_WIN_DS_NO_PARENT_OBJECT = 8329,
+ MD_ERROR_WIN_DS_PARENT_IS_AN_ALIAS = 8330,
+ MD_ERROR_WIN_DS_CANT_MIX_MASTER_AND_REPS = 8331,
+ MD_ERROR_WIN_DS_CHILDREN_EXIST = 8332,
+ MD_ERROR_WIN_DS_OBJ_NOT_FOUND = 8333,
+ MD_ERROR_WIN_DS_ALIASED_OBJ_MISSING = 8334,
+ MD_ERROR_WIN_DS_BAD_NAME_SYNTAX = 8335,
+ MD_ERROR_WIN_DS_ALIAS_POINTS_TO_ALIAS = 8336,
+ MD_ERROR_WIN_DS_CANT_DEREF_ALIAS = 8337,
+ MD_ERROR_WIN_DS_OUT_OF_SCOPE = 8338,
+ MD_ERROR_WIN_DS_OBJECT_BEING_REMOVED = 8339,
+ MD_ERROR_WIN_DS_CANT_DELETE_DSA_OBJ = 8340,
+ MD_ERROR_WIN_DS_GENERIC_ERROR = 8341,
+ MD_ERROR_WIN_DS_DSA_MUST_BE_INT_MASTER = 8342,
+ MD_ERROR_WIN_DS_CLASS_NOT_DSA = 8343,
+ MD_ERROR_WIN_DS_INSUFF_ACCESS_RIGHTS = 8344,
+ MD_ERROR_WIN_DS_ILLEGAL_SUPERIOR = 8345,
+ MD_ERROR_WIN_DS_ATTRIBUTE_OWNED_BY_SAM = 8346,
+ MD_ERROR_WIN_DS_NAME_TOO_MANY_PARTS = 8347,
+ MD_ERROR_WIN_DS_NAME_TOO_LONG = 8348,
+ MD_ERROR_WIN_DS_NAME_VALUE_TOO_LONG = 8349,
+ MD_ERROR_WIN_DS_NAME_UNPARSEABLE = 8350,
+ MD_ERROR_WIN_DS_NAME_TYPE_UNKNOWN = 8351,
+ MD_ERROR_WIN_DS_NOT_AN_OBJECT = 8352,
+ MD_ERROR_WIN_DS_SEC_DESC_TOO_SHORT = 8353,
+ MD_ERROR_WIN_DS_SEC_DESC_INVALID = 8354,
+ MD_ERROR_WIN_DS_NO_DELETED_NAME = 8355,
+ MD_ERROR_WIN_DS_SUBREF_MUST_HAVE_PARENT = 8356,
+ MD_ERROR_WIN_DS_NCNAME_MUST_BE_NC = 8357,
+ MD_ERROR_WIN_DS_CANT_ADD_SYSTEM_ONLY = 8358,
+ MD_ERROR_WIN_DS_CLASS_MUST_BE_CONCRETE = 8359,
+ MD_ERROR_WIN_DS_INVALID_DMD = 8360,
+ MD_ERROR_WIN_DS_OBJ_GUID_EXISTS = 8361,
+ MD_ERROR_WIN_DS_NOT_ON_BACKLINK = 8362,
+ MD_ERROR_WIN_DS_NO_CROSSREF_FOR_NC = 8363,
+ MD_ERROR_WIN_DS_SHUTTING_DOWN = 8364,
+ MD_ERROR_WIN_DS_UNKNOWN_OPERATION = 8365,
+ MD_ERROR_WIN_DS_INVALID_ROLE_OWNER = 8366,
+ MD_ERROR_WIN_DS_COULDNT_CONTACT_FSMO = 8367,
+ MD_ERROR_WIN_DS_CROSS_NC_DN_RENAME = 8368,
+ MD_ERROR_WIN_DS_CANT_MOD_SYSTEM_ONLY = 8369,
+ MD_ERROR_WIN_DS_REPLICATOR_ONLY = 8370,
+ MD_ERROR_WIN_DS_OBJ_CLASS_NOT_DEFINED = 8371,
+ MD_ERROR_WIN_DS_OBJ_CLASS_NOT_SUBCLASS = 8372,
+ MD_ERROR_WIN_DS_NAME_REFERENCE_INVALID = 8373,
+ MD_ERROR_WIN_DS_CROSS_REF_EXISTS = 8374,
+ MD_ERROR_WIN_DS_CANT_DEL_MASTER_CROSSREF = 8375,
+ MD_ERROR_WIN_DS_SUBTREE_NOTIFY_NOT_NC_HEAD = 8376,
+ MD_ERROR_WIN_DS_NOTIFY_FILTER_TOO_COMPLEX = 8377,
+ MD_ERROR_WIN_DS_DUP_RDN = 8378,
+ MD_ERROR_WIN_DS_DUP_OID = 8379,
+ MD_ERROR_WIN_DS_DUP_MAPI_ID = 8380,
+ MD_ERROR_WIN_DS_DUP_SCHEMA_ID_GUID = 8381,
+ MD_ERROR_WIN_DS_DUP_LDAP_DISPLAY_NAME = 8382,
+ MD_ERROR_WIN_DS_SEMANTIC_ATT_TEST = 8383,
+ MD_ERROR_WIN_DS_SYNTAX_MISMATCH = 8384,
+ MD_ERROR_WIN_DS_EXISTS_IN_MUST_HAVE = 8385,
+ MD_ERROR_WIN_DS_EXISTS_IN_MAY_HAVE = 8386,
+ MD_ERROR_WIN_DS_NONEXISTENT_MAY_HAVE = 8387,
+ MD_ERROR_WIN_DS_NONEXISTENT_MUST_HAVE = 8388,
+ MD_ERROR_WIN_DS_AUX_CLS_TEST_FAIL = 8389,
+ MD_ERROR_WIN_DS_NONEXISTENT_POSS_SUP = 8390,
+ MD_ERROR_WIN_DS_SUB_CLS_TEST_FAIL = 8391,
+ MD_ERROR_WIN_DS_BAD_RDN_ATT_ID_SYNTAX = 8392,
+ MD_ERROR_WIN_DS_EXISTS_IN_AUX_CLS = 8393,
+ MD_ERROR_WIN_DS_EXISTS_IN_SUB_CLS = 8394,
+ MD_ERROR_WIN_DS_EXISTS_IN_POSS_SUP = 8395,
+ MD_ERROR_WIN_DS_RECALCSCHEMA_FAILED = 8396,
+ MD_ERROR_WIN_DS_TREE_DELETE_NOT_FINISHED = 8397,
+ MD_ERROR_WIN_DS_CANT_DELETE = 8398,
+ MD_ERROR_WIN_DS_ATT_SCHEMA_REQ_ID = 8399,
+ MD_ERROR_WIN_DS_BAD_ATT_SCHEMA_SYNTAX = 8400,
+ MD_ERROR_WIN_DS_CANT_CACHE_ATT = 8401,
+ MD_ERROR_WIN_DS_CANT_CACHE_CLASS = 8402,
+ MD_ERROR_WIN_DS_CANT_REMOVE_ATT_CACHE = 8403,
+ MD_ERROR_WIN_DS_CANT_REMOVE_CLASS_CACHE = 8404,
+ MD_ERROR_WIN_DS_CANT_RETRIEVE_DN = 8405,
+ MD_ERROR_WIN_DS_MISSING_SUPREF = 8406,
+ MD_ERROR_WIN_DS_CANT_RETRIEVE_INSTANCE = 8407,
+ MD_ERROR_WIN_DS_CODE_INCONSISTENCY = 8408,
+ MD_ERROR_WIN_DS_DATABASE_ERROR = 8409,
+ MD_ERROR_WIN_DS_GOVERNSID_MISSING = 8410,
+ MD_ERROR_WIN_DS_MISSING_EXPECTED_ATT = 8411,
+ MD_ERROR_WIN_DS_NCNAME_MISSING_CR_REF = 8412,
+ MD_ERROR_WIN_DS_SECURITY_CHECKING_ERROR = 8413,
+ MD_ERROR_WIN_DS_SCHEMA_NOT_LOADED = 8414,
+ MD_ERROR_WIN_DS_SCHEMA_ALLOC_FAILED = 8415,
+ MD_ERROR_WIN_DS_ATT_SCHEMA_REQ_SYNTAX = 8416,
+ MD_ERROR_WIN_DS_GCVERIFY_ERROR = 8417,
+ MD_ERROR_WIN_DS_DRA_SCHEMA_MISMATCH = 8418,
+ MD_ERROR_WIN_DS_CANT_FIND_DSA_OBJ = 8419,
+ MD_ERROR_WIN_DS_CANT_FIND_EXPECTED_NC = 8420,
+ MD_ERROR_WIN_DS_CANT_FIND_NC_IN_CACHE = 8421,
+ MD_ERROR_WIN_DS_CANT_RETRIEVE_CHILD = 8422,
+ MD_ERROR_WIN_DS_SECURITY_ILLEGAL_MODIFY = 8423,
+ MD_ERROR_WIN_DS_CANT_REPLACE_HIDDEN_REC = 8424,
+ MD_ERROR_WIN_DS_BAD_HIERARCHY_FILE = 8425,
+ MD_ERROR_WIN_DS_BUILD_HIERARCHY_TABLE_FAILED = 8426,
+ MD_ERROR_WIN_DS_CONFIG_PARAM_MISSING = 8427,
+ MD_ERROR_WIN_DS_COUNTING_AB_INDICES_FAILED = 8428,
+ MD_ERROR_WIN_DS_HIERARCHY_TABLE_MALLOC_FAILED = 8429,
+ MD_ERROR_WIN_DS_INTERNAL_FAILURE = 8430,
+ MD_ERROR_WIN_DS_UNKNOWN_ERROR = 8431,
+ MD_ERROR_WIN_DS_ROOT_REQUIRES_CLASS_TOP = 8432,
+ MD_ERROR_WIN_DS_REFUSING_FSMO_ROLES = 8433,
+ MD_ERROR_WIN_DS_MISSING_FSMO_SETTINGS = 8434,
+ MD_ERROR_WIN_DS_UNABLE_TO_SURRENDER_ROLES = 8435,
+ MD_ERROR_WIN_DS_DRA_GENERIC = 8436,
+ MD_ERROR_WIN_DS_DRA_INVALID_PARAMETER = 8437,
+ MD_ERROR_WIN_DS_DRA_BUSY = 8438,
+ MD_ERROR_WIN_DS_DRA_BAD_DN = 8439,
+ MD_ERROR_WIN_DS_DRA_BAD_NC = 8440,
+ MD_ERROR_WIN_DS_DRA_DN_EXISTS = 8441,
+ MD_ERROR_WIN_DS_DRA_INTERNAL_ERROR = 8442,
+ MD_ERROR_WIN_DS_DRA_INCONSISTENT_DIT = 8443,
+ MD_ERROR_WIN_DS_DRA_CONNECTION_FAILED = 8444,
+ MD_ERROR_WIN_DS_DRA_BAD_INSTANCE_TYPE = 8445,
+ MD_ERROR_WIN_DS_DRA_OUT_OF_MEM = 8446,
+ MD_ERROR_WIN_DS_DRA_MAIL_PROBLEM = 8447,
+ MD_ERROR_WIN_DS_DRA_REF_ALREADY_EXISTS = 8448,
+ MD_ERROR_WIN_DS_DRA_REF_NOT_FOUND = 8449,
+ MD_ERROR_WIN_DS_DRA_OBJ_IS_REP_SOURCE = 8450,
+ MD_ERROR_WIN_DS_DRA_DB_ERROR = 8451,
+ MD_ERROR_WIN_DS_DRA_NO_REPLICA = 8452,
+ MD_ERROR_WIN_DS_DRA_ACCESS_DENIED = 8453,
+ MD_ERROR_WIN_DS_DRA_NOT_SUPPORTED = 8454,
+ MD_ERROR_WIN_DS_DRA_RPC_CANCELLED = 8455,
+ MD_ERROR_WIN_DS_DRA_SOURCE_DISABLED = 8456,
+ MD_ERROR_WIN_DS_DRA_SINK_DISABLED = 8457,
+ MD_ERROR_WIN_DS_DRA_NAME_COLLISION = 8458,
+ MD_ERROR_WIN_DS_DRA_SOURCE_REINSTALLED = 8459,
+ MD_ERROR_WIN_DS_DRA_MISSING_PARENT = 8460,
+ MD_ERROR_WIN_DS_DRA_PREEMPTED = 8461,
+ MD_ERROR_WIN_DS_DRA_ABANDON_SYNC = 8462,
+ MD_ERROR_WIN_DS_DRA_SHUTDOWN = 8463,
+ MD_ERROR_WIN_DS_DRA_INCOMPATIBLE_PARTIAL_SET = 8464,
+ MD_ERROR_WIN_DS_DRA_SOURCE_IS_PARTIAL_REPLICA = 8465,
+ MD_ERROR_WIN_DS_DRA_EXTN_CONNECTION_FAILED = 8466,
+ MD_ERROR_WIN_DS_INSTALL_SCHEMA_MISMATCH = 8467,
+ MD_ERROR_WIN_DS_DUP_LINK_ID = 8468,
+ MD_ERROR_WIN_DS_NAME_ERROR_RESOLVING = 8469,
+ MD_ERROR_WIN_DS_NAME_ERROR_NOT_FOUND = 8470,
+ MD_ERROR_WIN_DS_NAME_ERROR_NOT_UNIQUE = 8471,
+ MD_ERROR_WIN_DS_NAME_ERROR_NO_MAPPING = 8472,
+ MD_ERROR_WIN_DS_NAME_ERROR_DOMAIN_ONLY = 8473,
+ MD_ERROR_WIN_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING = 8474,
+ MD_ERROR_WIN_DS_CONSTRUCTED_ATT_MOD = 8475,
+ MD_ERROR_WIN_DS_WRONG_OM_OBJ_CLASS = 8476,
+ MD_ERROR_WIN_DS_DRA_REPL_PENDING = 8477,
+ MD_ERROR_WIN_DS_DS_REQUIRED = 8478,
+ MD_ERROR_WIN_DS_INVALID_LDAP_DISPLAY_NAME = 8479,
+ MD_ERROR_WIN_DS_NON_BASE_SEARCH = 8480,
+ MD_ERROR_WIN_DS_CANT_RETRIEVE_ATTS = 8481,
+ MD_ERROR_WIN_DS_BACKLINK_WITHOUT_LINK = 8482,
+ MD_ERROR_WIN_DS_EPOCH_MISMATCH = 8483,
+ MD_ERROR_WIN_DS_SRC_NAME_MISMATCH = 8484,
+ MD_ERROR_WIN_DS_SRC_AND_DST_NC_IDENTICAL = 8485,
+ MD_ERROR_WIN_DS_DST_NC_MISMATCH = 8486,
+ MD_ERROR_WIN_DS_NOT_AUTHORITIVE_FOR_DST_NC = 8487,
+ MD_ERROR_WIN_DS_SRC_GUID_MISMATCH = 8488,
+ MD_ERROR_WIN_DS_CANT_MOVE_DELETED_OBJECT = 8489,
+ MD_ERROR_WIN_DS_PDC_OPERATION_IN_PROGRESS = 8490,
+ MD_ERROR_WIN_DS_CROSS_DOMAIN_CLEANUP_REQD = 8491,
+ MD_ERROR_WIN_DS_ILLEGAL_XDOM_MOVE_OPERATION = 8492,
+ MD_ERROR_WIN_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS = 8493,
+ MD_ERROR_WIN_DS_NC_MUST_HAVE_NC_PARENT = 8494,
+ MD_ERROR_WIN_DS_CR_IMPOSSIBLE_TO_VALIDATE = 8495,
+ MD_ERROR_WIN_DS_DST_DOMAIN_NOT_NATIVE = 8496,
+ MD_ERROR_WIN_DS_MISSING_INFRASTRUCTURE_CONTAINER = 8497,
+ MD_ERROR_WIN_DS_CANT_MOVE_ACCOUNT_GROUP = 8498,
+ MD_ERROR_WIN_DS_CANT_MOVE_RESOURCE_GROUP = 8499,
+ MD_ERROR_WIN_DS_INVALID_SEARCH_FLAG = 8500,
+ MD_ERROR_WIN_DS_NO_TREE_DELETE_ABOVE_NC = 8501,
+ MD_ERROR_WIN_DS_COULDNT_LOCK_TREE_FOR_DELETE = 8502,
+ MD_ERROR_WIN_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE = 8503,
+ MD_ERROR_WIN_DS_SAM_INIT_FAILURE = 8504,
+ MD_ERROR_WIN_DS_SENSITIVE_GROUP_VIOLATION = 8505,
+ MD_ERROR_WIN_DS_CANT_MOD_PRIMARYGROUPID = 8506,
+ MD_ERROR_WIN_DS_ILLEGAL_BASE_SCHEMA_MOD = 8507,
+ MD_ERROR_WIN_DS_NONSAFE_SCHEMA_CHANGE = 8508,
+ MD_ERROR_WIN_DS_SCHEMA_UPDATE_DISALLOWED = 8509,
+ MD_ERROR_WIN_DS_CANT_CREATE_UNDER_SCHEMA = 8510,
+ MD_ERROR_WIN_DS_INSTALL_NO_SRC_SCH_VERSION = 8511,
+ MD_ERROR_WIN_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE = 8512,
+ MD_ERROR_WIN_DS_INVALID_GROUP_TYPE = 8513,
+ MD_ERROR_WIN_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN = 8514,
+ MD_ERROR_WIN_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN = 8515,
+ MD_ERROR_WIN_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER = 8516,
+ MD_ERROR_WIN_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER = 8517,
+ MD_ERROR_WIN_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER = 8518,
+ MD_ERROR_WIN_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER = 8519,
+ MD_ERROR_WIN_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER = 8520,
+ MD_ERROR_WIN_DS_HAVE_PRIMARY_MEMBERS = 8521,
+ MD_ERROR_WIN_DS_STRING_SD_CONVERSION_FAILED = 8522,
+ MD_ERROR_WIN_DS_NAMING_MASTER_GC = 8523,
+ MD_ERROR_WIN_DS_DNS_LOOKUP_FAILURE = 8524,
+ MD_ERROR_WIN_DS_COULDNT_UPDATE_SPNS = 8525,
+ MD_ERROR_WIN_DS_CANT_RETRIEVE_SD = 8526,
+ MD_ERROR_WIN_DS_KEY_NOT_UNIQUE = 8527,
+ MD_ERROR_WIN_DS_WRONG_LINKED_ATT_SYNTAX = 8528,
+ MD_ERROR_WIN_DS_SAM_NEED_BOOTKEY_PASSWORD = 8529,
+ MD_ERROR_WIN_DS_SAM_NEED_BOOTKEY_FLOPPY = 8530,
+ MD_ERROR_WIN_DS_CANT_START = 8531,
+ MD_ERROR_WIN_DS_INIT_FAILURE = 8532,
+ MD_ERROR_WIN_DS_NO_PKT_PRIVACY_ON_CONNECTION = 8533,
+ MD_ERROR_WIN_DS_SOURCE_DOMAIN_IN_FOREST = 8534,
+ MD_ERROR_WIN_DS_DESTINATION_DOMAIN_NOT_IN_FOREST = 8535,
+ MD_ERROR_WIN_DS_DESTINATION_AUDITING_NOT_ENABLED = 8536,
+ MD_ERROR_WIN_DS_CANT_FIND_DC_FOR_SRC_DOMAIN = 8537,
+ MD_ERROR_WIN_DS_SRC_OBJ_NOT_GROUP_OR_USER = 8538,
+ MD_ERROR_WIN_DS_SRC_SID_EXISTS_IN_FOREST = 8539,
+ MD_ERROR_WIN_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH = 8540,
+ MD_ERROR_WIN_SAM_INIT_FAILURE = 8541,
+ MD_ERROR_WIN_DS_DRA_SCHEMA_INFO_SHIP = 8542,
+ MD_ERROR_WIN_DS_DRA_SCHEMA_CONFLICT = 8543,
+ MD_ERROR_WIN_DS_DRA_EARLIER_SCHEMA_CONFLICT = 8544,
+ MD_ERROR_WIN_DS_DRA_OBJ_NC_MISMATCH = 8545,
+ MD_ERROR_WIN_DS_NC_STILL_HAS_DSAS = 8546,
+ MD_ERROR_WIN_DS_GC_REQUIRED = 8547,
+ MD_ERROR_WIN_DS_LOCAL_MEMBER_OF_LOCAL_ONLY = 8548,
+ MD_ERROR_WIN_DS_NO_FPO_IN_UNIVERSAL_GROUPS = 8549,
+ MD_ERROR_WIN_DS_CANT_ADD_TO_GC = 8550,
+ MD_ERROR_WIN_DS_NO_CHECKPOINT_WITH_PDC = 8551,
+ MD_ERROR_WIN_DS_SOURCE_AUDITING_NOT_ENABLED = 8552,
+ MD_ERROR_WIN_DS_CANT_CREATE_IN_NONDOMAIN_NC = 8553,
+ MD_ERROR_WIN_DS_INVALID_NAME_FOR_SPN = 8554,
+ MD_ERROR_WIN_DS_FILTER_USES_CONTRUCTED_ATTRS = 8555,
+ MD_ERROR_WIN_DS_UNICODEPWD_NOT_IN_QUOTES = 8556,
+ MD_ERROR_WIN_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED = 8557,
+ MD_ERROR_WIN_DS_MUST_BE_RUN_ON_DST_DC = 8558,
+ MD_ERROR_WIN_DS_SRC_DC_MUST_BE_SP4_OR_GREATER = 8559,
+ MD_ERROR_WIN_DS_CANT_TREE_DELETE_CRITICAL_OBJ = 8560,
+ MD_ERROR_WIN_DS_INIT_FAILURE_CONSOLE = 8561,
+ MD_ERROR_WIN_DS_SAM_INIT_FAILURE_CONSOLE = 8562,
+ MD_ERROR_WIN_DS_FOREST_VERSION_TOO_HIGH = 8563,
+ MD_ERROR_WIN_DS_DOMAIN_VERSION_TOO_HIGH = 8564,
+ MD_ERROR_WIN_DS_FOREST_VERSION_TOO_LOW = 8565,
+ MD_ERROR_WIN_DS_DOMAIN_VERSION_TOO_LOW = 8566,
+ MD_ERROR_WIN_DS_INCOMPATIBLE_VERSION = 8567,
+ MD_ERROR_WIN_DS_LOW_DSA_VERSION = 8568,
+ MD_ERROR_WIN_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN = 8569,
+ MD_ERROR_WIN_DS_NOT_SUPPORTED_SORT_ORDER = 8570,
+ MD_ERROR_WIN_DS_NAME_NOT_UNIQUE = 8571,
+ MD_ERROR_WIN_DS_MACHINE_ACCOUNT_CREATED_PRENT4 = 8572,
+ MD_ERROR_WIN_DS_OUT_OF_VERSION_STORE = 8573,
+ MD_ERROR_WIN_DS_INCOMPATIBLE_CONTROLS_USED = 8574,
+ MD_ERROR_WIN_DS_NO_REF_DOMAIN = 8575,
+ MD_ERROR_WIN_DS_RESERVED_LINK_ID = 8576,
+ MD_ERROR_WIN_DS_LINK_ID_NOT_AVAILABLE = 8577,
+ MD_ERROR_WIN_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER = 8578,
+ MD_ERROR_WIN_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE = 8579,
+ MD_ERROR_WIN_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC = 8580,
+ MD_ERROR_WIN_DS_MODIFYDN_DISALLOWED_BY_FLAG = 8581,
+ MD_ERROR_WIN_DS_MODIFYDN_WRONG_GRANDPARENT = 8582,
+ MD_ERROR_WIN_DS_NAME_ERROR_TRUST_REFERRAL = 8583,
+ MD_ERROR_WIN_NOT_SUPPORTED_ON_STANDARD_SERVER = 8584,
+ MD_ERROR_WIN_DS_CANT_ACCESS_REMOTE_PART_OF_AD = 8585,
+ MD_ERROR_WIN_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2 = 8586,
+ MD_ERROR_WIN_DS_THREAD_LIMIT_EXCEEDED = 8587,
+ MD_ERROR_WIN_DS_NOT_CLOSEST = 8588,
+ MD_ERROR_WIN_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF = 8589,
+ MD_ERROR_WIN_DS_SINGLE_USER_MODE_FAILED = 8590,
+ MD_ERROR_WIN_DS_NTDSCRIPT_SYNTAX_ERROR = 8591,
+ MD_ERROR_WIN_DS_NTDSCRIPT_PROCESS_ERROR = 8592,
+ MD_ERROR_WIN_DS_DIFFERENT_REPL_EPOCHS = 8593,
+ MD_ERROR_WIN_DS_DRS_EXTENSIONS_CHANGED = 8594,
+ MD_ERROR_WIN_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR = 8595,
+ MD_ERROR_WIN_DS_NO_MSDS_INTID = 8596,
+ MD_ERROR_WIN_DS_DUP_MSDS_INTID = 8597,
+ MD_ERROR_WIN_DS_EXISTS_IN_RDNATTID = 8598,
+ MD_ERROR_WIN_DS_AUTHORIZATION_FAILED = 8599,
+ MD_ERROR_WIN_DS_INVALID_SCRIPT = 8600,
+ MD_ERROR_WIN_DS_REMOTE_CROSSREF_OP_FAILED = 8601,
+ MD_ERROR_WIN_DS_CROSS_REF_BUSY = 8602,
+ MD_ERROR_WIN_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN = 8603,
+ MD_ERROR_WIN_DS_CANT_DEMOTE_WITH_WRITEABLE_NC = 8604,
+ MD_ERROR_WIN_DS_DUPLICATE_ID_FOUND = 8605,
+ MD_ERROR_WIN_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT = 8606,
+ MD_ERROR_WIN_DS_GROUP_CONVERSION_ERROR = 8607,
+ MD_ERROR_WIN_DS_CANT_MOVE_APP_BASIC_GROUP = 8608,
+ MD_ERROR_WIN_DS_CANT_MOVE_APP_QUERY_GROUP = 8609,
+ MD_ERROR_WIN_DS_ROLE_NOT_VERIFIED = 8610,
+ MD_ERROR_WIN_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL = 8611,
+ MD_ERROR_WIN_DS_DOMAIN_RENAME_IN_PROGRESS = 8612,
+ MD_ERROR_WIN_DS_EXISTING_AD_CHILD_NC = 8613,
+ MD_ERROR_WIN_DS_REPL_LIFETIME_EXCEEDED = 8614,
+ MD_ERROR_WIN_DS_DISALLOWED_IN_SYSTEM_CONTAINER = 8615,
+ MD_ERROR_WIN_DS_LDAP_SEND_QUEUE_FULL = 8616,
+ MD_ERROR_WIN_DS_DRA_OUT_SCHEDULE_WINDOW = 8617,
+ MD_ERROR_WIN_DS_POLICY_NOT_KNOWN = 8618,
+ MD_ERROR_WIN_NO_SITE_SETTINGS_OBJECT = 8619,
+ MD_ERROR_WIN_NO_SECRETS = 8620,
+ MD_ERROR_WIN_NO_WRITABLE_DC_FOUND = 8621,
+ MD_ERROR_WIN_DS_NO_SERVER_OBJECT = 8622,
+ MD_ERROR_WIN_DS_NO_NTDSA_OBJECT = 8623,
+ MD_ERROR_WIN_DS_NON_ASQ_SEARCH = 8624,
+ MD_ERROR_WIN_DS_AUDIT_FAILURE = 8625,
+ MD_ERROR_WIN_DS_INVALID_SEARCH_FLAG_SUBTREE = 8626,
+ MD_ERROR_WIN_DS_INVALID_SEARCH_FLAG_TUPLE = 8627,
+ MD_ERROR_WIN_DS_HIERARCHY_TABLE_TOO_DEEP = 8628,
+ MD_ERROR_WIN_DS_DRA_CORRUPT_UTD_VECTOR = 8629,
+ MD_ERROR_WIN_DS_DRA_SECRETS_DENIED = 8630,
+ MD_ERROR_WIN_DS_RESERVED_MAPI_ID = 8631,
+ MD_ERROR_WIN_DS_MAPI_ID_NOT_AVAILABLE = 8632,
+ MD_ERROR_WIN_DS_DRA_MISSING_KRBTGT_SECRET = 8633,
+ MD_ERROR_WIN_DS_DOMAIN_NAME_EXISTS_IN_FOREST = 8634,
+ MD_ERROR_WIN_DS_FLAT_NAME_EXISTS_IN_FOREST = 8635,
+ MD_ERROR_WIN_INVALID_USER_PRINCIPAL_NAME = 8636,
+ MD_ERROR_WIN_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS = 8637,
+ MD_ERROR_WIN_DS_OID_NOT_FOUND = 8638,
+ MD_ERROR_WIN_DS_DRA_RECYCLED_TARGET = 8639,
+ MD_ERROR_WIN_DS_DISALLOWED_NC_REDIRECT = 8640,
+ MD_ERROR_WIN_DS_HIGH_ADLDS_FFL = 8641,
+ MD_ERROR_WIN_DS_HIGH_DSA_VERSION = 8642,
+ MD_ERROR_WIN_DS_LOW_ADLDS_FFL = 8643,
+ MD_ERROR_WIN_DOMAIN_SID_SAME_AS_LOCAL_WORKSTATION = 8644,
+ MD_ERROR_WIN_DS_UNDELETE_SAM_VALIDATION_FAILED = 8645,
+ MD_ERROR_WIN_INCORRECT_ACCOUNT_TYPE = 8646,
+ MD_ERROR_WIN_DS_SPN_VALUE_NOT_UNIQUE_IN_FOREST = 8647,
+ MD_ERROR_WIN_DS_UPN_VALUE_NOT_UNIQUE_IN_FOREST = 8648,
+ MD_ERROR_WIN_DS_MISSING_FOREST_TRUST = 8649,
+ MD_ERROR_WIN_DS_VALUE_KEY_NOT_UNIQUE = 8650,
+ MD_ERROR_WIN_IPSEC_QM_POLICY_EXISTS = 13000,
+ MD_ERROR_WIN_IPSEC_QM_POLICY_NOT_FOUND = 13001,
+ MD_ERROR_WIN_IPSEC_QM_POLICY_IN_USE = 13002,
+ MD_ERROR_WIN_IPSEC_MM_POLICY_EXISTS = 13003,
+ MD_ERROR_WIN_IPSEC_MM_POLICY_NOT_FOUND = 13004,
+ MD_ERROR_WIN_IPSEC_MM_POLICY_IN_USE = 13005,
+ MD_ERROR_WIN_IPSEC_MM_FILTER_EXISTS = 13006,
+ MD_ERROR_WIN_IPSEC_MM_FILTER_NOT_FOUND = 13007,
+ MD_ERROR_WIN_IPSEC_TRANSPORT_FILTER_EXISTS = 13008,
+ MD_ERROR_WIN_IPSEC_TRANSPORT_FILTER_NOT_FOUND = 13009,
+ MD_ERROR_WIN_IPSEC_MM_AUTH_EXISTS = 13010,
+ MD_ERROR_WIN_IPSEC_MM_AUTH_NOT_FOUND = 13011,
+ MD_ERROR_WIN_IPSEC_MM_AUTH_IN_USE = 13012,
+ MD_ERROR_WIN_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND = 13013,
+ MD_ERROR_WIN_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND = 13014,
+ MD_ERROR_WIN_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND = 13015,
+ MD_ERROR_WIN_IPSEC_TUNNEL_FILTER_EXISTS = 13016,
+ MD_ERROR_WIN_IPSEC_TUNNEL_FILTER_NOT_FOUND = 13017,
+ MD_ERROR_WIN_IPSEC_MM_FILTER_PENDING_DELETION = 13018,
+ MD_ERROR_WIN_IPSEC_TRANSPORT_FILTER_PENDING_DELETION = 13019,
+ MD_ERROR_WIN_IPSEC_TUNNEL_FILTER_PENDING_DELETION = 13020,
+ MD_ERROR_WIN_IPSEC_MM_POLICY_PENDING_DELETION = 13021,
+ MD_ERROR_WIN_IPSEC_MM_AUTH_PENDING_DELETION = 13022,
+ MD_ERROR_WIN_IPSEC_QM_POLICY_PENDING_DELETION = 13023,
+ MD_ERROR_WIN_IPSEC_IKE_NEG_STATUS_BEGIN = 13800,
+ MD_ERROR_WIN_IPSEC_IKE_AUTH_FAIL = 13801,
+ MD_ERROR_WIN_IPSEC_IKE_ATTRIB_FAIL = 13802,
+ MD_ERROR_WIN_IPSEC_IKE_NEGOTIATION_PENDING = 13803,
+ MD_ERROR_WIN_IPSEC_IKE_GENERAL_PROCESSING_ERROR = 13804,
+ MD_ERROR_WIN_IPSEC_IKE_TIMED_OUT = 13805,
+ MD_ERROR_WIN_IPSEC_IKE_NO_CERT = 13806,
+ MD_ERROR_WIN_IPSEC_IKE_SA_DELETED = 13807,
+ MD_ERROR_WIN_IPSEC_IKE_SA_REAPED = 13808,
+ MD_ERROR_WIN_IPSEC_IKE_MM_ACQUIRE_DROP = 13809,
+ MD_ERROR_WIN_IPSEC_IKE_QM_ACQUIRE_DROP = 13810,
+ MD_ERROR_WIN_IPSEC_IKE_QUEUE_DROP_MM = 13811,
+ MD_ERROR_WIN_IPSEC_IKE_QUEUE_DROP_NO_MM = 13812,
+ MD_ERROR_WIN_IPSEC_IKE_DROP_NO_RESPONSE = 13813,
+ MD_ERROR_WIN_IPSEC_IKE_MM_DELAY_DROP = 13814,
+ MD_ERROR_WIN_IPSEC_IKE_QM_DELAY_DROP = 13815,
+ MD_ERROR_WIN_IPSEC_IKE_ERROR = 13816,
+ MD_ERROR_WIN_IPSEC_IKE_CRL_FAILED = 13817,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_KEY_USAGE = 13818,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_CERT_TYPE = 13819,
+ MD_ERROR_WIN_IPSEC_IKE_NO_PRIVATE_KEY = 13820,
+ MD_ERROR_WIN_IPSEC_IKE_SIMULTANEOUS_REKEY = 13821,
+ MD_ERROR_WIN_IPSEC_IKE_DH_FAIL = 13822,
+ MD_ERROR_WIN_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED = 13823,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_HEADER = 13824,
+ MD_ERROR_WIN_IPSEC_IKE_NO_POLICY = 13825,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_SIGNATURE = 13826,
+ MD_ERROR_WIN_IPSEC_IKE_KERBEROS_ERROR = 13827,
+ MD_ERROR_WIN_IPSEC_IKE_NO_PUBLIC_KEY = 13828,
+ MD_ERROR_WIN_IPSEC_IKE_PROCESS_ERR = 13829,
+ MD_ERROR_WIN_IPSEC_IKE_PROCESS_ERR_SA = 13830,
+ MD_ERROR_WIN_IPSEC_IKE_PROCESS_ERR_PROP = 13831,
+ MD_ERROR_WIN_IPSEC_IKE_PROCESS_ERR_TRANS = 13832,
+ MD_ERROR_WIN_IPSEC_IKE_PROCESS_ERR_KE = 13833,
+ MD_ERROR_WIN_IPSEC_IKE_PROCESS_ERR_ID = 13834,
+ MD_ERROR_WIN_IPSEC_IKE_PROCESS_ERR_CERT = 13835,
+ MD_ERROR_WIN_IPSEC_IKE_PROCESS_ERR_CERT_REQ = 13836,
+ MD_ERROR_WIN_IPSEC_IKE_PROCESS_ERR_HASH = 13837,
+ MD_ERROR_WIN_IPSEC_IKE_PROCESS_ERR_SIG = 13838,
+ MD_ERROR_WIN_IPSEC_IKE_PROCESS_ERR_NONCE = 13839,
+ MD_ERROR_WIN_IPSEC_IKE_PROCESS_ERR_NOTIFY = 13840,
+ MD_ERROR_WIN_IPSEC_IKE_PROCESS_ERR_DELETE = 13841,
+ MD_ERROR_WIN_IPSEC_IKE_PROCESS_ERR_VENDOR = 13842,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_PAYLOAD = 13843,
+ MD_ERROR_WIN_IPSEC_IKE_LOAD_SOFT_SA = 13844,
+ MD_ERROR_WIN_IPSEC_IKE_SOFT_SA_TORN_DOWN = 13845,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_COOKIE = 13846,
+ MD_ERROR_WIN_IPSEC_IKE_NO_PEER_CERT = 13847,
+ MD_ERROR_WIN_IPSEC_IKE_PEER_CRL_FAILED = 13848,
+ MD_ERROR_WIN_IPSEC_IKE_POLICY_CHANGE = 13849,
+ MD_ERROR_WIN_IPSEC_IKE_NO_MM_POLICY = 13850,
+ MD_ERROR_WIN_IPSEC_IKE_NOTCBPRIV = 13851,
+ MD_ERROR_WIN_IPSEC_IKE_SECLOADFAIL = 13852,
+ MD_ERROR_WIN_IPSEC_IKE_FAILSSPINIT = 13853,
+ MD_ERROR_WIN_IPSEC_IKE_FAILQUERYSSP = 13854,
+ MD_ERROR_WIN_IPSEC_IKE_SRVACQFAIL = 13855,
+ MD_ERROR_WIN_IPSEC_IKE_SRVQUERYCRED = 13856,
+ MD_ERROR_WIN_IPSEC_IKE_GETSPIFAIL = 13857,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_FILTER = 13858,
+ MD_ERROR_WIN_IPSEC_IKE_OUT_OF_MEMORY = 13859,
+ MD_ERROR_WIN_IPSEC_IKE_ADD_UPDATE_KEY_FAILED = 13860,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_POLICY = 13861,
+ MD_ERROR_WIN_IPSEC_IKE_UNKNOWN_DOI = 13862,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_SITUATION = 13863,
+ MD_ERROR_WIN_IPSEC_IKE_DH_FAILURE = 13864,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_GROUP = 13865,
+ MD_ERROR_WIN_IPSEC_IKE_ENCRYPT = 13866,
+ MD_ERROR_WIN_IPSEC_IKE_DECRYPT = 13867,
+ MD_ERROR_WIN_IPSEC_IKE_POLICY_MATCH = 13868,
+ MD_ERROR_WIN_IPSEC_IKE_UNSUPPORTED_ID = 13869,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_HASH = 13870,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_HASH_ALG = 13871,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_HASH_SIZE = 13872,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_ENCRYPT_ALG = 13873,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_AUTH_ALG = 13874,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_SIG = 13875,
+ MD_ERROR_WIN_IPSEC_IKE_LOAD_FAILED = 13876,
+ MD_ERROR_WIN_IPSEC_IKE_RPC_DELETE = 13877,
+ MD_ERROR_WIN_IPSEC_IKE_BENIGN_REINIT = 13878,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY = 13879,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_MAJOR_VERSION = 13880,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_CERT_KEYLEN = 13881,
+ MD_ERROR_WIN_IPSEC_IKE_MM_LIMIT = 13882,
+ MD_ERROR_WIN_IPSEC_IKE_NEGOTIATION_DISABLED = 13883,
+ MD_ERROR_WIN_IPSEC_IKE_QM_LIMIT = 13884,
+ MD_ERROR_WIN_IPSEC_IKE_MM_EXPIRED = 13885,
+ MD_ERROR_WIN_IPSEC_IKE_PEER_MM_ASSUMED_INVALID = 13886,
+ MD_ERROR_WIN_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH = 13887,
+ MD_ERROR_WIN_IPSEC_IKE_UNEXPECTED_MESSAGE_ID = 13888,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_AUTH_PAYLOAD = 13889,
+ MD_ERROR_WIN_IPSEC_IKE_DOS_COOKIE_SENT = 13890,
+ MD_ERROR_WIN_IPSEC_IKE_SHUTTING_DOWN = 13891,
+ MD_ERROR_WIN_IPSEC_IKE_CGA_AUTH_FAILED = 13892,
+ MD_ERROR_WIN_IPSEC_IKE_PROCESS_ERR_NATOA = 13893,
+ MD_ERROR_WIN_IPSEC_IKE_INVALID_MM_FOR_QM = 13894,
+ MD_ERROR_WIN_IPSEC_IKE_QM_EXPIRED = 13895,
+ MD_ERROR_WIN_IPSEC_IKE_TOO_MANY_FILTERS = 13896,
+ MD_ERROR_WIN_IPSEC_IKE_NEG_STATUS_END = 13897,
+ MD_ERROR_WIN_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL = 13898,
+ MD_ERROR_WIN_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE = 13899,
+ MD_ERROR_WIN_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING = 13900,
+ MD_ERROR_WIN_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING = 13901,
+ MD_ERROR_WIN_IPSEC_IKE_COEXISTENCE_SUPPRESS = 13902,
+ MD_ERROR_WIN_IPSEC_IKE_RATELIMIT_DROP = 13903,
+ MD_ERROR_WIN_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE = 13904,
+ MD_ERROR_WIN_IPSEC_IKE_AUTHORIZATION_FAILURE = 13905,
+ MD_ERROR_WIN_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE = 13906,
+ MD_ERROR_WIN_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY = 13907,
+ MD_ERROR_WIN_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE = 13908,
+ MD_ERROR_WIN_IPSEC_IKE_NEG_STATUS_EXTENDED_END = 13909,
+ MD_ERROR_WIN_IPSEC_BAD_SPI = 13910,
+ MD_ERROR_WIN_IPSEC_SA_LIFETIME_EXPIRED = 13911,
+ MD_ERROR_WIN_IPSEC_WRONG_SA = 13912,
+ MD_ERROR_WIN_IPSEC_REPLAY_CHECK_FAILED = 13913,
+ MD_ERROR_WIN_IPSEC_INVALID_PACKET = 13914,
+ MD_ERROR_WIN_IPSEC_INTEGRITY_CHECK_FAILED = 13915,
+ MD_ERROR_WIN_IPSEC_CLEAR_TEXT_DROP = 13916,
+ MD_ERROR_WIN_IPSEC_AUTH_FIREWALL_DROP = 13917,
+ MD_ERROR_WIN_IPSEC_THROTTLE_DROP = 13918,
+ MD_ERROR_WIN_IPSEC_DOSP_BLOCK = 13925,
+ MD_ERROR_WIN_IPSEC_DOSP_RECEIVED_MULTICAST = 13926,
+ MD_ERROR_WIN_IPSEC_DOSP_INVALID_PACKET = 13927,
+ MD_ERROR_WIN_IPSEC_DOSP_STATE_LOOKUP_FAILED = 13928,
+ MD_ERROR_WIN_IPSEC_DOSP_MAX_ENTRIES = 13929,
+ MD_ERROR_WIN_IPSEC_DOSP_KEYMOD_NOT_ALLOWED = 13930,
+ MD_ERROR_WIN_IPSEC_DOSP_NOT_INSTALLED = 13931,
+ MD_ERROR_WIN_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES = 13932,
+ MD_ERROR_WIN_SXS_SECTION_NOT_FOUND = 14000,
+ MD_ERROR_WIN_SXS_CANT_GEN_ACTCTX = 14001,
+ MD_ERROR_WIN_SXS_INVALID_ACTCTXDATA_FORMAT = 14002,
+ MD_ERROR_WIN_SXS_ASSEMBLY_NOT_FOUND = 14003,
+ MD_ERROR_WIN_SXS_MANIFEST_FORMAT_ERROR = 14004,
+ MD_ERROR_WIN_SXS_MANIFEST_PARSE_ERROR = 14005,
+ MD_ERROR_WIN_SXS_ACTIVATION_CONTEXT_DISABLED = 14006,
+ MD_ERROR_WIN_SXS_KEY_NOT_FOUND = 14007,
+ MD_ERROR_WIN_SXS_VERSION_CONFLICT = 14008,
+ MD_ERROR_WIN_SXS_WRONG_SECTION_TYPE = 14009,
+ MD_ERROR_WIN_SXS_THREAD_QUERIES_DISABLED = 14010,
+ MD_ERROR_WIN_SXS_PROCESS_DEFAULT_ALREADY_SET = 14011,
+ MD_ERROR_WIN_SXS_UNKNOWN_ENCODING_GROUP = 14012,
+ MD_ERROR_WIN_SXS_UNKNOWN_ENCODING = 14013,
+ MD_ERROR_WIN_SXS_INVALID_XML_NAMESPACE_URI = 14014,
+ MD_ERROR_WIN_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED = 14015,
+ MD_ERROR_WIN_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED = 14016,
+ MD_ERROR_WIN_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE = 14017,
+ MD_ERROR_WIN_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE = 14018,
+ MD_ERROR_WIN_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE = 14019,
+ MD_ERROR_WIN_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT = 14020,
+ MD_ERROR_WIN_SXS_DUPLICATE_DLL_NAME = 14021,
+ MD_ERROR_WIN_SXS_DUPLICATE_WINDOWCLASS_NAME = 14022,
+ MD_ERROR_WIN_SXS_DUPLICATE_CLSID = 14023,
+ MD_ERROR_WIN_SXS_DUPLICATE_IID = 14024,
+ MD_ERROR_WIN_SXS_DUPLICATE_TLBID = 14025,
+ MD_ERROR_WIN_SXS_DUPLICATE_PROGID = 14026,
+ MD_ERROR_WIN_SXS_DUPLICATE_ASSEMBLY_NAME = 14027,
+ MD_ERROR_WIN_SXS_FILE_HASH_MISMATCH = 14028,
+ MD_ERROR_WIN_SXS_POLICY_PARSE_ERROR = 14029,
+ MD_ERROR_WIN_SXS_XML_E_MISSINGQUOTE = 14030,
+ MD_ERROR_WIN_SXS_XML_E_COMMENTSYNTAX = 14031,
+ MD_ERROR_WIN_SXS_XML_E_BADSTARTNAMECHAR = 14032,
+ MD_ERROR_WIN_SXS_XML_E_BADNAMECHAR = 14033,
+ MD_ERROR_WIN_SXS_XML_E_BADCHARINSTRING = 14034,
+ MD_ERROR_WIN_SXS_XML_E_XMLDECLSYNTAX = 14035,
+ MD_ERROR_WIN_SXS_XML_E_BADCHARDATA = 14036,
+ MD_ERROR_WIN_SXS_XML_E_MISSINGWHITESPACE = 14037,
+ MD_ERROR_WIN_SXS_XML_E_EXPECTINGTAGEND = 14038,
+ MD_ERROR_WIN_SXS_XML_E_MISSINGSEMICOLON = 14039,
+ MD_ERROR_WIN_SXS_XML_E_UNBALANCEDPAREN = 14040,
+ MD_ERROR_WIN_SXS_XML_E_INTERNALERROR = 14041,
+ MD_ERROR_WIN_SXS_XML_E_UNEXPECTED_WHITESPACE = 14042,
+ MD_ERROR_WIN_SXS_XML_E_INCOMPLETE_ENCODING = 14043,
+ MD_ERROR_WIN_SXS_XML_E_MISSING_PAREN = 14044,
+ MD_ERROR_WIN_SXS_XML_E_EXPECTINGCLOSEQUOTE = 14045,
+ MD_ERROR_WIN_SXS_XML_E_MULTIPLE_COLONS = 14046,
+ MD_ERROR_WIN_SXS_XML_E_INVALID_DECIMAL = 14047,
+ MD_ERROR_WIN_SXS_XML_E_INVALID_HEXIDECIMAL = 14048,
+ MD_ERROR_WIN_SXS_XML_E_INVALID_UNICODE = 14049,
+ MD_ERROR_WIN_SXS_XML_E_WHITESPACEORQUESTIONMARK = 14050,
+ MD_ERROR_WIN_SXS_XML_E_UNEXPECTEDENDTAG = 14051,
+ MD_ERROR_WIN_SXS_XML_E_UNCLOSEDTAG = 14052,
+ MD_ERROR_WIN_SXS_XML_E_DUPLICATEATTRIBUTE = 14053,
+ MD_ERROR_WIN_SXS_XML_E_MULTIPLEROOTS = 14054,
+ MD_ERROR_WIN_SXS_XML_E_INVALIDATROOTLEVEL = 14055,
+ MD_ERROR_WIN_SXS_XML_E_BADXMLDECL = 14056,
+ MD_ERROR_WIN_SXS_XML_E_MISSINGROOT = 14057,
+ MD_ERROR_WIN_SXS_XML_E_UNEXPECTEDEOF = 14058,
+ MD_ERROR_WIN_SXS_XML_E_BADPEREFINSUBSET = 14059,
+ MD_ERROR_WIN_SXS_XML_E_UNCLOSEDSTARTTAG = 14060,
+ MD_ERROR_WIN_SXS_XML_E_UNCLOSEDENDTAG = 14061,
+ MD_ERROR_WIN_SXS_XML_E_UNCLOSEDSTRING = 14062,
+ MD_ERROR_WIN_SXS_XML_E_UNCLOSEDCOMMENT = 14063,
+ MD_ERROR_WIN_SXS_XML_E_UNCLOSEDDECL = 14064,
+ MD_ERROR_WIN_SXS_XML_E_UNCLOSEDCDATA = 14065,
+ MD_ERROR_WIN_SXS_XML_E_RESERVEDNAMESPACE = 14066,
+ MD_ERROR_WIN_SXS_XML_E_INVALIDENCODING = 14067,
+ MD_ERROR_WIN_SXS_XML_E_INVALIDSWITCH = 14068,
+ MD_ERROR_WIN_SXS_XML_E_BADXMLCASE = 14069,
+ MD_ERROR_WIN_SXS_XML_E_INVALID_STANDALONE = 14070,
+ MD_ERROR_WIN_SXS_XML_E_UNEXPECTED_STANDALONE = 14071,
+ MD_ERROR_WIN_SXS_XML_E_INVALID_VERSION = 14072,
+ MD_ERROR_WIN_SXS_XML_E_MISSINGEQUALS = 14073,
+ MD_ERROR_WIN_SXS_PROTECTION_RECOVERY_FAILED = 14074,
+ MD_ERROR_WIN_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT = 14075,
+ MD_ERROR_WIN_SXS_PROTECTION_CATALOG_NOT_VALID = 14076,
+ MD_ERROR_WIN_SXS_UNTRANSLATABLE_HRESULT = 14077,
+ MD_ERROR_WIN_SXS_PROTECTION_CATALOG_FILE_MISSING = 14078,
+ MD_ERROR_WIN_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE = 14079,
+ MD_ERROR_WIN_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME = 14080,
+ MD_ERROR_WIN_SXS_ASSEMBLY_MISSING = 14081,
+ MD_ERROR_WIN_SXS_CORRUPT_ACTIVATION_STACK = 14082,
+ MD_ERROR_WIN_SXS_CORRUPTION = 14083,
+ MD_ERROR_WIN_SXS_EARLY_DEACTIVATION = 14084,
+ MD_ERROR_WIN_SXS_INVALID_DEACTIVATION = 14085,
+ MD_ERROR_WIN_SXS_MULTIPLE_DEACTIVATION = 14086,
+ MD_ERROR_WIN_SXS_PROCESS_TERMINATION_REQUESTED = 14087,
+ MD_ERROR_WIN_SXS_RELEASE_ACTIVATION_CONTEXT = 14088,
+ MD_ERROR_WIN_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY = 14089,
+ MD_ERROR_WIN_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE = 14090,
+ MD_ERROR_WIN_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME = 14091,
+ MD_ERROR_WIN_SXS_IDENTITY_DUPLICATE_ATTRIBUTE = 14092,
+ MD_ERROR_WIN_SXS_IDENTITY_PARSE_ERROR = 14093,
+ MD_ERROR_WIN_MALFORMED_SUBSTITUTION_STRING = 14094,
+ MD_ERROR_WIN_SXS_INCORRECT_PUBLIC_KEY_TOKEN = 14095,
+ MD_ERROR_WIN_UNMAPPED_SUBSTITUTION_STRING = 14096,
+ MD_ERROR_WIN_SXS_ASSEMBLY_NOT_LOCKED = 14097,
+ MD_ERROR_WIN_SXS_COMPONENT_STORE_CORRUPT = 14098,
+ MD_ERROR_WIN_ADVANCED_INSTALLER_FAILED = 14099,
+ MD_ERROR_WIN_XML_ENCODING_MISMATCH = 14100,
+ MD_ERROR_WIN_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT = 14101,
+ MD_ERROR_WIN_SXS_IDENTITIES_DIFFERENT = 14102,
+ MD_ERROR_WIN_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT = 14103,
+ MD_ERROR_WIN_SXS_FILE_NOT_PART_OF_ASSEMBLY = 14104,
+ MD_ERROR_WIN_SXS_MANIFEST_TOO_BIG = 14105,
+ MD_ERROR_WIN_SXS_SETTING_NOT_REGISTERED = 14106,
+ MD_ERROR_WIN_SXS_TRANSACTION_CLOSURE_INCOMPLETE = 14107,
+ MD_ERROR_WIN_SMI_PRIMITIVE_INSTALLER_FAILED = 14108,
+ MD_ERROR_WIN_GENERIC_COMMAND_FAILED = 14109,
+ MD_ERROR_WIN_SXS_FILE_HASH_MISSING = 14110,
+ MD_ERROR_WIN_SXS_DUPLICATE_ACTIVATABLE_CLASS = 14111,
+ MD_ERROR_WIN_EVT_INVALID_CHANNEL_PATH = 15000,
+ MD_ERROR_WIN_EVT_INVALID_QUERY = 15001,
+ MD_ERROR_WIN_EVT_PUBLISHER_METADATA_NOT_FOUND = 15002,
+ MD_ERROR_WIN_EVT_EVENT_TEMPLATE_NOT_FOUND = 15003,
+ MD_ERROR_WIN_EVT_INVALID_PUBLISHER_NAME = 15004,
+ MD_ERROR_WIN_EVT_INVALID_EVENT_DATA = 15005,
+ MD_ERROR_WIN_EVT_CHANNEL_NOT_FOUND = 15007,
+ MD_ERROR_WIN_EVT_MALFORMED_XML_TEXT = 15008,
+ MD_ERROR_WIN_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL = 15009,
+ MD_ERROR_WIN_EVT_CONFIGURATION_ERROR = 15010,
+ MD_ERROR_WIN_EVT_QUERY_RESULT_STALE = 15011,
+ MD_ERROR_WIN_EVT_QUERY_RESULT_INVALID_POSITION = 15012,
+ MD_ERROR_WIN_EVT_NON_VALIDATING_MSXML = 15013,
+ MD_ERROR_WIN_EVT_FILTER_ALREADYSCOPED = 15014,
+ MD_ERROR_WIN_EVT_FILTER_NOTELTSET = 15015,
+ MD_ERROR_WIN_EVT_FILTER_INVARG = 15016,
+ MD_ERROR_WIN_EVT_FILTER_INVTEST = 15017,
+ MD_ERROR_WIN_EVT_FILTER_INVTYPE = 15018,
+ MD_ERROR_WIN_EVT_FILTER_PARSEERR = 15019,
+ MD_ERROR_WIN_EVT_FILTER_UNSUPPORTEDOP = 15020,
+ MD_ERROR_WIN_EVT_FILTER_UNEXPECTEDTOKEN = 15021,
+ MD_ERROR_WIN_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL = 15022,
+ MD_ERROR_WIN_EVT_INVALID_CHANNEL_PROPERTY_VALUE = 15023,
+ MD_ERROR_WIN_EVT_INVALID_PUBLISHER_PROPERTY_VALUE = 15024,
+ MD_ERROR_WIN_EVT_CHANNEL_CANNOT_ACTIVATE = 15025,
+ MD_ERROR_WIN_EVT_FILTER_TOO_COMPLEX = 15026,
+ MD_ERROR_WIN_EVT_MESSAGE_NOT_FOUND = 15027,
+ MD_ERROR_WIN_EVT_MESSAGE_ID_NOT_FOUND = 15028,
+ MD_ERROR_WIN_EVT_UNRESOLVED_VALUE_INSERT = 15029,
+ MD_ERROR_WIN_EVT_UNRESOLVED_PARAMETER_INSERT = 15030,
+ MD_ERROR_WIN_EVT_MAX_INSERTS_REACHED = 15031,
+ MD_ERROR_WIN_EVT_EVENT_DEFINITION_NOT_FOUND = 15032,
+ MD_ERROR_WIN_EVT_MESSAGE_LOCALE_NOT_FOUND = 15033,
+ MD_ERROR_WIN_EVT_VERSION_TOO_OLD = 15034,
+ MD_ERROR_WIN_EVT_VERSION_TOO_NEW = 15035,
+ MD_ERROR_WIN_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY = 15036,
+ MD_ERROR_WIN_EVT_PUBLISHER_DISABLED = 15037,
+ MD_ERROR_WIN_EVT_FILTER_OUT_OF_RANGE = 15038,
+ MD_ERROR_WIN_EC_SUBSCRIPTION_CANNOT_ACTIVATE = 15080,
+ MD_ERROR_WIN_EC_LOG_DISABLED = 15081,
+ MD_ERROR_WIN_EC_CIRCULAR_FORWARDING = 15082,
+ MD_ERROR_WIN_EC_CREDSTORE_FULL = 15083,
+ MD_ERROR_WIN_EC_CRED_NOT_FOUND = 15084,
+ MD_ERROR_WIN_EC_NO_ACTIVE_CHANNEL = 15085,
+ MD_ERROR_WIN_MUI_FILE_NOT_FOUND = 15100,
+ MD_ERROR_WIN_MUI_INVALID_FILE = 15101,
+ MD_ERROR_WIN_MUI_INVALID_RC_CONFIG = 15102,
+ MD_ERROR_WIN_MUI_INVALID_LOCALE_NAME = 15103,
+ MD_ERROR_WIN_MUI_INVALID_ULTIMATEFALLBACK_NAME = 15104,
+ MD_ERROR_WIN_MUI_FILE_NOT_LOADED = 15105,
+ MD_ERROR_WIN_RESOURCE_ENUM_USER_STOP = 15106,
+ MD_ERROR_WIN_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED = 15107,
+ MD_ERROR_WIN_MUI_INTLSETTINGS_INVALID_LOCALE_NAME = 15108,
+ MD_ERROR_WIN_MRM_RUNTIME_NO_DEFAULT_OR_NEUTRAL_RESOURCE = 15110,
+ MD_ERROR_WIN_MRM_INVALID_PRICONFIG = 15111,
+ MD_ERROR_WIN_MRM_INVALID_FILE_TYPE = 15112,
+ MD_ERROR_WIN_MRM_UNKNOWN_QUALIFIER = 15113,
+ MD_ERROR_WIN_MRM_INVALID_QUALIFIER_VALUE = 15114,
+ MD_ERROR_WIN_MRM_NO_CANDIDATE = 15115,
+ MD_ERROR_WIN_MRM_NO_MATCH_OR_DEFAULT_CANDIDATE = 15116,
+ MD_ERROR_WIN_MRM_RESOURCE_TYPE_MISMATCH = 15117,
+ MD_ERROR_WIN_MRM_DUPLICATE_MAP_NAME = 15118,
+ MD_ERROR_WIN_MRM_DUPLICATE_ENTRY = 15119,
+ MD_ERROR_WIN_MRM_INVALID_RESOURCE_IDENTIFIER = 15120,
+ MD_ERROR_WIN_MRM_FILEPATH_TOO_LONG = 15121,
+ MD_ERROR_WIN_MRM_UNSUPPORTED_DIRECTORY_TYPE = 15122,
+ MD_ERROR_WIN_MRM_INVALID_PRI_FILE = 15126,
+ MD_ERROR_WIN_MRM_NAMED_RESOURCE_NOT_FOUND = 15127,
+ MD_ERROR_WIN_MRM_MAP_NOT_FOUND = 15135,
+ MD_ERROR_WIN_MRM_UNSUPPORTED_PROFILE_TYPE = 15136,
+ MD_ERROR_WIN_MRM_INVALID_QUALIFIER_OPERATOR = 15137,
+ MD_ERROR_WIN_MRM_INDETERMINATE_QUALIFIER_VALUE = 15138,
+ MD_ERROR_WIN_MRM_AUTOMERGE_ENABLED = 15139,
+ MD_ERROR_WIN_MRM_TOO_MANY_RESOURCES = 15140,
+ MD_ERROR_WIN_MRM_UNSUPPORTED_FILE_TYPE_FOR_MERGE = 15141,
+ MD_ERROR_WIN_MRM_UNSUPPORTED_FILE_TYPE_FOR_LOAD_UNLOAD_PRI_FILE = 15142,
+ MD_ERROR_WIN_MRM_NO_CURRENT_VIEW_ON_THREAD = 15143,
+ MD_ERROR_WIN_DIFFERENT_PROFILE_RESOURCE_MANAGER_EXIST = 15144,
+ MD_ERROR_WIN_OPERATION_NOT_ALLOWED_FROM_SYSTEM_COMPONENT = 15145,
+ MD_ERROR_WIN_MRM_DIRECT_REF_TO_NON_DEFAULT_RESOURCE = 15146,
+ MD_ERROR_WIN_MRM_GENERATION_COUNT_MISMATCH = 15147,
+ MD_ERROR_WIN_PRI_MERGE_VERSION_MISMATCH = 15148,
+ MD_ERROR_WIN_PRI_MERGE_MISSING_SCHEMA = 15149,
+ MD_ERROR_WIN_PRI_MERGE_LOAD_FILE_FAILED = 15150,
+ MD_ERROR_WIN_PRI_MERGE_ADD_FILE_FAILED = 15151,
+ MD_ERROR_WIN_PRI_MERGE_WRITE_FILE_FAILED = 15152,
+ MD_ERROR_WIN_PRI_MERGE_MULTIPLE_PACKAGE_FAMILIES_NOT_ALLOWED = 15153,
+ MD_ERROR_WIN_PRI_MERGE_MULTIPLE_MAIN_PACKAGES_NOT_ALLOWED = 15154,
+ MD_ERROR_WIN_PRI_MERGE_BUNDLE_PACKAGES_NOT_ALLOWED = 15155,
+ MD_ERROR_WIN_PRI_MERGE_MAIN_PACKAGE_REQUIRED = 15156,
+ MD_ERROR_WIN_PRI_MERGE_RESOURCE_PACKAGE_REQUIRED = 15157,
+ MD_ERROR_WIN_PRI_MERGE_INVALID_FILE_NAME = 15158,
+ MD_ERROR_WIN_MRM_PACKAGE_NOT_FOUND = 15159,
+ MD_ERROR_WIN_MRM_MISSING_DEFAULT_LANGUAGE = 15160,
+ MD_ERROR_WIN_MCA_INVALID_CAPABILITIES_STRING = 15200,
+ MD_ERROR_WIN_MCA_INVALID_VCP_VERSION = 15201,
+ MD_ERROR_WIN_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION = 15202,
+ MD_ERROR_WIN_MCA_MCCS_VERSION_MISMATCH = 15203,
+ MD_ERROR_WIN_MCA_UNSUPPORTED_MCCS_VERSION = 15204,
+ MD_ERROR_WIN_MCA_INTERNAL_ERROR = 15205,
+ MD_ERROR_WIN_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED = 15206,
+ MD_ERROR_WIN_MCA_UNSUPPORTED_COLOR_TEMPERATURE = 15207,
+ MD_ERROR_WIN_AMBIGUOUS_SYSTEM_DEVICE = 15250,
+ MD_ERROR_WIN_SYSTEM_DEVICE_NOT_FOUND = 15299,
+ MD_ERROR_WIN_HASH_NOT_SUPPORTED = 15300,
+ MD_ERROR_WIN_HASH_NOT_PRESENT = 15301,
+ MD_ERROR_WIN_SECONDARY_IC_PROVIDER_NOT_REGISTERED = 15321,
+ MD_ERROR_WIN_GPIO_CLIENT_INFORMATION_INVALID = 15322,
+ MD_ERROR_WIN_GPIO_VERSION_NOT_SUPPORTED = 15323,
+ MD_ERROR_WIN_GPIO_INVALID_REGISTRATION_PACKET = 15324,
+ MD_ERROR_WIN_GPIO_OPERATION_DENIED = 15325,
+ MD_ERROR_WIN_GPIO_INCOMPATIBLE_CONNECT_MODE = 15326,
+ MD_ERROR_WIN_GPIO_INTERRUPT_ALREADY_UNMASKED = 15327,
+ MD_ERROR_WIN_CANNOT_SWITCH_RUNLEVEL = 15400,
+ MD_ERROR_WIN_INVALID_RUNLEVEL_SETTING = 15401,
+ MD_ERROR_WIN_RUNLEVEL_SWITCH_TIMEOUT = 15402,
+ MD_ERROR_WIN_RUNLEVEL_SWITCH_AGENT_TIMEOUT = 15403,
+ MD_ERROR_WIN_RUNLEVEL_SWITCH_IN_PROGRESS = 15404,
+ MD_ERROR_WIN_SERVICES_FAILED_AUTOSTART = 15405,
+ MD_ERROR_WIN_COM_TASK_STOP_PENDING = 15501,
+ MD_ERROR_WIN_INSTALL_OPEN_PACKAGE_FAILED = 15600,
+ MD_ERROR_WIN_INSTALL_PACKAGE_NOT_FOUND = 15601,
+ MD_ERROR_WIN_INSTALL_INVALID_PACKAGE = 15602,
+ MD_ERROR_WIN_INSTALL_RESOLVE_DEPENDENCY_FAILED = 15603,
+ MD_ERROR_WIN_INSTALL_OUT_OF_DISK_SPACE = 15604,
+ MD_ERROR_WIN_INSTALL_NETWORK_FAILURE = 15605,
+ MD_ERROR_WIN_INSTALL_REGISTRATION_FAILURE = 15606,
+ MD_ERROR_WIN_INSTALL_DEREGISTRATION_FAILURE = 15607,
+ MD_ERROR_WIN_INSTALL_CANCEL = 15608,
+ MD_ERROR_WIN_INSTALL_FAILED = 15609,
+ MD_ERROR_WIN_REMOVE_FAILED = 15610,
+ MD_ERROR_WIN_PACKAGE_ALREADY_EXISTS = 15611,
+ MD_ERROR_WIN_NEEDS_REMEDIATION = 15612,
+ MD_ERROR_WIN_INSTALL_PREREQUISITE_FAILED = 15613,
+ MD_ERROR_WIN_PACKAGE_REPOSITORY_CORRUPTED = 15614,
+ MD_ERROR_WIN_INSTALL_POLICY_FAILURE = 15615,
+ MD_ERROR_WIN_PACKAGE_UPDATING = 15616,
+ MD_ERROR_WIN_DEPLOYMENT_BLOCKED_BY_POLICY = 15617,
+ MD_ERROR_WIN_PACKAGES_IN_USE = 15618,
+ MD_ERROR_WIN_RECOVERY_FILE_CORRUPT = 15619,
+ MD_ERROR_WIN_INVALID_STAGED_SIGNATURE = 15620,
+ MD_ERROR_WIN_DELETING_EXISTING_APPLICATIONDATA_STORE_FAILED = 15621,
+ MD_ERROR_WIN_INSTALL_PACKAGE_DOWNGRADE = 15622,
+ MD_ERROR_WIN_SYSTEM_NEEDS_REMEDIATION = 15623,
+ MD_ERROR_WIN_APPX_INTEGRITY_FAILURE_CLR_NGEN = 15624,
+ MD_ERROR_WIN_RESILIENCY_FILE_CORRUPT = 15625,
+ MD_ERROR_WIN_INSTALL_FIREWALL_SERVICE_NOT_RUNNING = 15626,
+ MD_ERROR_WIN_PACKAGE_MOVE_FAILED = 15627,
+ MD_ERROR_WIN_INSTALL_VOLUME_NOT_EMPTY = 15628,
+ MD_ERROR_WIN_INSTALL_VOLUME_OFFLINE = 15629,
+ MD_ERROR_WIN_INSTALL_VOLUME_CORRUPT = 15630,
+ MD_ERROR_WIN_NEEDS_REGISTRATION = 15631,
+ MD_ERROR_WIN_INSTALL_WRONG_PROCESSOR_ARCHITECTURE = 15632,
+ MD_ERROR_WIN_DEV_SIDELOAD_LIMIT_EXCEEDED = 15633,
+ MD_ERROR_WIN_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE = 15634,
+ MD_ERROR_WIN_PACKAGE_NOT_SUPPORTED_ON_FILESYSTEM = 15635,
+ MD_ERROR_WIN_PACKAGE_MOVE_BLOCKED_BY_STREAMING = 15636,
+ MD_ERROR_WIN_INSTALL_OPTIONAL_PACKAGE_APPLICATIONID_NOT_UNIQUE = 15637,
+ MD_ERROR_WIN_PACKAGE_STAGING_ONHOLD = 15638,
+ MD_ERROR_WIN_INSTALL_INVALID_RELATED_SET_UPDATE = 15639,
+ MD_ERROR_WIN_INSTALL_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY = 15640,
+ MD_ERROR_WIN_DEPLOYMENT_BLOCKED_BY_USER_LOG_OFF = 15641,
+ MD_ERROR_WIN_PROVISION_OPTIONAL_PACKAGE_REQUIRES_MAIN_PACKAGE_PROVISIONED = 15642,
+ MD_ERROR_WIN_PACKAGES_REPUTATION_CHECK_FAILED = 15643,
+ MD_ERROR_WIN_PACKAGES_REPUTATION_CHECK_TIMEDOUT = 15644,
+ MD_ERROR_WIN_DEPLOYMENT_OPTION_NOT_SUPPORTED = 15645,
+ MD_ERROR_WIN_APPINSTALLER_ACTIVATION_BLOCKED = 15646,
+ MD_ERROR_WIN_REGISTRATION_FROM_REMOTE_DRIVE_NOT_SUPPORTED = 15647,
+ MD_ERROR_WIN_APPX_RAW_DATA_WRITE_FAILED = 15648,
+ MD_ERROR_WIN_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_PACKAGE = 15649,
+ MD_ERROR_WIN_DEPLOYMENT_BLOCKED_BY_VOLUME_POLICY_MACHINE = 15650,
+ MD_ERROR_WIN_DEPLOYMENT_BLOCKED_BY_PROFILE_POLICY = 15651,
+ MD_ERROR_WIN_DEPLOYMENT_FAILED_CONFLICTING_MUTABLE_PACKAGE_DIRECTORY = 15652,
+ MD_ERROR_WIN_SINGLETON_RESOURCE_INSTALLED_IN_ACTIVE_USER = 15653,
+ MD_ERROR_WIN_DIFFERENT_VERSION_OF_PACKAGED_SERVICE_INSTALLED = 15654,
+ MD_ERROR_WIN_SERVICE_EXISTS_AS_NON_PACKAGED_SERVICE = 15655,
+ MD_ERROR_WIN_PACKAGED_SERVICE_REQUIRES_ADMIN_PRIVILEGES = 15656,
+ MD_ERROR_WIN_REDIRECTION_TO_DEFAULT_ACCOUNT_NOT_ALLOWED = 15657,
+ MD_ERROR_WIN_PACKAGE_LACKS_CAPABILITY_TO_DEPLOY_ON_HOST = 15658,
+ MD_ERROR_WIN_UNSIGNED_PACKAGE_INVALID_CONTENT = 15659,
+ MD_ERROR_WIN_UNSIGNED_PACKAGE_INVALID_PUBLISHER_NAMESPACE = 15660,
+ MD_ERROR_WIN_SIGNED_PACKAGE_INVALID_PUBLISHER_NAMESPACE = 15661,
+ MD_ERROR_WIN_PACKAGE_EXTERNAL_LOCATION_NOT_ALLOWED = 15662,
+ MD_ERROR_WIN_INSTALL_FULLTRUST_HOSTRUNTIME_REQUIRES_MAIN_PACKAGE_FULLTRUST_CAPABILITY = 15663,
+ MD_ERROR_WIN_STATE_LOAD_STORE_FAILED = 15800,
+ MD_ERROR_WIN_STATE_GET_VERSION_FAILED = 15801,
+ MD_ERROR_WIN_STATE_SET_VERSION_FAILED = 15802,
+ MD_ERROR_WIN_STATE_STRUCTURED_RESET_FAILED = 15803,
+ MD_ERROR_WIN_STATE_OPEN_CONTAINER_FAILED = 15804,
+ MD_ERROR_WIN_STATE_CREATE_CONTAINER_FAILED = 15805,
+ MD_ERROR_WIN_STATE_DELETE_CONTAINER_FAILED = 15806,
+ MD_ERROR_WIN_STATE_READ_SETTING_FAILED = 15807,
+ MD_ERROR_WIN_STATE_WRITE_SETTING_FAILED = 15808,
+ MD_ERROR_WIN_STATE_DELETE_SETTING_FAILED = 15809,
+ MD_ERROR_WIN_STATE_QUERY_SETTING_FAILED = 15810,
+ MD_ERROR_WIN_STATE_READ_COMPOSITE_SETTING_FAILED = 15811,
+ MD_ERROR_WIN_STATE_WRITE_COMPOSITE_SETTING_FAILED = 15812,
+ MD_ERROR_WIN_STATE_ENUMERATE_CONTAINER_FAILED = 15813,
+ MD_ERROR_WIN_STATE_ENUMERATE_SETTINGS_FAILED = 15814,
+ MD_ERROR_WIN_STATE_COMPOSITE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED = 15815,
+ MD_ERROR_WIN_STATE_SETTING_VALUE_SIZE_LIMIT_EXCEEDED = 15816,
+ MD_ERROR_WIN_STATE_SETTING_NAME_SIZE_LIMIT_EXCEEDED = 15817,
+ MD_ERROR_WIN_STATE_CONTAINER_NAME_SIZE_LIMIT_EXCEEDED = 15818,
+ MD_ERROR_WIN_API_UNAVAILABLE = 15841,
+} MDErrorWin;
+
+#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_EXCEPTION_WIN32_H__ */
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_format.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_format.h
new file mode 100644
index 0000000000..4155a202dd
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_format.h
@@ -0,0 +1,1178 @@
+/* Copyright (c) 2006, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ * * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+/* minidump_format.h: A cross-platform reimplementation of minidump-related
+ * portions of DbgHelp.h from the Windows Platform SDK.
+ *
+ * (This is C99 source, please don't corrupt it with C++.)
+ *
+ * Structures that are defined by Microsoft to contain a zero-length array
+ * are instead defined here to contain an array with one element, as
+ * zero-length arrays are forbidden by standard C and C++. In these cases,
+ * *_minsize constants are provided to be used in place of sizeof. For a
+ * cleaner interface to these sizes when using C++, see minidump_size.h.
+ *
+ * These structures are also sufficient to populate minidump files.
+ *
+ * These definitions may be extended to support handling minidump files
+ * for other CPUs and other operating systems.
+ *
+ * Because precise data type sizes are crucial for this implementation to
+ * function properly and portably in terms of interoperability with minidumps
+ * produced by DbgHelp on Windows, a set of primitive types with known sizes
+ * are used as the basis of each structure defined by this file. DbgHelp
+ * on Windows is assumed to be the reference implementation; this file
+ * seeks to provide a cross-platform compatible implementation. To avoid
+ * collisions with the types and values defined and used by DbgHelp in the
+ * event that this implementation is used on Windows, each type and value
+ * defined here is given a new name, beginning with "MD". Names of the
+ * equivalent types and values in the Windows Platform SDK are given in
+ * comments.
+ *
+ * Author: Mark Mentovai */
+
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_FORMAT_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_FORMAT_H__
+
+#include <stddef.h>
+
+#include "google_breakpad/common/breakpad_types.h"
+
+
+#if defined(_MSC_VER)
+/* Disable "zero-sized array in struct/union" warnings when compiling in
+ * MSVC. DbgHelp.h does this too. */
+#pragma warning(push)
+#pragma warning(disable:4200)
+#endif /* _MSC_VER */
+
+
+/*
+ * guiddef.h
+ */
+
+typedef struct {
+ uint32_t data1;
+ uint16_t data2;
+ uint16_t data3;
+ uint8_t data4[8];
+} MDGUID; /* GUID */
+
+
+/*
+ * WinNT.h
+ */
+
+/* Non-x86 CPU identifiers found in the high 24 bits of
+ * (MDRawContext*).context_flags. These aren't used by Breakpad, but are
+ * defined here for reference, to avoid assigning values that conflict
+ * (although some values already conflict). */
+#define MD_CONTEXT_IA64 0x00080000 /* CONTEXT_IA64 */
+/* Additional values from winnt.h in the Windows CE 5.0 SDK: */
+#define MD_CONTEXT_SHX 0x000000c0 /* CONTEXT_SH4 (Super-H, includes SH3) */
+#define MD_CONTEXT_ALPHA 0x00020000 /* CONTEXT_ALPHA */
+
+/* As of Windows 7 SP1, the number of flag bits has increased to
+ * include 0x40 (CONTEXT_XSTATE):
+ * http://msdn.microsoft.com/en-us/library/hh134238%28v=vs.85%29.aspx */
+#define MD_CONTEXT_CPU_MASK 0xffffff00
+
+
+/* This is a base type for MDRawContextX86 and MDRawContextPPC. This
+ * structure should never be allocated directly. The actual structure type
+ * can be determined by examining the context_flags field. */
+typedef struct {
+ uint32_t context_flags;
+} MDRawContextBase;
+
+#include "minidump_cpu_amd64.h"
+#include "minidump_cpu_arm.h"
+#include "minidump_cpu_arm64.h"
+#include "minidump_cpu_mips.h"
+#include "minidump_cpu_ppc.h"
+#include "minidump_cpu_ppc64.h"
+#include "minidump_cpu_sparc.h"
+#include "minidump_cpu_x86.h"
+
+/*
+ * WinVer.h
+ */
+
+
+typedef struct {
+ uint32_t signature;
+ uint32_t struct_version;
+ uint32_t file_version_hi;
+ uint32_t file_version_lo;
+ uint32_t product_version_hi;
+ uint32_t product_version_lo;
+ uint32_t file_flags_mask; /* Identifies valid bits in fileFlags */
+ uint32_t file_flags;
+ uint32_t file_os;
+ uint32_t file_type;
+ uint32_t file_subtype;
+ uint32_t file_date_hi;
+ uint32_t file_date_lo;
+} MDVSFixedFileInfo; /* VS_FIXEDFILEINFO */
+
+/* For (MDVSFixedFileInfo).signature */
+#define MD_VSFIXEDFILEINFO_SIGNATURE 0xfeef04bd
+ /* VS_FFI_SIGNATURE */
+
+/* For (MDVSFixedFileInfo).version */
+#define MD_VSFIXEDFILEINFO_VERSION 0x00010000
+ /* VS_FFI_STRUCVERSION */
+
+/* For (MDVSFixedFileInfo).file_flags_mask and
+ * (MDVSFixedFileInfo).file_flags */
+#define MD_VSFIXEDFILEINFO_FILE_FLAGS_DEBUG 0x00000001
+ /* VS_FF_DEBUG */
+#define MD_VSFIXEDFILEINFO_FILE_FLAGS_PRERELEASE 0x00000002
+ /* VS_FF_PRERELEASE */
+#define MD_VSFIXEDFILEINFO_FILE_FLAGS_PATCHED 0x00000004
+ /* VS_FF_PATCHED */
+#define MD_VSFIXEDFILEINFO_FILE_FLAGS_PRIVATEBUILD 0x00000008
+ /* VS_FF_PRIVATEBUILD */
+#define MD_VSFIXEDFILEINFO_FILE_FLAGS_INFOINFERRED 0x00000010
+ /* VS_FF_INFOINFERRED */
+#define MD_VSFIXEDFILEINFO_FILE_FLAGS_SPECIALBUILD 0x00000020
+ /* VS_FF_SPECIALBUILD */
+
+/* For (MDVSFixedFileInfo).file_os: high 16 bits */
+#define MD_VSFIXEDFILEINFO_FILE_OS_UNKNOWN 0 /* VOS_UNKNOWN */
+#define MD_VSFIXEDFILEINFO_FILE_OS_DOS (1 << 16) /* VOS_DOS */
+#define MD_VSFIXEDFILEINFO_FILE_OS_OS216 (2 << 16) /* VOS_OS216 */
+#define MD_VSFIXEDFILEINFO_FILE_OS_OS232 (3 << 16) /* VOS_OS232 */
+#define MD_VSFIXEDFILEINFO_FILE_OS_NT (4 << 16) /* VOS_NT */
+#define MD_VSFIXEDFILEINFO_FILE_OS_WINCE (5 << 16) /* VOS_WINCE */
+/* Low 16 bits */
+#define MD_VSFIXEDFILEINFO_FILE_OS__BASE 0 /* VOS__BASE */
+#define MD_VSFIXEDFILEINFO_FILE_OS__WINDOWS16 1 /* VOS__WINDOWS16 */
+#define MD_VSFIXEDFILEINFO_FILE_OS__PM16 2 /* VOS__PM16 */
+#define MD_VSFIXEDFILEINFO_FILE_OS__PM32 3 /* VOS__PM32 */
+#define MD_VSFIXEDFILEINFO_FILE_OS__WINDOWS32 4 /* VOS__WINDOWS32 */
+
+/* For (MDVSFixedFileInfo).file_type */
+#define MD_VSFIXEDFILEINFO_FILE_TYPE_UNKNOWN 0 /* VFT_UNKNOWN */
+#define MD_VSFIXEDFILEINFO_FILE_TYPE_APP 1 /* VFT_APP */
+#define MD_VSFIXEDFILEINFO_FILE_TYPE_DLL 2 /* VFT_DLL */
+#define MD_VSFIXEDFILEINFO_FILE_TYPE_DRV 3 /* VFT_DLL */
+#define MD_VSFIXEDFILEINFO_FILE_TYPE_FONT 4 /* VFT_FONT */
+#define MD_VSFIXEDFILEINFO_FILE_TYPE_VXD 5 /* VFT_VXD */
+#define MD_VSFIXEDFILEINFO_FILE_TYPE_STATIC_LIB 7 /* VFT_STATIC_LIB */
+
+/* For (MDVSFixedFileInfo).file_subtype */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_UNKNOWN 0
+ /* VFT2_UNKNOWN */
+/* with file_type = MD_VSFIXEDFILEINFO_FILETYPE_DRV */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_PRINTER 1
+ /* VFT2_DRV_PRINTER */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_KEYBOARD 2
+ /* VFT2_DRV_KEYBOARD */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_LANGUAGE 3
+ /* VFT2_DRV_LANGUAGE */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_DISPLAY 4
+ /* VFT2_DRV_DISPLAY */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_MOUSE 5
+ /* VFT2_DRV_MOUSE */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_NETWORK 6
+ /* VFT2_DRV_NETWORK */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_SYSTEM 7
+ /* VFT2_DRV_SYSTEM */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_INSTALLABLE 8
+ /* VFT2_DRV_INSTALLABLE */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_SOUND 9
+ /* VFT2_DRV_SOUND */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_COMM 10
+ /* VFT2_DRV_COMM */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_INPUTMETHOD 11
+ /* VFT2_DRV_INPUTMETHOD */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_DRV_VERSIONED_PRINTER 12
+ /* VFT2_DRV_VERSIONED_PRINTER */
+/* with file_type = MD_VSFIXEDFILEINFO_FILETYPE_FONT */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_FONT_RASTER 1
+ /* VFT2_FONT_RASTER */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_FONT_VECTOR 2
+ /* VFT2_FONT_VECTOR */
+#define MD_VSFIXEDFILEINFO_FILE_SUBTYPE_FONT_TRUETYPE 3
+ /* VFT2_FONT_TRUETYPE */
+
+
+/*
+ * DbgHelp.h
+ */
+
+
+/* An MDRVA is an offset into the minidump file. The beginning of the
+ * MDRawHeader is at offset 0. */
+typedef uint32_t MDRVA; /* RVA */
+typedef uint64_t MDRVA64; /* RVA64 */
+
+typedef struct {
+ uint32_t data_size;
+ MDRVA rva;
+} MDLocationDescriptor; /* MINIDUMP_LOCATION_DESCRIPTOR */
+
+
+typedef struct {
+ /* The base address of the memory range on the host that produced the
+ * minidump. */
+ uint64_t start_of_memory_range;
+
+ MDLocationDescriptor memory;
+} MDMemoryDescriptor; /* MINIDUMP_MEMORY_DESCRIPTOR */
+
+
+typedef struct {
+ uint32_t signature;
+ uint32_t version;
+ uint32_t stream_count;
+ MDRVA stream_directory_rva; /* A |stream_count|-sized array of
+ * MDRawDirectory structures. */
+ uint32_t checksum; /* Can be 0. In fact, that's all that's
+ * been found in minidump files. */
+ uint32_t time_date_stamp; /* time_t */
+ uint64_t flags;
+} MDRawHeader; /* MINIDUMP_HEADER */
+
+/* For (MDRawHeader).signature and (MDRawHeader).version. Note that only the
+ * low 16 bits of (MDRawHeader).version are MD_HEADER_VERSION. Per the
+ * documentation, the high 16 bits are implementation-specific. */
+#define MD_HEADER_SIGNATURE 0x504d444d /* 'PMDM' */
+ /* MINIDUMP_SIGNATURE */
+#define MD_HEADER_VERSION 0x0000a793 /* 42899 */
+ /* MINIDUMP_VERSION */
+
+/* For (MDRawHeader).flags: */
+typedef enum {
+ /* MD_NORMAL is the standard type of minidump. It includes full
+ * streams for the thread list, module list, exception, system info,
+ * and miscellaneous info. A memory list stream is also present,
+ * pointing to the same stack memory contained in the thread list,
+ * as well as a 256-byte region around the instruction address that
+ * was executing when the exception occurred. Stack memory is from
+ * 4 bytes below a thread's stack pointer up to the top of the
+ * memory region encompassing the stack. */
+ MD_NORMAL = 0x00000000,
+ MD_WITH_DATA_SEGS = 0x00000001,
+ MD_WITH_FULL_MEMORY = 0x00000002,
+ MD_WITH_HANDLE_DATA = 0x00000004,
+ MD_FILTER_MEMORY = 0x00000008,
+ MD_SCAN_MEMORY = 0x00000010,
+ MD_WITH_UNLOADED_MODULES = 0x00000020,
+ MD_WITH_INDIRECTLY_REFERENCED_MEMORY = 0x00000040,
+ MD_FILTER_MODULE_PATHS = 0x00000080,
+ MD_WITH_PROCESS_THREAD_DATA = 0x00000100,
+ MD_WITH_PRIVATE_READ_WRITE_MEMORY = 0x00000200,
+ MD_WITHOUT_OPTIONAL_DATA = 0x00000400,
+ MD_WITH_FULL_MEMORY_INFO = 0x00000800,
+ MD_WITH_THREAD_INFO = 0x00001000,
+ MD_WITH_CODE_SEGS = 0x00002000,
+ MD_WITHOUT_AUXILLIARY_SEGS = 0x00004000,
+ MD_WITH_FULL_AUXILLIARY_STATE = 0x00008000,
+ MD_WITH_PRIVATE_WRITE_COPY_MEMORY = 0x00010000,
+ MD_IGNORE_INACCESSIBLE_MEMORY = 0x00020000,
+ MD_WITH_TOKEN_INFORMATION = 0x00040000
+} MDType; /* MINIDUMP_TYPE */
+
+
+typedef struct {
+ uint32_t stream_type;
+ MDLocationDescriptor location;
+} MDRawDirectory; /* MINIDUMP_DIRECTORY */
+
+/* For (MDRawDirectory).stream_type */
+typedef enum {
+ MD_UNUSED_STREAM = 0,
+ MD_RESERVED_STREAM_0 = 1,
+ MD_RESERVED_STREAM_1 = 2,
+ MD_THREAD_LIST_STREAM = 3, /* MDRawThreadList */
+ MD_MODULE_LIST_STREAM = 4, /* MDRawModuleList */
+ MD_MEMORY_LIST_STREAM = 5, /* MDRawMemoryList */
+ MD_EXCEPTION_STREAM = 6, /* MDRawExceptionStream */
+ MD_SYSTEM_INFO_STREAM = 7, /* MDRawSystemInfo */
+ MD_THREAD_EX_LIST_STREAM = 8,
+ MD_MEMORY_64_LIST_STREAM = 9,
+ MD_COMMENT_STREAM_A = 10,
+ MD_COMMENT_STREAM_W = 11,
+ MD_HANDLE_DATA_STREAM = 12,
+ MD_FUNCTION_TABLE_STREAM = 13,
+ MD_UNLOADED_MODULE_LIST_STREAM = 14,
+ MD_MISC_INFO_STREAM = 15, /* MDRawMiscInfo */
+ MD_MEMORY_INFO_LIST_STREAM = 16, /* MDRawMemoryInfoList */
+ MD_THREAD_INFO_LIST_STREAM = 17,
+ MD_HANDLE_OPERATION_LIST_STREAM = 18,
+ MD_TOKEN_STREAM = 19,
+ MD_JAVASCRIPT_DATA_STREAM = 20,
+ MD_SYSTEM_MEMORY_INFO_STREAM = 21,
+ MD_PROCESS_VM_COUNTERS_STREAM = 22,
+ MD_IPT_TRACE_STREAM = 23,
+ MD_THREAD_NAMES_STREAM = 24,
+ MD_LAST_RESERVED_STREAM = 0x0000ffff,
+
+ /* Breakpad extension types. 0x4767 = "Gg" */
+ MD_BREAKPAD_INFO_STREAM = 0x47670001, /* MDRawBreakpadInfo */
+ MD_ASSERTION_INFO_STREAM = 0x47670002, /* MDRawAssertionInfo */
+ /* These are additional minidump stream values which are specific to
+ * the linux breakpad implementation. */
+ MD_LINUX_CPU_INFO = 0x47670003, /* /proc/cpuinfo */
+ MD_LINUX_PROC_STATUS = 0x47670004, /* /proc/$x/status */
+ MD_LINUX_LSB_RELEASE = 0x47670005, /* /etc/lsb-release */
+ MD_LINUX_CMD_LINE = 0x47670006, /* /proc/$x/cmdline */
+ MD_LINUX_ENVIRON = 0x47670007, /* /proc/$x/environ */
+ MD_LINUX_AUXV = 0x47670008, /* /proc/$x/auxv */
+ MD_LINUX_MAPS = 0x47670009, /* /proc/$x/maps */
+ MD_LINUX_DSO_DEBUG = 0x4767000A, /* MDRawDebug{32,64} */
+
+ /* Crashpad extension types. 0x4350 = "CP"
+ * See Crashpad's minidump/minidump_extensions.h. */
+ MD_CRASHPAD_INFO_STREAM = 0x43500001, /* MDRawCrashpadInfo */
+
+ /* Data from the __DATA,__crash_info section of every module which contains
+ * one that has useful data. Only available on macOS. 0x4D7A = "Mz". */
+ MOZ_MACOS_CRASH_INFO_STREAM = 0x4d7a0001,
+
+ /* The kernel boot args on the machine where the crashed process is
+ * running. Only available on macOS. 0x4D7A = "Mz". */
+ MOZ_MACOS_BOOTARGS_STREAM = 0x4d7a0002,
+} MDStreamType; /* MINIDUMP_STREAM_TYPE */
+
+
+typedef struct {
+ uint32_t length; /* Length of buffer in bytes (not characters),
+ * excluding 0-terminator */
+ uint16_t buffer[1]; /* UTF-16-encoded, 0-terminated */
+} MDString; /* MINIDUMP_STRING */
+
+static const size_t MDString_minsize = offsetof(MDString, buffer[0]);
+
+
+typedef struct {
+ uint32_t thread_id;
+ uint32_t suspend_count;
+ uint32_t priority_class;
+ uint32_t priority;
+ uint64_t teb; /* Thread environment block */
+ MDMemoryDescriptor stack;
+ MDLocationDescriptor thread_context; /* MDRawContext[CPU] */
+} MDRawThread; /* MINIDUMP_THREAD */
+
+
+typedef struct {
+ uint32_t number_of_threads;
+ MDRawThread threads[1];
+} MDRawThreadList; /* MINIDUMP_THREAD_LIST */
+
+static const size_t MDRawThreadList_minsize = offsetof(MDRawThreadList,
+ threads[0]);
+
+
+typedef struct {
+ uint64_t base_of_image;
+ uint32_t size_of_image;
+ uint32_t checksum; /* 0 if unknown */
+ uint32_t time_date_stamp; /* time_t */
+ MDRVA module_name_rva; /* MDString, pathname or filename */
+ MDVSFixedFileInfo version_info;
+
+ /* The next field stores a CodeView record and is populated when a module's
+ * debug information resides in a PDB file. It identifies the PDB file. */
+ MDLocationDescriptor cv_record;
+
+ /* The next field is populated when a module's debug information resides
+ * in a DBG file. It identifies the DBG file. This field is effectively
+ * obsolete with modules built by recent toolchains. */
+ MDLocationDescriptor misc_record;
+
+ /* Alignment problem: reserved0 and reserved1 are defined by the platform
+ * SDK as 64-bit quantities. However, that results in a structure whose
+ * alignment is unpredictable on different CPUs and ABIs. If the ABI
+ * specifies full alignment of 64-bit quantities in structures (as ppc
+ * does), there will be padding between miscRecord and reserved0. If
+ * 64-bit quantities can be aligned on 32-bit boundaries (as on x86),
+ * this padding will not exist. (Note that the structure up to this point
+ * contains 1 64-bit member followed by 21 32-bit members.)
+ * As a workaround, reserved0 and reserved1 are instead defined here as
+ * four 32-bit quantities. This should be harmless, as there are
+ * currently no known uses for these fields. */
+ uint32_t reserved0[2];
+ uint32_t reserved1[2];
+} MDRawModule; /* MINIDUMP_MODULE */
+
+/* The inclusion of a 64-bit type in MINIDUMP_MODULE forces the struct to
+ * be tail-padded out to a multiple of 64 bits under some ABIs (such as PPC).
+ * This doesn't occur on systems that don't tail-pad in this manner. Define
+ * this macro to be the usable size of the MDRawModule struct, and use it in
+ * place of sizeof(MDRawModule). */
+#define MD_MODULE_SIZE 108
+
+
+/* (MDRawModule).cv_record can reference MDCVInfoPDB20 or MDCVInfoPDB70.
+ * Ref.: http://www.debuginfo.com/articles/debuginfomatch.html
+ * MDCVInfoPDB70 is the expected structure type with recent toolchains. */
+
+typedef struct {
+ uint32_t signature;
+ uint32_t offset; /* Offset to debug data (expect 0 in minidump) */
+} MDCVHeader;
+
+typedef struct {
+ MDCVHeader cv_header;
+ uint32_t signature; /* time_t debug information created */
+ uint32_t age; /* revision of PDB file */
+ uint8_t pdb_file_name[1]; /* Pathname or filename of PDB file */
+} MDCVInfoPDB20;
+
+static const size_t MDCVInfoPDB20_minsize = offsetof(MDCVInfoPDB20,
+ pdb_file_name[0]);
+
+#define MD_CVINFOPDB20_SIGNATURE 0x3031424e /* cvHeader.signature = '01BN' */
+
+typedef struct {
+ uint32_t cv_signature;
+ MDGUID signature; /* GUID, identifies PDB file */
+ uint32_t age; /* Identifies incremental changes to PDB file */
+ uint8_t pdb_file_name[1]; /* Pathname or filename of PDB file,
+ * 0-terminated 8-bit character data (UTF-8?) */
+} MDCVInfoPDB70;
+
+static const size_t MDCVInfoPDB70_minsize = offsetof(MDCVInfoPDB70,
+ pdb_file_name[0]);
+
+#define MD_CVINFOPDB70_SIGNATURE 0x53445352 /* cvSignature = 'SDSR' */
+
+/*
+ * Modern ELF toolchains insert a "build id" into the ELF headers that
+ * usually contains a hash of some ELF headers + sections to uniquely
+ * identify a binary.
+ *
+ * https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Developer_Guide/compiling-build-id.html
+ * https://sourceware.org/binutils/docs-2.26/ld/Options.html#index-g_t_002d_002dbuild_002did-292
+ */
+typedef struct {
+ uint32_t cv_signature;
+ uint8_t build_id[1]; /* Bytes of build id from GNU_BUILD_ID ELF note.
+ * This is variable-length, but usually 20 bytes
+ * as the binutils ld default is a SHA-1 hash. */
+} MDCVInfoELF;
+
+static const size_t MDCVInfoELF_minsize = offsetof(MDCVInfoELF,
+ build_id[0]);
+
+#define MD_CVINFOELF_SIGNATURE 0x4270454c /* cvSignature = 'BpEL' */
+
+/* In addition to the two CodeView record formats above, used for linking
+ * to external pdb files, it is possible for debugging data to be carried
+ * directly in the CodeView record itself. These signature values will
+ * be found in the first 4 bytes of the CodeView record. Additional values
+ * not commonly experienced in the wild are given by "Microsoft Symbol and
+ * Type Information", http://www.x86.org/ftp/manuals/tools/sym.pdf, section
+ * 7.2. An in-depth description of the CodeView 4.1 format is given by
+ * "Undocumented Windows 2000 Secrets", Windows 2000 Debugging Support/
+ * Microsoft Symbol File Internals/CodeView Subsections,
+ * http://www.rawol.com/features/undocumented/sbs-w2k-1-windows-2000-debugging-support.pdf
+ */
+#define MD_CVINFOCV41_SIGNATURE 0x3930424e /* '90BN', CodeView 4.10. */
+#define MD_CVINFOCV50_SIGNATURE 0x3131424e /* '11BN', CodeView 5.0,
+ * MS C7-format (/Z7). */
+
+#define MD_CVINFOUNKNOWN_SIGNATURE 0xffffffff /* An unlikely value. */
+
+/* (MDRawModule).miscRecord can reference MDImageDebugMisc. The Windows
+ * structure is actually defined in WinNT.h. This structure is effectively
+ * obsolete with modules built by recent toolchains. */
+
+typedef struct {
+ uint32_t data_type; /* IMAGE_DEBUG_TYPE_*, not defined here because
+ * this debug record type is mostly obsolete. */
+ uint32_t length; /* Length of entire MDImageDebugMisc structure */
+ uint8_t unicode; /* True if data is multibyte */
+ uint8_t reserved[3];
+ uint8_t data[1];
+} MDImageDebugMisc; /* IMAGE_DEBUG_MISC */
+
+static const size_t MDImageDebugMisc_minsize = offsetof(MDImageDebugMisc,
+ data[0]);
+
+
+typedef struct {
+ uint32_t number_of_modules;
+ MDRawModule modules[1];
+} MDRawModuleList; /* MINIDUMP_MODULE_LIST */
+
+static const size_t MDRawModuleList_minsize = offsetof(MDRawModuleList,
+ modules[0]);
+
+
+typedef struct {
+ uint32_t number_of_memory_ranges;
+ MDMemoryDescriptor memory_ranges[1];
+} MDRawMemoryList; /* MINIDUMP_MEMORY_LIST */
+
+static const size_t MDRawMemoryList_minsize = offsetof(MDRawMemoryList,
+ memory_ranges[0]);
+
+
+#define MD_EXCEPTION_MAXIMUM_PARAMETERS 15
+
+typedef struct {
+ uint32_t exception_code; /* Windows: MDExceptionCodeWin,
+ * Mac OS X: MDExceptionMac,
+ * Linux: MDExceptionCodeLinux. */
+ uint32_t exception_flags; /* Windows: 1 if noncontinuable,
+ Mac OS X: MDExceptionCodeMac. */
+ uint64_t exception_record; /* Address (in the minidump-producing host's
+ * memory) of another MDException, for
+ * nested exceptions. */
+ uint64_t exception_address; /* The address that caused the exception.
+ * Mac OS X: exception subcode (which is
+ * typically the address). */
+ uint32_t number_parameters; /* Number of valid elements in
+ * exception_information. */
+ uint32_t __align;
+ uint64_t exception_information[MD_EXCEPTION_MAXIMUM_PARAMETERS];
+} MDException; /* MINIDUMP_EXCEPTION */
+
+#include "minidump_exception_fuchsia.h"
+#include "minidump_exception_linux.h"
+#include "minidump_exception_mac.h"
+#include "minidump_exception_ps3.h"
+#include "minidump_exception_solaris.h"
+#include "minidump_exception_win32.h"
+
+typedef struct {
+ uint32_t thread_id; /* Thread in which the exception
+ * occurred. Corresponds to
+ * (MDRawThread).thread_id. */
+ uint32_t __align;
+ MDException exception_record;
+ MDLocationDescriptor thread_context; /* MDRawContext[CPU] */
+} MDRawExceptionStream; /* MINIDUMP_EXCEPTION_STREAM */
+
+
+typedef union {
+ struct {
+ uint32_t vendor_id[3]; /* cpuid 0: ebx, edx, ecx */
+ uint32_t version_information; /* cpuid 1: eax */
+ uint32_t feature_information; /* cpuid 1: edx */
+ uint32_t amd_extended_cpu_features; /* cpuid 0x80000001, ebx */
+ } x86_cpu_info;
+ struct {
+ uint32_t cpuid;
+ uint32_t elf_hwcaps; /* linux specific, 0 otherwise */
+ } arm_cpu_info;
+ struct {
+ uint64_t processor_features[2];
+ } other_cpu_info;
+} MDCPUInformation; /* CPU_INFORMATION */
+
+/* For (MDCPUInformation).arm_cpu_info.elf_hwcaps.
+ * This matches the Linux kernel definitions from <asm/hwcaps.h> */
+typedef enum {
+ MD_CPU_ARM_ELF_HWCAP_SWP = (1 << 0),
+ MD_CPU_ARM_ELF_HWCAP_HALF = (1 << 1),
+ MD_CPU_ARM_ELF_HWCAP_THUMB = (1 << 2),
+ MD_CPU_ARM_ELF_HWCAP_26BIT = (1 << 3),
+ MD_CPU_ARM_ELF_HWCAP_FAST_MULT = (1 << 4),
+ MD_CPU_ARM_ELF_HWCAP_FPA = (1 << 5),
+ MD_CPU_ARM_ELF_HWCAP_VFP = (1 << 6),
+ MD_CPU_ARM_ELF_HWCAP_EDSP = (1 << 7),
+ MD_CPU_ARM_ELF_HWCAP_JAVA = (1 << 8),
+ MD_CPU_ARM_ELF_HWCAP_IWMMXT = (1 << 9),
+ MD_CPU_ARM_ELF_HWCAP_CRUNCH = (1 << 10),
+ MD_CPU_ARM_ELF_HWCAP_THUMBEE = (1 << 11),
+ MD_CPU_ARM_ELF_HWCAP_NEON = (1 << 12),
+ MD_CPU_ARM_ELF_HWCAP_VFPv3 = (1 << 13),
+ MD_CPU_ARM_ELF_HWCAP_VFPv3D16 = (1 << 14),
+ MD_CPU_ARM_ELF_HWCAP_TLS = (1 << 15),
+ MD_CPU_ARM_ELF_HWCAP_VFPv4 = (1 << 16),
+ MD_CPU_ARM_ELF_HWCAP_IDIVA = (1 << 17),
+ MD_CPU_ARM_ELF_HWCAP_IDIVT = (1 << 18),
+} MDCPUInformationARMElfHwCaps;
+
+typedef struct {
+ /* The next 3 fields and numberOfProcessors are from the SYSTEM_INFO
+ * structure as returned by GetSystemInfo */
+ uint16_t processor_architecture;
+ uint16_t processor_level; /* x86: 5 = 586, 6 = 686, ... */
+ /* ARM: 6 = ARMv6, 7 = ARMv7 ... */
+ uint16_t processor_revision; /* x86: 0xMMSS, where MM=model,
+ * SS=stepping */
+ /* ARM: 0 */
+
+ uint8_t number_of_processors;
+ uint8_t product_type; /* Windows: VER_NT_* from WinNT.h */
+
+ /* The next 5 fields are from the OSVERSIONINFO structure as returned
+ * by GetVersionEx */
+ uint32_t major_version;
+ uint32_t minor_version;
+ uint32_t build_number;
+ uint32_t platform_id;
+ MDRVA csd_version_rva; /* MDString further identifying the
+ * host OS.
+ * Windows: name of the installed OS
+ * service pack.
+ * Mac OS X: the Apple OS build number
+ * (sw_vers -buildVersion).
+ * Linux: uname -srvmo */
+
+ uint16_t suite_mask; /* Windows: VER_SUITE_* from WinNT.h */
+ uint16_t reserved2;
+
+ MDCPUInformation cpu;
+} MDRawSystemInfo; /* MINIDUMP_SYSTEM_INFO */
+
+/* For (MDRawSystemInfo).processor_architecture: */
+typedef enum {
+ MD_CPU_ARCHITECTURE_X86 = 0, /* PROCESSOR_ARCHITECTURE_INTEL */
+ MD_CPU_ARCHITECTURE_MIPS = 1, /* PROCESSOR_ARCHITECTURE_MIPS */
+ MD_CPU_ARCHITECTURE_ALPHA = 2, /* PROCESSOR_ARCHITECTURE_ALPHA */
+ MD_CPU_ARCHITECTURE_PPC = 3, /* PROCESSOR_ARCHITECTURE_PPC */
+ MD_CPU_ARCHITECTURE_SHX = 4, /* PROCESSOR_ARCHITECTURE_SHX
+ * (Super-H) */
+ MD_CPU_ARCHITECTURE_ARM = 5, /* PROCESSOR_ARCHITECTURE_ARM */
+ MD_CPU_ARCHITECTURE_IA64 = 6, /* PROCESSOR_ARCHITECTURE_IA64 */
+ MD_CPU_ARCHITECTURE_ALPHA64 = 7, /* PROCESSOR_ARCHITECTURE_ALPHA64 */
+ MD_CPU_ARCHITECTURE_MSIL = 8, /* PROCESSOR_ARCHITECTURE_MSIL
+ * (Microsoft Intermediate Language) */
+ MD_CPU_ARCHITECTURE_AMD64 = 9, /* PROCESSOR_ARCHITECTURE_AMD64 */
+ MD_CPU_ARCHITECTURE_X86_WIN64 = 10,
+ /* PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 (WoW64) */
+ MD_CPU_ARCHITECTURE_ARM64 = 12, /* PROCESSOR_ARCHITECTURE_ARM64 */
+ MD_CPU_ARCHITECTURE_SPARC = 0x8001, /* Breakpad-defined value for SPARC */
+ MD_CPU_ARCHITECTURE_PPC64 = 0x8002, /* Breakpad-defined value for PPC64 */
+ MD_CPU_ARCHITECTURE_ARM64_OLD = 0x8003, /* Breakpad-defined value for ARM64 */
+ MD_CPU_ARCHITECTURE_MIPS64 = 0x8004, /* Breakpad-defined value for MIPS64 */
+ MD_CPU_ARCHITECTURE_UNKNOWN = 0xffff /* PROCESSOR_ARCHITECTURE_UNKNOWN */
+} MDCPUArchitecture;
+
+/* For (MDRawSystemInfo).platform_id: */
+typedef enum {
+ MD_OS_WIN32S = 0, /* VER_PLATFORM_WIN32s (Windows 3.1) */
+ MD_OS_WIN32_WINDOWS = 1, /* VER_PLATFORM_WIN32_WINDOWS (Windows 95-98-Me) */
+ MD_OS_WIN32_NT = 2, /* VER_PLATFORM_WIN32_NT (Windows NT, 2000+) */
+ MD_OS_WIN32_CE = 3, /* VER_PLATFORM_WIN32_CE, VER_PLATFORM_WIN32_HH
+ * (Windows CE, Windows Mobile, "Handheld") */
+
+ /* The following values are Breakpad-defined. */
+ MD_OS_UNIX = 0x8000, /* Generic Unix-ish */
+ MD_OS_MAC_OS_X = 0x8101, /* Mac OS X/Darwin */
+ MD_OS_IOS = 0x8102, /* iOS */
+ MD_OS_LINUX = 0x8201, /* Linux */
+ MD_OS_SOLARIS = 0x8202, /* Solaris */
+ MD_OS_ANDROID = 0x8203, /* Android */
+ MD_OS_PS3 = 0x8204, /* PS3 */
+ MD_OS_NACL = 0x8205, /* Native Client (NaCl) */
+ MD_OS_FUCHSIA = 0x8206 /* Fuchsia */
+} MDOSPlatform;
+
+typedef struct {
+ uint64_t base_of_image;
+ uint32_t size_of_image;
+ uint32_t checksum;
+ uint32_t time_date_stamp;
+ MDRVA module_name_rva;
+} MDRawUnloadedModule;
+
+typedef struct {
+ uint32_t size_of_header;
+ uint32_t size_of_entry;
+ uint32_t number_of_entries;
+} MDRawUnloadedModuleList; /* MINIDUMP_UNLOADED_MODULE_LIST */
+
+typedef struct {
+ uint16_t year;
+ uint16_t month;
+ uint16_t day_of_week;
+ uint16_t day;
+ uint16_t hour;
+ uint16_t minute;
+ uint16_t second;
+ uint16_t milliseconds;
+} MDSystemTime; /* SYSTEMTIME */
+
+typedef struct {
+ /* Required field. The bias is the difference, in minutes, between
+ * Coordinated Universal Time (UTC) and local time.
+ * Formula: UTC = local time + bias */
+ int32_t bias;
+ /* A description for standard time. For example, "EST" could indicate Eastern
+ * Standard Time. In practice this contains the full time zone names. This
+ * string can be empty. */
+ uint16_t standard_name[32]; /* UTF-16-encoded, 0-terminated */
+ /* A MDSystemTime structure that contains a date and local time when the
+ * transition from daylight saving time to standard time occurs on this
+ * operating system. If the time zone does not support daylight saving time,
+ * the month member in the MDSystemTime structure is zero. */
+ MDSystemTime standard_date;
+ /* The bias value to be used during local time translations that occur during
+ * standard time. */
+ int32_t standard_bias;
+ /* A description for daylight saving time. For example, "PDT" could indicate
+ * Pacific Daylight Time. In practice this contains the full time zone names.
+ * This string can be empty. */
+ uint16_t daylight_name[32]; /* UTF-16-encoded, 0-terminated */
+ /* A MDSystemTime structure that contains a date and local time when the
+ * transition from standard time to daylight saving time occurs on this
+ * operating system. If the time zone does not support daylight saving time,
+ * the month member in the MDSystemTime structure is zero.*/
+ MDSystemTime daylight_date;
+ /* The bias value to be used during local time translations that occur during
+ * daylight saving time. */
+ int32_t daylight_bias;
+} MDTimeZoneInformation; /* TIME_ZONE_INFORMATION */
+
+/* MAX_PATH from windef.h */
+#define MD_MAX_PATH 260
+
+/* For MDXStateConfigFeatureMscInfo.features */
+typedef struct {
+ uint32_t offset;
+ uint32_t size;
+} MDXStateFeature;
+
+/* For MDXStateConfigFeatureMscInfo.enabled_features from winnt.h */
+typedef enum {
+ MD_XSTATE_LEGACY_FLOATING_POINT = 0, /* XSTATE_LEGACY_FLOATING_POINT */
+ MD_XSTATE_LEGACY_SSE = 1, /* XSTATE_LEGACY_SSE */
+ MD_XSTATE_GSSE = 2, /* XSTATE_GSSE */
+ MD_XSTATE_AVX = MD_XSTATE_GSSE, /* XSTATE_AVX */
+ MD_XSTATE_MPX_BNDREGS = 3, /* XSTATE_MPX_BNDREGS */
+ MD_XSTATE_MPX_BNDCSR = 4, /* XSTATE_MPX_BNDCSR */
+ MD_XSTATE_AVX512_KMASK = 5, /* XSTATE_AVX512_KMASK */
+ MD_XSTATE_AVX512_ZMM_H = 6, /* XSTATE_AVX512_ZMM_H */
+ MD_XSTATE_AVX512_ZMM = 7, /* XSTATE_AVX512_ZMM */
+ MD_XSTATE_IPT = 8, /* XSTATE_IPT */
+ MD_XSTATE_LWP = 62 /* XSTATE_LWP */
+} MDXStateFeatureFlag;
+
+/* MAXIMUM_XSTATE_FEATURES from winnt.h */
+#define MD_MAXIMUM_XSTATE_FEATURES 64
+
+/* For MDRawMiscInfo.xstate_data */
+typedef struct {
+ uint32_t size_of_info;
+ uint32_t context_size;
+ /* An entry in the features array is valid only if the corresponding bit in
+ * the enabled_features flag is set. */
+ uint64_t enabled_features;
+ MDXStateFeature features[MD_MAXIMUM_XSTATE_FEATURES];
+} MDXStateConfigFeatureMscInfo;
+
+
+/* The miscellaneous information stream contains a variety
+ * of small pieces of information. A member is valid if
+ * it's within the available size and its corresponding
+ * bit is set. */
+typedef struct {
+ uint32_t size_of_info; /* Length of entire MDRawMiscInfo structure. */
+ uint32_t flags1;
+
+ /* The next field is only valid if flags1 contains
+ * MD_MISCINFO_FLAGS1_PROCESS_ID. */
+ uint32_t process_id;
+
+ /* The next 3 fields are only valid if flags1 contains
+ * MD_MISCINFO_FLAGS1_PROCESS_TIMES. */
+ uint32_t process_create_time; /* time_t process started */
+ uint32_t process_user_time; /* seconds of user CPU time */
+ uint32_t process_kernel_time; /* seconds of kernel CPU time */
+
+ /* The following fields are not present in MINIDUMP_MISC_INFO but are
+ * in MINIDUMP_MISC_INFO_2. When this struct is populated, these values
+ * may not be set. Use flags1 and size_of_info to determine whether these
+ * values are present. These are only valid when flags1 contains
+ * MD_MISCINFO_FLAGS1_PROCESSOR_POWER_INFO. */
+ uint32_t processor_max_mhz;
+ uint32_t processor_current_mhz;
+ uint32_t processor_mhz_limit;
+ uint32_t processor_max_idle_state;
+ uint32_t processor_current_idle_state;
+
+ /* The following fields are not present in MINIDUMP_MISC_INFO_2 but are
+ * in MINIDUMP_MISC_INFO_3. When this struct is populated, these values
+ * may not be set. Use flags1 and size_of_info to determine whether these
+ * values are present. */
+
+ /* The following field is only valid if flags1 contains
+ * MD_MISCINFO_FLAGS1_PROCESS_INTEGRITY. */
+ uint32_t process_integrity_level;
+
+ /* The following field is only valid if flags1 contains
+ * MD_MISCINFO_FLAGS1_PROCESS_EXECUTE_FLAGS. */
+ uint32_t process_execute_flags;
+
+ /* The following field is only valid if flags1 contains
+ * MD_MISCINFO_FLAGS1_PROTECTED_PROCESS. */
+ uint32_t protected_process;
+
+ /* The following 2 fields are only valid if flags1 contains
+ * MD_MISCINFO_FLAGS1_TIMEZONE. */
+ uint32_t time_zone_id;
+ MDTimeZoneInformation time_zone;
+
+ /* The following fields are not present in MINIDUMP_MISC_INFO_3 but are
+ * in MINIDUMP_MISC_INFO_4. When this struct is populated, these values
+ * may not be set. Use flags1 and size_of_info to determine whether these
+ * values are present. */
+
+ /* The following 2 fields are only valid if flags1 contains
+ * MD_MISCINFO_FLAGS1_BUILDSTRING. */
+ uint16_t build_string[MD_MAX_PATH]; /* UTF-16-encoded, 0-terminated */
+ uint16_t dbg_bld_str[40]; /* UTF-16-encoded, 0-terminated */
+
+ /* The following fields are not present in MINIDUMP_MISC_INFO_4 but are
+ * in MINIDUMP_MISC_INFO_5. When this struct is populated, these values
+ * may not be set. Use flags1 and size_of_info to determine whether these
+ * values are present. */
+
+ /* The following field has its own flags for establishing the validity of
+ * the structure's contents.*/
+ MDXStateConfigFeatureMscInfo xstate_data;
+
+ /* The following field is only valid if flags1 contains
+ * MD_MISCINFO_FLAGS1_PROCESS_COOKIE. */
+ uint32_t process_cookie;
+} MDRawMiscInfo; /* MINIDUMP_MISC_INFO, MINIDUMP_MISC_INFO_2,
+ * MINIDUMP_MISC_INFO_3, MINIDUMP_MISC_INFO_4,
+ * MINIDUMP_MISC_INFO_5, MINIDUMP_MISC_INFO_N */
+
+static const size_t MD_MISCINFO_SIZE =
+ offsetof(MDRawMiscInfo, processor_max_mhz);
+static const size_t MD_MISCINFO2_SIZE =
+ offsetof(MDRawMiscInfo, process_integrity_level);
+static const size_t MD_MISCINFO3_SIZE =
+ offsetof(MDRawMiscInfo, build_string[0]);
+static const size_t MD_MISCINFO4_SIZE =
+ offsetof(MDRawMiscInfo, xstate_data);
+/* Version 5 of the MDRawMiscInfo structure is not a multiple of 8 in size and
+ * yet it contains some 8-bytes sized fields. This causes many compilers to
+ * round the structure size up to a multiple of 8 by adding padding at the end.
+ * The following hack is thus required for matching the proper on-disk size. */
+static const size_t MD_MISCINFO5_SIZE =
+ offsetof(MDRawMiscInfo, process_cookie) + sizeof(uint32_t);
+
+/* For (MDRawMiscInfo).flags1. These values indicate which fields in the
+ * MDRawMiscInfoStructure are valid. */
+typedef enum {
+ MD_MISCINFO_FLAGS1_PROCESS_ID = 0x00000001,
+ /* MINIDUMP_MISC1_PROCESS_ID */
+ MD_MISCINFO_FLAGS1_PROCESS_TIMES = 0x00000002,
+ /* MINIDUMP_MISC1_PROCESS_TIMES */
+ MD_MISCINFO_FLAGS1_PROCESSOR_POWER_INFO = 0x00000004,
+ /* MINIDUMP_MISC1_PROCESSOR_POWER_INFO */
+ MD_MISCINFO_FLAGS1_PROCESS_INTEGRITY = 0x00000010,
+ /* MINIDUMP_MISC3_PROCESS_INTEGRITY */
+ MD_MISCINFO_FLAGS1_PROCESS_EXECUTE_FLAGS = 0x00000020,
+ /* MINIDUMP_MISC3_PROCESS_EXECUTE_FLAGS */
+ MD_MISCINFO_FLAGS1_TIMEZONE = 0x00000040,
+ /* MINIDUMP_MISC3_TIMEZONE */
+ MD_MISCINFO_FLAGS1_PROTECTED_PROCESS = 0x00000080,
+ /* MINIDUMP_MISC3_PROTECTED_PROCESS */
+ MD_MISCINFO_FLAGS1_BUILDSTRING = 0x00000100,
+ /* MINIDUMP_MISC4_BUILDSTRING */
+ MD_MISCINFO_FLAGS1_PROCESS_COOKIE = 0x00000200,
+ /* MINIDUMP_MISC5_PROCESS_COOKIE */
+} MDMiscInfoFlags1;
+
+/*
+ * Around DbgHelp version 6.0, the style of new LIST structures changed
+ * from including an array of length 1 at the end of the struct to
+ * represent the variable-length data to including explicit
+ * "size of header", "size of entry" and "number of entries" fields
+ * in the header, presumably to allow backwards-compatibly-extending
+ * the structures in the future. The actual list entries follow the
+ * header data directly in this case.
+ */
+
+typedef struct {
+ uint32_t size_of_header; /* sizeof(MDRawMemoryInfoList) */
+ uint32_t size_of_entry; /* sizeof(MDRawMemoryInfo) */
+ uint64_t number_of_entries;
+} MDRawMemoryInfoList; /* MINIDUMP_MEMORY_INFO_LIST */
+
+typedef struct {
+ uint64_t base_address; /* Base address of a region of pages */
+ uint64_t allocation_base; /* Base address of a range of pages
+ * within this region. */
+ uint32_t allocation_protection; /* Memory protection when this region
+ * was originally allocated:
+ * MDMemoryProtection */
+ uint32_t __alignment1;
+ uint64_t region_size;
+ uint32_t state; /* MDMemoryState */
+ uint32_t protection; /* MDMemoryProtection */
+ uint32_t type; /* MDMemoryType */
+ uint32_t __alignment2;
+} MDRawMemoryInfo; /* MINIDUMP_MEMORY_INFO */
+
+/* For (MDRawMemoryInfo).state */
+typedef enum {
+ MD_MEMORY_STATE_COMMIT = 0x1000, /* physical storage has been allocated */
+ MD_MEMORY_STATE_RESERVE = 0x2000, /* reserved, but no physical storage */
+ MD_MEMORY_STATE_FREE = 0x10000 /* available to be allocated */
+} MDMemoryState;
+
+/* For (MDRawMemoryInfo).allocation_protection and .protection */
+typedef enum {
+ MD_MEMORY_PROTECT_NOACCESS = 0x01, /* PAGE_NOACCESS */
+ MD_MEMORY_PROTECT_READONLY = 0x02, /* PAGE_READONLY */
+ MD_MEMORY_PROTECT_READWRITE = 0x04, /* PAGE_READWRITE */
+ MD_MEMORY_PROTECT_WRITECOPY = 0x08, /* PAGE_WRITECOPY */
+ MD_MEMORY_PROTECT_EXECUTE = 0x10, /* PAGE_EXECUTE */
+ MD_MEMORY_PROTECT_EXECUTE_READ = 0x20, /* PAGE_EXECUTE_READ */
+ MD_MEMORY_PROTECT_EXECUTE_READWRITE = 0x40, /* PAGE_EXECUTE_READWRITE */
+ MD_MEMORY_PROTECT_EXECUTE_WRITECOPY = 0x80, /* PAGE_EXECUTE_WRITECOPY */
+ /* These options can be combined with the previous flags. */
+ MD_MEMORY_PROTECT_GUARD = 0x100, /* PAGE_GUARD */
+ MD_MEMORY_PROTECT_NOCACHE = 0x200, /* PAGE_NOCACHE */
+ MD_MEMORY_PROTECT_WRITECOMBINE = 0x400, /* PAGE_WRITECOMBINE */
+} MDMemoryProtection;
+
+/* Used to mask the mutually exclusive options from the combinable flags. */
+const uint32_t MD_MEMORY_PROTECTION_ACCESS_MASK = 0xFF;
+
+/* For (MDRawMemoryInfo).type */
+typedef enum {
+ MD_MEMORY_TYPE_PRIVATE = 0x20000, /* not shared by other processes */
+ MD_MEMORY_TYPE_MAPPED = 0x40000, /* mapped into the view of a section */
+ MD_MEMORY_TYPE_IMAGE = 0x1000000 /* mapped into the view of an image */
+} MDMemoryType;
+
+/*
+ * Breakpad extension types
+ */
+
+
+typedef struct {
+ /* validity is a bitmask with values from MDBreakpadInfoValidity, indicating
+ * which of the other fields in the structure are valid. */
+ uint32_t validity;
+
+ /* Thread ID of the handler thread. dump_thread_id should correspond to
+ * the thread_id of an MDRawThread in the minidump's MDRawThreadList if
+ * a dedicated thread in that list was used to produce the minidump. If
+ * the MDRawThreadList does not contain a dedicated thread used to produce
+ * the minidump, this field should be set to 0 and the validity field
+ * must not contain MD_BREAKPAD_INFO_VALID_DUMP_THREAD_ID. */
+ uint32_t dump_thread_id;
+
+ /* Thread ID of the thread that requested the minidump be produced. As
+ * with dump_thread_id, requesting_thread_id should correspond to the
+ * thread_id of an MDRawThread in the minidump's MDRawThreadList. For
+ * minidumps produced as a result of an exception, requesting_thread_id
+ * will be the same as the MDRawExceptionStream's thread_id field. For
+ * minidumps produced "manually" at the program's request,
+ * requesting_thread_id will indicate which thread caused the dump to be
+ * written. If the minidump was produced at the request of something
+ * other than a thread in the MDRawThreadList, this field should be set
+ * to 0 and the validity field must not contain
+ * MD_BREAKPAD_INFO_VALID_REQUESTING_THREAD_ID. */
+ uint32_t requesting_thread_id;
+} MDRawBreakpadInfo;
+
+/* For (MDRawBreakpadInfo).validity: */
+typedef enum {
+ /* When set, the dump_thread_id field is valid. */
+ MD_BREAKPAD_INFO_VALID_DUMP_THREAD_ID = 1 << 0,
+
+ /* When set, the requesting_thread_id field is valid. */
+ MD_BREAKPAD_INFO_VALID_REQUESTING_THREAD_ID = 1 << 1
+} MDBreakpadInfoValidity;
+
+typedef struct {
+ /* expression, function, and file are 0-terminated UTF-16 strings. They
+ * may be truncated if necessary, but should always be 0-terminated when
+ * written to a file.
+ * Fixed-length strings are used because MiniDumpWriteDump doesn't offer
+ * a way for user streams to point to arbitrary RVAs for strings. */
+ uint16_t expression[128]; /* Assertion that failed... */
+ uint16_t function[128]; /* ...within this function... */
+ uint16_t file[128]; /* ...in this file... */
+ uint32_t line; /* ...at this line. */
+ uint32_t type;
+} MDRawAssertionInfo;
+
+/* For (MDRawAssertionInfo).type: */
+typedef enum {
+ MD_ASSERTION_INFO_TYPE_UNKNOWN = 0,
+
+ /* Used for assertions that would be raised by the MSVC CRT but are
+ * directed to an invalid parameter handler instead. */
+ MD_ASSERTION_INFO_TYPE_INVALID_PARAMETER,
+
+ /* Used for assertions that would be raised by the MSVC CRT but are
+ * directed to a pure virtual call handler instead. */
+ MD_ASSERTION_INFO_TYPE_PURE_VIRTUAL_CALL
+} MDAssertionInfoData;
+
+/* These structs are used to store the DSO debug data in Linux minidumps,
+ * which is necessary for converting minidumps to usable coredumps.
+ * Because of a historical accident, several fields are variably encoded
+ * according to client word size, so tools potentially need to support both. */
+
+typedef struct {
+ uint32_t addr;
+ MDRVA name;
+ uint32_t ld;
+} MDRawLinkMap32;
+
+typedef struct {
+ uint32_t version;
+ MDRVA map; /* array of MDRawLinkMap32 */
+ uint32_t dso_count;
+ uint32_t brk;
+ uint32_t ldbase;
+ uint32_t dynamic;
+} MDRawDebug32;
+
+typedef struct {
+ uint64_t addr;
+ MDRVA name;
+ uint64_t ld;
+} MDRawLinkMap64;
+
+typedef struct {
+ uint32_t version;
+ MDRVA map; /* array of MDRawLinkMap64 */
+ uint32_t dso_count;
+ uint64_t brk;
+ uint64_t ldbase;
+ uint64_t dynamic;
+} MDRawDebug64;
+
+/* Crashpad extension types. See Crashpad's minidump/minidump_extensions.h. */
+
+typedef struct {
+ MDRVA key;
+ MDRVA value;
+} MDRawSimpleStringDictionaryEntry;
+
+typedef struct {
+ uint32_t count;
+ MDRawSimpleStringDictionaryEntry entries[0];
+} MDRawSimpleStringDictionary;
+
+typedef struct {
+ uint32_t version;
+ MDLocationDescriptor list_annotations;
+ MDLocationDescriptor simple_annotations; /* MDRawSimpleStringDictionary */
+} MDRawModuleCrashpadInfo;
+
+typedef struct {
+ uint32_t minidump_module_list_index;
+ MDLocationDescriptor location; /* MDRawModuleCrashpadInfo */
+} MDRawModuleCrashpadInfoLink;
+
+typedef struct {
+ uint32_t count;
+ MDLocationDescriptor modules[0]; /* MDRawModuleCrashpadInfoLink */
+} MDRawModuleCrashpadInfoList;
+
+typedef struct {
+ uint32_t version;
+ MDGUID report_id;
+ MDGUID client_id;
+ MDLocationDescriptor simple_annotations; /* MDRawSimpleStringDictionary */
+ MDLocationDescriptor module_list; /* MDRawModuleCrashpadInfoList */
+} MDRawCrashpadInfo;
+
+/* macOS __DATA,__crash_info data */
+
+typedef struct {
+ uint64_t stream_type; /* MOZ_MACOS_CRASH_INFO_STREAM */
+ uint64_t version;
+ uint64_t thread;
+ uint64_t dialog_mode;
+ uint64_t abort_cause; /* Only valid when 'version' > 4 */
+ /* If/when Apple adds more fields to crashreporter_annotations_t, add
+ * numerical fields here and change (MDRawMacCrashInfo).record_start_size
+ * accordingly. Make them all uint64_t, to keep this structure the same size
+ * on all platforms. 'data' should always be the last field. Add new string
+ * fields to the end of 'data'. */
+ /* 'data' currently contains five null-terminated uint8_t arrays, each
+ * possibly empty (containing only a single terminal null), stored one after
+ * the other:
+ * module_path;
+ * message;
+ * signature_string;
+ * backtrace;
+ * message2; */
+ uint8_t data[0];
+} MDRawMacCrashInfoRecord;
+
+/* This is the maximum supported size for each string in
+ * (MDRawMacCrashInfoRecord).data. If we encounter a string in the
+ * __crash_info section which seems larger than this, that's a sign of data
+ * corruption. */
+#define MACCRASHINFO_STRING_MAXSIZE 8192
+
+/* In principle there should only be one or two non-empty __DATA,__crash_info
+ * sections per process. But the __crash_info section is almost entirely
+ * undocumented, so just in case we set a large maximum. */
+#define MAC_CRASH_INFOS_MAX 20
+
+typedef struct {
+ uint32_t stream_type; /* MOZ_MACOS_CRASH_INFO_STREAM */
+ uint32_t record_count;
+ /* The size of the "fixed-size" part of MDRawMacCrashInfoRecord, before the
+ * 'data' field. This will always be 'sizeof(MDRawMacCrashInfoRecord)'. But
+ * that value may change if more numerical fields are added to
+ * MDRawMacCrashInfoRecord in the future. */
+ uint32_t record_start_size;
+ MDLocationDescriptor records[MAC_CRASH_INFOS_MAX];
+} MDRawMacCrashInfo;
+
+/* macOS kernel boot args */
+
+typedef struct __attribute__((packed,aligned(4))) {
+ uint32_t stream_type; /* MOZ_MACOS_BOOTARGS_STREAM */
+ MDRVA64 bootargs;
+} MDRawMacBootargs;
+
+/* Thread names */
+
+typedef struct __attribute__((packed,aligned(4))) {
+ uint32_t thread_id;
+ MDRVA64 rva_of_thread_name;
+} MDRawThreadName;
+
+typedef struct {
+ uint32_t number_of_thread_names;
+ MDRawThreadName thread_names[0];
+} MDRawThreadNamesList;
+
+#if defined(_MSC_VER)
+#pragma warning(pop)
+#endif /* _MSC_VER */
+
+
+#endif /* GOOGLE_BREAKPAD_COMMON_MINIDUMP_FORMAT_H__ */
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_size.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_size.h
new file mode 100644
index 0000000000..fae57923cc
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/common/minidump_size.h
@@ -0,0 +1,113 @@
+// Copyright (c) 2007, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
+
+// minidump_size.h: Provides a C++ template for programmatic access to
+// the sizes of various types defined in minidump_format.h.
+//
+// Author: Mark Mentovai
+
+#ifndef GOOGLE_BREAKPAD_COMMON_MINIDUMP_SIZE_H__
+#define GOOGLE_BREAKPAD_COMMON_MINIDUMP_SIZE_H__
+
+#include <sys/types.h>
+
+#include "google_breakpad/common/minidump_format.h"
+
+namespace google_breakpad {
+
+template<typename T>
+class minidump_size {
+ public:
+ static size_t size() { return sizeof(T); }
+};
+
+// Explicit specializations for variable-length types. The size returned
+// for these should be the size for an object without its variable-length
+// section.
+
+template<>
+class minidump_size<MDString> {
+ public:
+ static size_t size() { return MDString_minsize; }
+};
+
+template<>
+class minidump_size<MDRawThreadList> {
+ public:
+ static size_t size() { return MDRawThreadList_minsize; }
+};
+
+template<>
+class minidump_size<MDCVInfoPDB20> {
+ public:
+ static size_t size() { return MDCVInfoPDB20_minsize; }
+};
+
+template<>
+class minidump_size<MDCVInfoPDB70> {
+ public:
+ static size_t size() { return MDCVInfoPDB70_minsize; }
+};
+
+template<>
+class minidump_size<MDCVInfoELF> {
+ public:
+ static size_t size() { return MDCVInfoELF_minsize; }
+};
+
+template<>
+class minidump_size<MDImageDebugMisc> {
+ public:
+ static size_t size() { return MDImageDebugMisc_minsize; }
+};
+
+template<>
+class minidump_size<MDRawModuleList> {
+ public:
+ static size_t size() { return MDRawModuleList_minsize; }
+};
+
+template<>
+class minidump_size<MDRawMemoryList> {
+ public:
+ static size_t size() { return MDRawMemoryList_minsize; }
+};
+
+// Explicit specialization for MDRawModule, for which sizeof may include
+// tail-padding on some architectures but not others.
+
+template<>
+class minidump_size<MDRawModule> {
+ public:
+ static size_t size() { return MD_MODULE_SIZE; }
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_COMMON_MINIDUMP_SIZE_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/basic_source_line_resolver.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/basic_source_line_resolver.h
new file mode 100644
index 0000000000..91fb784173
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/basic_source_line_resolver.h
@@ -0,0 +1,148 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// basic_source_line_resolver.h: BasicSourceLineResolver is derived from
+// SourceLineResolverBase, and is a concrete implementation of
+// SourceLineResolverInterface, using address map files produced by a
+// compatible writer, e.g. PDBSourceLineWriter.
+//
+// see "processor/source_line_resolver_base.h"
+// and "source_line_resolver_interface.h" for more documentation.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_BASIC_SOURCE_LINE_RESOLVER_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_BASIC_SOURCE_LINE_RESOLVER_H__
+
+#include <map>
+#include <string>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/source_line_resolver_base.h"
+
+namespace google_breakpad {
+
+using std::map;
+
+class BasicSourceLineResolver : public SourceLineResolverBase {
+ public:
+ BasicSourceLineResolver();
+ virtual ~BasicSourceLineResolver() { }
+
+ using SourceLineResolverBase::LoadModule;
+ using SourceLineResolverBase::LoadModuleUsingMapBuffer;
+ using SourceLineResolverBase::LoadModuleUsingMemoryBuffer;
+ using SourceLineResolverBase::ShouldDeleteMemoryBufferAfterLoadModule;
+ using SourceLineResolverBase::UnloadModule;
+ using SourceLineResolverBase::HasModule;
+ using SourceLineResolverBase::IsModuleCorrupt;
+ using SourceLineResolverBase::FillSourceLineInfo;
+ using SourceLineResolverBase::FindWindowsFrameInfo;
+ using SourceLineResolverBase::FindCFIFrameInfo;
+
+ private:
+ // friend declarations:
+ friend class BasicModuleFactory;
+ friend class ModuleComparer;
+ friend class ModuleSerializer;
+ template<class> friend class SimpleSerializer;
+
+ // Function derives from SourceLineResolverBase::Function.
+ struct Function;
+ // Module implements SourceLineResolverBase::Module interface.
+ class Module;
+
+ // Disallow unwanted copy ctor and assignment operator
+ BasicSourceLineResolver(const BasicSourceLineResolver&);
+ void operator=(const BasicSourceLineResolver&);
+};
+
+// Helper class, containing useful methods for parsing of Breakpad symbol files.
+class SymbolParseHelper {
+ public:
+ // Parses a |file_line| declaration. Returns true on success.
+ // Format: FILE <id> <filename>.
+ // Notice, that this method modifies the input |file_line| which is why it
+ // can't be const. On success, <id>, and <filename> are stored in |*index|,
+ // and |*filename|. No allocation is done, |*filename| simply points inside
+ // |file_line|.
+ static bool ParseFile(char *file_line, // in
+ long *index, // out
+ char **filename); // out
+
+ // Parses a |function_line| declaration. Returns true on success.
+ // Format: FUNC [<multiple>] <address> <size> <stack_param_size> <name>.
+ // Notice, that this method modifies the input |function_line| which is why it
+ // can't be const. On success, the presence of <multiple>, <address>, <size>,
+ // <stack_param_size>, and <name> are stored in |*is_multiple|, |*address|,
+ // |*size|, |*stack_param_size|, and |*name|. No allocation is done, |*name|
+ // simply points inside |function_line|.
+ static bool ParseFunction(char *function_line, // in
+ bool *is_multiple, // out
+ uint64_t *address, // out
+ uint64_t *size, // out
+ long *stack_param_size, // out
+ char **name); // out
+
+ // Parses a |line| declaration. Returns true on success.
+ // Format: <address> <size> <line number> <source file id>
+ // Notice, that this method modifies the input |function_line| which is why
+ // it can't be const. On success, <address>, <size>, <line number>, and
+ // <source file id> are stored in |*address|, |*size|, |*line_number|, and
+ // |*source_file|.
+ static bool ParseLine(char *line_line, // in
+ uint64_t *address, // out
+ uint64_t *size, // out
+ long *line_number, // out
+ long *source_file); // out
+
+ // Parses a |public_line| declaration. Returns true on success.
+ // Format: PUBLIC [<multiple>] <address> <stack_param_size> <name>
+ // Notice, that this method modifies the input |function_line| which is why
+ // it can't be const. On success, the presence of <multiple>, <address>,
+ // <stack_param_size>, <name> are stored in |*is_multiple|, |*address|,
+ // |*stack_param_size|, and |*name|. No allocation is done, |*name| simply
+ // points inside |public_line|.
+ static bool ParsePublicSymbol(char *public_line, // in
+ bool *is_multiple, // out
+ uint64_t *address, // out
+ long *stack_param_size, // out
+ char **name); // out
+
+ private:
+ // Used for success checks after strtoull and strtol.
+ static bool IsValidAfterNumber(char *after_number);
+
+ // Only allow static methods.
+ SymbolParseHelper();
+ SymbolParseHelper(const SymbolParseHelper&);
+ void operator=(const SymbolParseHelper&);
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_BASIC_SOURCE_LINE_RESOLVER_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/call_stack.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/call_stack.h
new file mode 100644
index 0000000000..bf45e71bd1
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/call_stack.h
@@ -0,0 +1,97 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// call_stack.h: A call stack comprised of stack frames.
+//
+// This class manages a vector of stack frames. It is used instead of
+// exposing the vector directly to allow the CallStack to own StackFrame
+// pointers without having to publicly export the linked_ptr class. A
+// CallStack must be composed of pointers instead of objects to allow for
+// CPU-specific StackFrame subclasses.
+//
+// By convention, the stack frame at index 0 is the innermost callee frame,
+// and the frame at the highest index in a call stack is the outermost
+// caller. CallStack only allows stacks to be built by pushing frames,
+// beginning with the innermost callee frame.
+//
+// Author: Mark Mentovai
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_CALL_STACK_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_CALL_STACK_H__
+
+#include <cstdint>
+#include <string>
+#include <vector>
+
+namespace google_breakpad {
+
+using std::vector;
+using std::string;
+
+struct StackFrame;
+template<typename T> class linked_ptr;
+
+class CallStack {
+ public:
+ CallStack() { Clear(); }
+ ~CallStack();
+
+ // Resets the CallStack to its initial empty state
+ void Clear();
+
+ const vector<StackFrame*>* frames() const { return &frames_; }
+
+ // Set the TID associated with this call stack.
+ void set_tid(uint32_t tid) { tid_ = tid; }
+ void set_last_error(uint32_t last_error) { last_error_ = last_error; }
+ void set_name(const string& name) { name_ = name; }
+
+ uint32_t tid() const { return tid_; }
+ uint32_t last_error() const { return last_error_; }
+ const string name() const { return name_; }
+
+ private:
+ // Stackwalker is responsible for building the frames_ vector.
+ friend class Stackwalker;
+
+ // Storage for pushed frames.
+ vector<StackFrame*> frames_;
+
+ // The TID associated with this call stack. Default to 0 if it's not
+ // available.
+ uint32_t tid_;
+ // The last error the OS set for this thread (win32's GetLastError())
+ uint32_t last_error_;
+ // The name of this thread, empty if it's not available
+ string name_;
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_PROCSSOR_CALL_STACK_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/code_module.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/code_module.h
new file mode 100644
index 0000000000..29b8d9c9ab
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/code_module.h
@@ -0,0 +1,104 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// code_module.h: Carries information about code modules that are loaded
+// into a process.
+//
+// Author: Mark Mentovai
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_CODE_MODULE_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_CODE_MODULE_H__
+
+#include <string>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+
+namespace google_breakpad {
+
+class CodeModule {
+ public:
+ virtual ~CodeModule() {}
+
+ // The base address of this code module as it was loaded by the process.
+ // (uint64_t)-1 on error.
+ virtual uint64_t base_address() const = 0;
+
+ // The size of the code module. 0 on error.
+ virtual uint64_t size() const = 0;
+
+ // The path or file name that the code module was loaded from. Empty on
+ // error.
+ virtual string code_file() const = 0;
+
+ // An identifying string used to discriminate between multiple versions and
+ // builds of the same code module. This may contain a uuid, timestamp,
+ // version number, or any combination of this or other information, in an
+ // implementation-defined format. Empty on error.
+ virtual string code_identifier() const = 0;
+
+ // The filename containing debugging information associated with the code
+ // module. If debugging information is stored in a file separate from the
+ // code module itself (as is the case when .pdb or .dSYM files are used),
+ // this will be different from code_file. If debugging information is
+ // stored in the code module itself (possibly prior to stripping), this
+ // will be the same as code_file. Empty on error.
+ virtual string debug_file() const = 0;
+
+ // An identifying string similar to code_identifier, but identifies a
+ // specific version and build of the associated debug file. This may be
+ // the same as code_identifier when the debug_file and code_file are
+ // identical or when the same identifier is used to identify distinct
+ // debug and code files.
+ virtual string debug_identifier() const = 0;
+
+ // A human-readable representation of the code module's version. Empty on
+ // error.
+ virtual string version() const = 0;
+
+ // Creates a new copy of this CodeModule object, which the caller takes
+ // ownership of. The new CodeModule may be of a different concrete class
+ // than the CodeModule being copied, but will behave identically to the
+ // copied CodeModule as far as the CodeModule interface is concerned.
+ virtual CodeModule* Copy() const = 0;
+
+ // Getter and setter for shrink_down_delta. This is used when the address
+ // range for a module is shrunk down due to address range conflicts with
+ // other modules. The base_address and size fields are not updated and they
+ // should always reflect the original values (reported in the minidump).
+ virtual uint64_t shrink_down_delta() const = 0;
+ virtual void SetShrinkDownDelta(uint64_t shrink_down_delta) = 0;
+
+ // Whether the module was unloaded from memory.
+ virtual bool is_unloaded() const = 0;
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_CODE_MODULE_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/code_modules.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/code_modules.h
new file mode 100644
index 0000000000..74f113c19c
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/code_modules.h
@@ -0,0 +1,108 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// code_modules.h: Contains all of the CodeModule objects that were loaded
+// into a single process.
+//
+// Author: Mark Mentovai
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_CODE_MODULES_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_CODE_MODULES_H__
+
+#include <stddef.h>
+
+#include <vector>
+
+#include "google_breakpad/common/breakpad_types.h"
+#include "processor/linked_ptr.h"
+
+namespace google_breakpad {
+
+class CodeModule;
+
+class CodeModules {
+ public:
+ virtual ~CodeModules() {}
+
+ // The number of contained CodeModule objects.
+ virtual unsigned int module_count() const = 0;
+
+ // Random access to modules. Returns the module whose code is present
+ // at the address indicated by |address|. If no module is present at this
+ // address, returns NULL. Ownership of the returned CodeModule is retained
+ // by the CodeModules object; pointers returned by this method are valid for
+ // comparison with pointers returned by the other Get methods.
+ virtual const CodeModule* GetModuleForAddress(uint64_t address) const = 0;
+
+ // Returns the module corresponding to the main executable. If there is
+ // no main executable, returns NULL. Ownership of the returned CodeModule
+ // is retained by the CodeModules object; pointers returned by this method
+ // are valid for comparison with pointers returned by the other Get
+ // methods.
+ virtual const CodeModule* GetMainModule() const = 0;
+
+ // Sequential access to modules. A sequence number of 0 corresponds to the
+ // module residing lowest in memory. If the sequence number is out of
+ // range, returns NULL. Ownership of the returned CodeModule is retained
+ // by the CodeModules object; pointers returned by this method are valid for
+ // comparison with pointers returned by the other Get methods.
+ virtual const CodeModule* GetModuleAtSequence(
+ unsigned int sequence) const = 0;
+
+ // Sequential access to modules. This is similar to GetModuleAtSequence,
+ // except no ordering requirement is enforced. A CodeModules implementation
+ // may return CodeModule objects from GetModuleAtIndex in any order it
+ // wishes, provided that the order remain the same throughout the life of
+ // the CodeModules object. Typically, GetModuleAtIndex would be used by
+ // a caller to enumerate all CodeModule objects quickly when the enumeration
+ // does not require any ordering. If the index argument is out of range,
+ // returns NULL. Ownership of the returned CodeModule is retained by
+ // the CodeModules object; pointers returned by this method are valid for
+ // comparison with pointers returned by the other Get methods.
+ virtual const CodeModule* GetModuleAtIndex(unsigned int index) const = 0;
+
+ // Creates a new copy of this CodeModules object, which the caller takes
+ // ownership of. The new object will also contain copies of the existing
+ // object's child CodeModule objects. The new CodeModules object may be of
+ // a different concrete class than the object being copied, but will behave
+ // identically to the copied object as far as the CodeModules and CodeModule
+ // interfaces are concerned, except that the order that GetModuleAtIndex
+ // returns objects in may differ between a copy and the original CodeModules
+ // object.
+ virtual const CodeModules* Copy() const = 0;
+
+ // Returns a vector of all modules which address ranges needed to be shrunk
+ // down due to address range conflicts with other modules.
+ virtual std::vector<linked_ptr<const CodeModule> >
+ GetShrunkRangeModules() const = 0;
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_CODE_MODULES_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/dump_context.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/dump_context.h
new file mode 100644
index 0000000000..df80bf7ef7
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/dump_context.h
@@ -0,0 +1,116 @@
+// Copyright (c) 2014 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// dump_context.h: A (mini/micro) dump CPU-specific context.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_DUMP_CONTEXT_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_DUMP_CONTEXT_H__
+
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/dump_object.h"
+
+namespace google_breakpad {
+
+// DumpContext carries a CPU-specific MDRawContext structure, which contains CPU
+// context such as register states.
+class DumpContext : public DumpObject {
+ public:
+ virtual ~DumpContext();
+
+ // Returns an MD_CONTEXT_* value such as MD_CONTEXT_X86 or MD_CONTEXT_PPC
+ // identifying the CPU type that the context was collected from. The
+ // returned value will identify the CPU only, and will have any other
+ // MD_CONTEXT_* bits masked out. Returns 0 on failure.
+ uint32_t GetContextCPU() const;
+
+ // Return the raw value of |context_flags_|
+ uint32_t GetContextFlags() const;
+
+ // Returns raw CPU-specific context data for the named CPU type. If the
+ // context data does not match the CPU type or does not exist, returns NULL.
+ const MDRawContextAMD64* GetContextAMD64() const;
+ const MDRawContextARM* GetContextARM() const;
+ const MDRawContextARM64* GetContextARM64() const;
+ const MDRawContextMIPS* GetContextMIPS() const;
+ const MDRawContextPPC* GetContextPPC() const;
+ const MDRawContextPPC64* GetContextPPC64() const;
+ const MDRawContextSPARC* GetContextSPARC() const;
+ const MDRawContextX86* GetContextX86() const;
+
+ // A convenience method to get the instruction pointer out of the
+ // MDRawContext, since it varies per-CPU architecture.
+ bool GetInstructionPointer(uint64_t* ip) const;
+
+ // Similar to the GetInstructionPointer method, this method gets the stack
+ // pointer for all CPU architectures.
+ bool GetStackPointer(uint64_t* sp) const;
+
+ // Print a human-readable representation of the object to stdout.
+ void Print();
+
+ protected:
+ DumpContext();
+
+ // Sets row CPU-specific context data for the names CPU type.
+ void SetContextFlags(uint32_t context_flags);
+ void SetContextX86(MDRawContextX86* x86);
+ void SetContextPPC(MDRawContextPPC* ppc);
+ void SetContextPPC64(MDRawContextPPC64* ppc64);
+ void SetContextAMD64(MDRawContextAMD64* amd64);
+ void SetContextSPARC(MDRawContextSPARC* ctx_sparc);
+ void SetContextARM(MDRawContextARM* arm);
+ void SetContextARM64(MDRawContextARM64* arm64);
+ void SetContextMIPS(MDRawContextMIPS* ctx_mips);
+
+ // Free the CPU-specific context structure.
+ void FreeContext();
+
+ private:
+ // The CPU-specific context structure.
+ union {
+ MDRawContextBase* base;
+ MDRawContextX86* x86;
+ MDRawContextPPC* ppc;
+ MDRawContextPPC64* ppc64;
+ MDRawContextAMD64* amd64;
+ // on Solaris SPARC, sparc is defined as a numeric constant,
+ // so variables can NOT be named as sparc
+ MDRawContextSPARC* ctx_sparc;
+ MDRawContextARM* arm;
+ MDRawContextARM64* arm64;
+ MDRawContextMIPS* ctx_mips;
+ } context_;
+
+ // Store this separately because of the weirdo AMD64 context
+ uint32_t context_flags_;
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_DUMP_CONTEXT_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/dump_object.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/dump_object.h
new file mode 100644
index 0000000000..112f687f4c
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/dump_object.h
@@ -0,0 +1,53 @@
+// Copyright (c) 2014 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// dump_object.h: A base class for all mini/micro dump object.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_DUMP_OBJECT_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_DUMP_OBJECT_H__
+
+namespace google_breakpad {
+
+// DumpObject is the base of various mini/micro dump's objects.
+class DumpObject {
+ public:
+ DumpObject();
+
+ bool valid() const { return valid_; }
+
+ protected:
+ // DumpObjects are not valid when created. When a subclass populates its own
+ // fields, it can set valid_ to true. Accessors and mutators may wish to
+ // consider or alter the valid_ state as they interact with objects.
+ bool valid_;
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_DUMP_OBJECT_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/exception_record.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/exception_record.h
new file mode 100644
index 0000000000..eac6c90ae2
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/exception_record.h
@@ -0,0 +1,124 @@
+// Copyright (c) 2019 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// exception_record.h: A snapshot of an exception record.
+//
+// Author: Ivan Penkov
+
+#ifndef THIRD_PARTY_BREAKPAD_SRC_GOOGLE_BREAKPAD_PROCESSOR_EXCEPTION_RECORD_H_
+#define THIRD_PARTY_BREAKPAD_SRC_GOOGLE_BREAKPAD_PROCESSOR_EXCEPTION_RECORD_H_
+
+#include <vector>
+
+namespace google_breakpad {
+
+// Additional argument that describes the exception.
+class ExceptionParameter {
+ public:
+ ExceptionParameter(uint64_t value, const string& description)
+ : value_(value), description_(description) {}
+ // Accessors. See the data declarations below.
+ uint64_t value() const { return value_; }
+ void set_value(uint64_t value) { value_ = value; }
+ const string& description() const { return description_; }
+ void set_description(const string& description) {
+ description_ = description;
+ }
+
+ private:
+ // Parameter value.
+ uint64_t value_;
+ // Human readable description/interpretation of the above value.
+ string description_;
+};
+
+// A snapshot of an exception record. Contains exception record details: code,
+// flags, address, parameters.
+class ExceptionRecord {
+ public:
+ // Accessors. See the data declarations below.
+ uint32_t code() const { return code_; }
+ const string& code_description() const { return code_description_; }
+ void set_code(uint32_t code, const string& description) {
+ code_ = code;
+ code_description_ = description;
+ }
+
+ uint32_t flags() const { return flags_; }
+ const string& flags_description() const { return flags_description_; }
+ void set_flags(uint32_t flags, const string& description) {
+ flags_ = flags;
+ flags_description_ = description;
+ }
+
+ uint64_t nested_exception_record_address() const {
+ return nested_exception_record_address_;
+ }
+ void set_nested_exception_record_address(
+ uint64_t nested_exception_record_address) {
+ nested_exception_record_address_ = nested_exception_record_address;
+ }
+
+ uint64_t address() const { return address_; }
+ void set_address(uint64_t address) { address_ = address; }
+
+ const std::vector<ExceptionParameter>* parameters() const {
+ return &parameters_;
+ }
+ void add_parameter(uint64_t value, const string& description) {
+ parameters_.push_back(ExceptionParameter(value, description));
+ }
+
+ private:
+ // Exception code.
+ uint32_t code_;
+ string code_description_;
+
+ // Exception flags.
+ uint32_t flags_;
+ string flags_description_;
+
+ // The address of an associated MDException structure. Exception records can
+ // be chained together to provide additional information when nested
+ // exceptions occur.
+ uint64_t nested_exception_record_address_;
+
+ // The memory address that caused the exception. For data access errors,
+ // this will be the data address that caused the fault. For code errors,
+ // this will be the address of the instruction that caused the fault.
+ uint64_t address_;
+
+ // An array of additional arguments that describe the exception.
+ std::vector<ExceptionParameter> parameters_;
+};
+
+} // namespace google_breakpad
+
+
+#endif // THIRD_PARTY_BREAKPAD_SRC_GOOGLE_BREAKPAD_PROCESSOR_EXCEPTION_RECORD_H_
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/exploitability.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/exploitability.h
new file mode 100644
index 0000000000..014413c944
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/exploitability.h
@@ -0,0 +1,82 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// exploitability_engine.h: Generic exploitability engine.
+//
+// The Exploitability class is an abstract base class providing common
+// generic methods that apply to exploitability engines for specific platforms.
+// Specific implementations will extend this class by providing run
+// methods to fill in the exploitability_ enumeration of the ProcessState
+// for a crash.
+//
+// Author: Cris Neckar
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_H_
+#define GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_H_
+
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/processor/minidump.h"
+#include "google_breakpad/processor/process_state.h"
+
+namespace google_breakpad {
+
+class Exploitability {
+ public:
+ virtual ~Exploitability() {}
+
+ static Exploitability *ExploitabilityForPlatform(Minidump *dump,
+ ProcessState *process_state);
+
+ // The boolean parameter signals whether the exploitability engine is
+ // enabled to call out to objdump for disassembly. This is disabled by
+ // default. It is used to check the identity of the instruction that
+ // caused the program to crash. This should not be enabled if there are
+ // portability concerns.
+ static Exploitability *ExploitabilityForPlatform(Minidump *dump,
+ ProcessState *process_state,
+ bool enable_objdump);
+
+ ExploitabilityRating CheckExploitability();
+ bool AddressIsAscii(uint64_t);
+
+ protected:
+ Exploitability(Minidump *dump,
+ ProcessState *process_state);
+
+ Minidump *dump_;
+ ProcessState *process_state_;
+ SystemInfo *system_info_;
+
+ private:
+ virtual ExploitabilityRating CheckPlatformExploitability() = 0;
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_EXPLOITABILITY_H_
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/fast_source_line_resolver.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/fast_source_line_resolver.h
new file mode 100644
index 0000000000..fdf9107766
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/fast_source_line_resolver.h
@@ -0,0 +1,100 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// fast_source_line_resolver.h: FastSourceLineResolver is derived from
+// SourceLineResolverBase, and is a concrete implementation of
+// SourceLineResolverInterface.
+//
+// FastSourceLineResolver is a sibling class of BasicSourceLineResolver. The
+// difference is FastSourceLineResolver loads a serialized memory chunk of data
+// which can be used directly a Module without parsing or copying of underlying
+// data. Therefore loading a symbol in FastSourceLineResolver is much faster
+// and more memory-efficient than BasicSourceLineResolver.
+//
+// See "source_line_resolver_base.h" and
+// "google_breakpad/source_line_resolver_interface.h" for more reference.
+//
+// Author: Siyang Xie (lambxsy@google.com)
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_FAST_SOURCE_LINE_RESOLVER_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_FAST_SOURCE_LINE_RESOLVER_H__
+
+#include <map>
+#include <string>
+
+#include "google_breakpad/processor/source_line_resolver_base.h"
+
+namespace google_breakpad {
+
+using std::map;
+
+class FastSourceLineResolver : public SourceLineResolverBase {
+ public:
+ FastSourceLineResolver();
+ virtual ~FastSourceLineResolver() { }
+
+ using SourceLineResolverBase::FillSourceLineInfo;
+ using SourceLineResolverBase::FindCFIFrameInfo;
+ using SourceLineResolverBase::FindWindowsFrameInfo;
+ using SourceLineResolverBase::HasModule;
+ using SourceLineResolverBase::IsModuleCorrupt;
+ using SourceLineResolverBase::LoadModule;
+ using SourceLineResolverBase::LoadModuleUsingMapBuffer;
+ using SourceLineResolverBase::LoadModuleUsingMemoryBuffer;
+ using SourceLineResolverBase::UnloadModule;
+
+ private:
+ // Friend declarations.
+ friend class ModuleComparer;
+ friend class ModuleSerializer;
+ friend class FastModuleFactory;
+
+ // Nested types that will derive from corresponding nested types defined in
+ // SourceLineResolverBase.
+ struct Line;
+ struct Function;
+ struct PublicSymbol;
+ class Module;
+
+ // Deserialize raw memory data to construct a WindowsFrameInfo object.
+ static WindowsFrameInfo CopyWFI(const char *raw_memory);
+
+ // FastSourceLineResolver requires the memory buffer stays alive during the
+ // lifetime of a corresponding module, therefore it needs to redefine this
+ // virtual method.
+ virtual bool ShouldDeleteMemoryBufferAfterLoadModule();
+
+ // Disallow unwanted copy ctor and assignment operator
+ FastSourceLineResolver(const FastSourceLineResolver&);
+ void operator=(const FastSourceLineResolver&);
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_FAST_SOURCE_LINE_RESOLVER_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/memory_region.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/memory_region.h
new file mode 100644
index 0000000000..30f88df490
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/memory_region.h
@@ -0,0 +1,79 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// memory_region.h: Access to memory regions.
+//
+// A MemoryRegion provides virtual access to a range of memory. It is an
+// abstraction allowing the actual source of memory to be independent of
+// methods which need to access a virtual memory space.
+//
+// Author: Mark Mentovai
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_MEMORY_REGION_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_MEMORY_REGION_H__
+
+
+#include "google_breakpad/common/breakpad_types.h"
+
+
+namespace google_breakpad {
+
+
+class MemoryRegion {
+ public:
+ virtual ~MemoryRegion() {}
+
+ // The base address of this memory region.
+ virtual uint64_t GetBase() const = 0;
+
+ // The size of this memory region.
+ virtual uint32_t GetSize() const = 0;
+
+ // Access to data of various sizes within the memory region. address
+ // is a pointer to read, and it must lie within the memory region as
+ // defined by its base address and size. The location pointed to by
+ // value is set to the value at address. Byte-swapping is performed
+ // if necessary so that the value is appropriate for the running
+ // program. Returns true on success. Fails and returns false if address
+ // is out of the region's bounds (after considering the width of value),
+ // or for other types of errors.
+ virtual bool GetMemoryAtAddress(uint64_t address, uint8_t* value) const = 0;
+ virtual bool GetMemoryAtAddress(uint64_t address, uint16_t* value) const = 0;
+ virtual bool GetMemoryAtAddress(uint64_t address, uint32_t* value) const = 0;
+ virtual bool GetMemoryAtAddress(uint64_t address, uint64_t* value) const = 0;
+
+ // Print a human-readable representation of the object to stdout.
+ virtual void Print() const = 0;
+};
+
+
+} // namespace google_breakpad
+
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_MEMORY_REGION_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/microdump.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/microdump.h
new file mode 100644
index 0000000000..02ebdcd79b
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/microdump.h
@@ -0,0 +1,135 @@
+// Copyright (c) 2014 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// microdump.h: A microdump reader. Microdump is a minified variant of a
+// minidump (see minidump.h for documentation) which contains the minimum
+// amount of information required to get a stack trace for the crashing thread.
+// The information contained in a microdump is:
+// - the crashing thread stack
+// - system information (os type / version)
+// - cpu context (state of the registers)
+// - list of mmaps
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_MICRODUMP_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_MICRODUMP_H__
+
+#include <string>
+#include <vector>
+
+#include "common/scoped_ptr.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/dump_context.h"
+#include "google_breakpad/processor/memory_region.h"
+#include "google_breakpad/processor/system_info.h"
+#include "processor/basic_code_modules.h"
+
+namespace google_breakpad {
+
+// MicrodumpModuleList contains all of the loaded code modules for a process
+// in the form of MicrodumpModules. It maintains a vector of these modules
+// and provides access to a code module corresponding to a specific address.
+class MicrodumpModules : public BasicCodeModules {
+ public:
+ // Takes over ownership of |module|.
+ void Add(const CodeModule* module);
+
+ // Enables/disables module address range shrink.
+ void SetEnableModuleShrink(bool is_enabled);
+};
+
+// MicrodumpContext carries a CPU-specific context.
+// See dump_context.h for documentation.
+class MicrodumpContext : public DumpContext {
+ public:
+ virtual void SetContextARM(MDRawContextARM* arm);
+ virtual void SetContextARM64(MDRawContextARM64* arm64);
+ virtual void SetContextX86(MDRawContextX86* x86);
+ virtual void SetContextMIPS(MDRawContextMIPS* mips32);
+ virtual void SetContextMIPS64(MDRawContextMIPS* mips64);
+};
+
+// This class provides access to microdump memory regions.
+// See memory_region.h for documentation.
+class MicrodumpMemoryRegion : public MemoryRegion {
+ public:
+ MicrodumpMemoryRegion();
+ virtual ~MicrodumpMemoryRegion() {}
+
+ // Set this region's address and contents. If we have placed an
+ // instance of this class in a test fixture class, individual tests
+ // can use this to provide the region's contents.
+ void Init(uint64_t base_address, const std::vector<uint8_t>& contents);
+
+ virtual uint64_t GetBase() const;
+ virtual uint32_t GetSize() const;
+
+ virtual bool GetMemoryAtAddress(uint64_t address, uint8_t* value) const;
+ virtual bool GetMemoryAtAddress(uint64_t address, uint16_t* value) const;
+ virtual bool GetMemoryAtAddress(uint64_t address, uint32_t* value) const;
+ virtual bool GetMemoryAtAddress(uint64_t address, uint64_t* value) const;
+
+ // Print a human-readable representation of the object to stdout.
+ virtual void Print() const;
+
+ private:
+ // Fetch a little-endian value from ADDRESS in contents_ whose size
+ // is BYTES, and store it in *VALUE. Returns true on success.
+ template<typename ValueType>
+ bool GetMemoryLittleEndian(uint64_t address, ValueType* value) const;
+
+ uint64_t base_address_;
+ std::vector<uint8_t> contents_;
+};
+
+// Microdump is the user's interface to a microdump file. It provides access to
+// the microdump's context, memory regions and modules.
+class Microdump {
+ public:
+ explicit Microdump(const string& contents);
+ virtual ~Microdump() {}
+
+ DumpContext* GetContext() { return context_.get(); }
+ MicrodumpMemoryRegion* GetMemory() { return stack_region_.get(); }
+ MicrodumpModules* GetModules() { return modules_.get(); }
+ SystemInfo* GetSystemInfo() { return system_info_.get(); }
+
+ string GetCrashReason() { return crash_reason_; }
+ uint64_t GetCrashAddress() { return crash_address_; }
+ private:
+ scoped_ptr<MicrodumpContext> context_;
+ scoped_ptr<MicrodumpMemoryRegion> stack_region_;
+ scoped_ptr<MicrodumpModules> modules_;
+ scoped_ptr<SystemInfo> system_info_;
+ string crash_reason_;
+ uint64_t crash_address_;
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_MICRODUMP_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/microdump_processor.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/microdump_processor.h
new file mode 100644
index 0000000000..60d14a541f
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/microdump_processor.h
@@ -0,0 +1,64 @@
+// Copyright (c) 2014, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// The processor for microdump (a reduced dump containing only the state of the
+// crashing thread). See crbug.com/410294 for more info and design docs.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_MICRODUMP_PROCESSOR_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_MICRODUMP_PROCESSOR_H__
+
+#include <string>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/process_result.h"
+
+namespace google_breakpad {
+
+class Microdump;
+class ProcessState;
+class StackFrameSymbolizer;
+
+class MicrodumpProcessor {
+ public:
+ // Initializes the MicrodumpProcessor with a stack frame symbolizer.
+ // Does not take ownership of frame_symbolizer, which must NOT be NULL.
+ explicit MicrodumpProcessor(StackFrameSymbolizer* frame_symbolizer);
+
+ virtual ~MicrodumpProcessor();
+
+ // Processes the microdump contents and fills process_state with the result.
+ google_breakpad::ProcessResult Process(Microdump* microdump,
+ ProcessState* process_state);
+ private:
+ StackFrameSymbolizer* frame_symbolizer_;
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_MICRODUMP_PROCESSOR_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/minidump.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/minidump.h
new file mode 100644
index 0000000000..b2eab95d8a
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/minidump.h
@@ -0,0 +1,1498 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// minidump.h: A minidump reader.
+//
+// The basic structure of this module tracks the structure of the minidump
+// file itself. At the top level, a minidump file is represented by a
+// Minidump object. Like most other classes in this module, Minidump
+// provides a Read method that initializes the object with information from
+// the file. Most of the classes in this file are wrappers around the
+// "raw" structures found in the minidump file itself, and defined in
+// minidump_format.h. For example, each thread is represented by a
+// MinidumpThread object, whose parameters are specified in an MDRawThread
+// structure. A properly byte-swapped MDRawThread can be obtained from a
+// MinidumpThread easily by calling its thread() method.
+//
+// Most of the module lazily reads only the portion of the minidump file
+// necessary to fulfill the user's request. Calling Minidump::Read
+// only reads the minidump's directory. The thread list is not read until
+// it is needed, and even once it's read, the memory regions for each
+// thread's stack aren't read until they're needed. This strategy avoids
+// unnecessary file input, and allocating memory for data in which the user
+// has no interest. Note that although memory allocations for a typical
+// minidump file are not particularly large, it is possible for legitimate
+// minidumps to be sizable. A full-memory minidump, for example, contains
+// a snapshot of the entire mapped memory space. Even a normal minidump,
+// with stack memory only, can be large if, for example, the dump was
+// generated in response to a crash that occurred due to an infinite-
+// recursion bug that caused the stack's limits to be exceeded. Finally,
+// some users of this library will unfortunately find themselves in the
+// position of having to process potentially-hostile minidumps that might
+// attempt to cause problems by forcing the minidump processor to over-
+// allocate memory.
+//
+// Memory management in this module is based on a strict
+// you-don't-own-anything policy. The only object owned by the user is
+// the top-level Minidump object, the creation and destruction of which
+// must be the user's own responsibility. All other objects obtained
+// through interaction with this module are ultimately owned by the
+// Minidump object, and will be freed upon the Minidump object's destruction.
+// Because memory regions can potentially involve large allocations, a
+// FreeMemory method is provided by MinidumpMemoryRegion, allowing the user
+// to release data when it is no longer needed. Use of this method is
+// optional but recommended. If freed data is later required, it will
+// be read back in from the minidump file again.
+//
+// There is one exception to this memory management policy:
+// Minidump::ReadString will return a string object to the user, and the user
+// is responsible for its deletion.
+//
+// Author: Mark Mentovai
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_H__
+
+#include <stdint.h>
+
+#ifndef _WIN32
+#include <unistd.h>
+#endif
+
+#include <iostream>
+#include <map>
+#include <string>
+#include <vector>
+
+#include "common/basictypes.h"
+#include "common/using_std_string.h"
+#include "google_breakpad/processor/code_module.h"
+#include "google_breakpad/processor/code_modules.h"
+#include "google_breakpad/processor/dump_context.h"
+#include "google_breakpad/processor/dump_object.h"
+#include "google_breakpad/processor/memory_region.h"
+#include "google_breakpad/processor/proc_maps_linux.h"
+
+
+namespace google_breakpad {
+
+
+using std::map;
+using std::vector;
+
+
+class Minidump;
+template<typename AddressType, typename EntryType> class RangeMap;
+
+
+// MinidumpObject is the base of all Minidump* objects except for Minidump
+// itself.
+class MinidumpObject : public DumpObject {
+ public:
+ virtual ~MinidumpObject() {}
+
+ protected:
+ explicit MinidumpObject(Minidump* minidump);
+
+ // Refers to the Minidump object that is the ultimate parent of this
+ // Some MinidumpObjects are owned by other MinidumpObjects, but at the
+ // root of the ownership tree is always a Minidump. The Minidump object
+ // is kept here for access to its seeking and reading facilities, and
+ // for access to data about the minidump file itself, such as whether
+ // it should be byte-swapped.
+ Minidump* minidump_;
+};
+
+
+// This class exists primarily to provide a virtual destructor in a base
+// class common to all objects that might be stored in
+// Minidump::mStreamObjects. Some object types will never be stored in
+// Minidump::mStreamObjects, but are represented as streams and adhere to the
+// same interface, and may be derived from this class.
+class MinidumpStream : public MinidumpObject {
+ public:
+ virtual ~MinidumpStream() {}
+
+ protected:
+ explicit MinidumpStream(Minidump* minidump);
+
+ private:
+ // Populate (and validate) the MinidumpStream. minidump_ is expected
+ // to be positioned at the beginning of the stream, so that the next
+ // read from the minidump will be at the beginning of the stream.
+ // expected_size should be set to the stream's length as contained in
+ // the MDRawDirectory record or other identifying record. A class
+ // that implements MinidumpStream can compare expected_size to a
+ // known size as an integrity check.
+ virtual bool Read(uint32_t expected_size) = 0;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpStream);
+};
+
+
+// MinidumpContext carries a CPU-specific MDRawContext structure, which
+// contains CPU context such as register states. Each thread has its
+// own context, and the exception record, if present, also has its own
+// context. Note that if the exception record is present, the context it
+// refers to is probably what the user wants to use for the exception
+// thread, instead of that thread's own context. The exception thread's
+// context (as opposed to the exception record's context) will contain
+// context for the exception handler (which performs minidump generation),
+// and not the context that caused the exception (which is probably what the
+// user wants).
+class MinidumpContext : public DumpContext {
+ public:
+ virtual ~MinidumpContext();
+
+ protected:
+ explicit MinidumpContext(Minidump* minidump);
+
+ private:
+ friend class MinidumpThread;
+ friend class MinidumpException;
+
+ bool Read(uint32_t expected_size);
+
+ // If the minidump contains a SYSTEM_INFO_STREAM, makes sure that the
+ // system info stream gives an appropriate CPU type matching the context
+ // CPU type in context_cpu_type. Returns false if the CPU type does not
+ // match. Returns true if the CPU type matches or if the minidump does
+ // not contain a system info stream.
+ bool CheckAgainstSystemInfo(uint32_t context_cpu_type);
+
+ // Refers to the Minidump object that is the ultimate parent of this
+ // Some MinidumpObjects are owned by other MinidumpObjects, but at the
+ // root of the ownership tree is always a Minidump. The Minidump object
+ // is kept here for access to its seeking and reading facilities, and
+ // for access to data about the minidump file itself, such as whether
+ // it should be byte-swapped.
+ Minidump* minidump_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpContext);
+};
+
+
+// MinidumpMemoryRegion does not wrap any MDRaw structure, and only contains
+// a reference to an MDMemoryDescriptor. This object is intended to wrap
+// portions of a minidump file that contain memory dumps. In normal
+// minidumps, each MinidumpThread owns a MinidumpMemoryRegion corresponding
+// to the thread's stack memory. MinidumpMemoryList also gives access to
+// memory regions in its list as MinidumpMemoryRegions. This class
+// adheres to MemoryRegion so that it may be used as a data provider to
+// the Stackwalker family of classes.
+class MinidumpMemoryRegion : public MinidumpObject,
+ public MemoryRegion {
+ public:
+ virtual ~MinidumpMemoryRegion();
+
+ static void set_max_bytes(uint32_t max_bytes) { max_bytes_ = max_bytes; }
+ static uint32_t max_bytes() { return max_bytes_; }
+
+ // Returns a pointer to the base of the memory region. Returns the
+ // cached value if available, otherwise, reads the minidump file and
+ // caches the memory region.
+ const uint8_t* GetMemory() const;
+
+ // The address of the base of the memory region.
+ uint64_t GetBase() const;
+
+ // The size, in bytes, of the memory region.
+ uint32_t GetSize() const;
+
+ // Frees the cached memory region, if cached.
+ void FreeMemory();
+
+ // Obtains the value of memory at the pointer specified by address.
+ bool GetMemoryAtAddress(uint64_t address, uint8_t* value) const;
+ bool GetMemoryAtAddress(uint64_t address, uint16_t* value) const;
+ bool GetMemoryAtAddress(uint64_t address, uint32_t* value) const;
+ bool GetMemoryAtAddress(uint64_t address, uint64_t* value) const;
+
+ // Print a human-readable representation of the object to stdout.
+ void Print() const;
+ void SetPrintMode(bool hexdump, unsigned int width);
+
+ protected:
+ explicit MinidumpMemoryRegion(Minidump* minidump);
+
+ private:
+ friend class MinidumpThread;
+ friend class MinidumpMemoryList;
+
+ // Identify the base address and size of the memory region, and the
+ // location it may be found in the minidump file.
+ void SetDescriptor(MDMemoryDescriptor* descriptor);
+
+ // Implementation for GetMemoryAtAddress
+ template<typename T> bool GetMemoryAtAddressInternal(uint64_t address,
+ T* value) const;
+
+ // Knobs for controlling display of memory printing.
+ bool hexdump_;
+ unsigned int hexdump_width_;
+
+ // The largest memory region that will be read from a minidump.
+ static uint32_t max_bytes_;
+
+ // Base address and size of the memory region, and its position in the
+ // minidump file.
+ MDMemoryDescriptor* descriptor_;
+
+ // Cached memory.
+ mutable vector<uint8_t>* memory_;
+};
+
+
+// MinidumpThread contains information about a thread of execution,
+// including a snapshot of the thread's stack and CPU context. For
+// the thread that caused an exception, the context carried by
+// MinidumpException is probably desired instead of the CPU context
+// provided here.
+// Note that a MinidumpThread may be valid() even if it does not
+// contain a memory region or context.
+class MinidumpThread : public MinidumpObject {
+ public:
+ virtual ~MinidumpThread();
+
+ const MDRawThread* thread() const { return valid_ ? &thread_ : NULL; }
+ // GetMemory may return NULL even if the MinidumpThread is valid,
+ // if the thread memory cannot be read.
+ virtual MinidumpMemoryRegion* GetMemory();
+ // Corresponds to win32's GetLastError function, which records the last
+ // error value set by the OS for this thread. A more useful error message
+ // can be produced by passing this value to FormatMessage:
+ //
+ // https://docs.microsoft.com/windows/win32/debug/retrieving-the-last-error-code
+ //
+ // The value may also be looked up in Microsoft's System Error Codes listing:
+ //
+ // https://docs.microsoft.com/windows/win32/debug/system-error-codes
+ virtual uint32_t GetLastError();
+ // GetContext may return NULL even if the MinidumpThread is valid.
+ virtual MinidumpContext* GetContext();
+
+ // The thread ID is used to determine if a thread is the exception thread,
+ // so a special getter is provided to retrieve this data from the
+ // MDRawThread structure. Returns false if the thread ID cannot be
+ // determined.
+ virtual bool GetThreadID(uint32_t *thread_id) const;
+
+ // Print a human-readable representation of the object to stdout.
+ void Print();
+
+ // Returns the start address of the thread stack memory region. Returns 0 if
+ // MinidumpThread is invalid. Note that this method can be called even when
+ // the thread memory cannot be read and GetMemory returns NULL.
+ virtual uint64_t GetStartOfStackMemoryRange() const;
+
+ protected:
+ explicit MinidumpThread(Minidump* minidump);
+
+ private:
+ // These objects are managed by MinidumpThreadList.
+ friend class MinidumpThreadList;
+
+ // This works like MinidumpStream::Read, but is driven by
+ // MinidumpThreadList. No size checking is done, because
+ // MinidumpThreadList handles that directly.
+ bool Read();
+
+ MDRawThread thread_;
+ MinidumpMemoryRegion* memory_;
+ MinidumpContext* context_;
+};
+
+
+// MinidumpThreadList contains all of the threads (as MinidumpThreads) in
+// a process.
+class MinidumpThreadList : public MinidumpStream {
+ public:
+ virtual ~MinidumpThreadList();
+
+ static void set_max_threads(uint32_t max_threads) {
+ max_threads_ = max_threads;
+ }
+ static uint32_t max_threads() { return max_threads_; }
+
+ virtual unsigned int thread_count() const {
+ return valid_ ? thread_count_ : 0;
+ }
+
+ // Sequential access to threads.
+ virtual MinidumpThread* GetThreadAtIndex(unsigned int index) const;
+
+ // Random access to threads.
+ MinidumpThread* GetThreadByID(uint32_t thread_id);
+
+ // Print a human-readable representation of the object to stdout.
+ void Print();
+
+ protected:
+ explicit MinidumpThreadList(Minidump* aMinidump);
+
+ private:
+ friend class Minidump;
+
+ typedef map<uint32_t, MinidumpThread*> IDToThreadMap;
+ typedef vector<MinidumpThread> MinidumpThreads;
+
+ static const uint32_t kStreamType = MD_THREAD_LIST_STREAM;
+
+ bool Read(uint32_t aExpectedSize) override;
+
+ // The largest number of threads that will be read from a minidump. The
+ // default is 256.
+ static uint32_t max_threads_;
+
+ // Access to threads using the thread ID as the key.
+ IDToThreadMap id_to_thread_map_;
+
+ // The list of threads.
+ MinidumpThreads* threads_;
+ uint32_t thread_count_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpThreadList);
+};
+
+
+// MinidumpModule wraps MDRawModule, which contains information about loaded
+// code modules. Access is provided to various data referenced indirectly
+// by MDRawModule, such as the module's name and a specification for where
+// to locate debugging information for the module.
+class MinidumpModule : public MinidumpObject,
+ public CodeModule {
+ public:
+ virtual ~MinidumpModule();
+
+ static void set_max_cv_bytes(uint32_t max_cv_bytes) {
+ max_cv_bytes_ = max_cv_bytes;
+ }
+ static uint32_t max_cv_bytes() { return max_cv_bytes_; }
+
+ static void set_max_misc_bytes(uint32_t max_misc_bytes) {
+ max_misc_bytes_ = max_misc_bytes;
+ }
+ static uint32_t max_misc_bytes() { return max_misc_bytes_; }
+
+ const MDRawModule* module() const { return valid_ ? &module_ : NULL; }
+
+ // CodeModule implementation
+ virtual uint64_t base_address() const {
+ return valid_ ? module_.base_of_image : static_cast<uint64_t>(-1);
+ }
+ virtual uint64_t size() const { return valid_ ? module_.size_of_image : 0; }
+ virtual string code_file() const;
+ virtual string code_identifier() const;
+ virtual string debug_file() const;
+ virtual string debug_identifier() const;
+ virtual string version() const;
+ virtual CodeModule* Copy() const;
+ virtual bool is_unloaded() const { return false; }
+
+ // Getter and setter for shrink_down_delta. This is used when the address
+ // range for a module is shrunk down due to address range conflicts with
+ // other modules. The base_address and size fields are not updated and they
+ // should always reflect the original values (reported in the minidump).
+ virtual uint64_t shrink_down_delta() const;
+ virtual void SetShrinkDownDelta(uint64_t shrink_down_delta);
+
+ // The CodeView record, which contains information to locate the module's
+ // debugging information (pdb). This is returned as uint8_t* because
+ // the data can be of types MDCVInfoPDB20* or MDCVInfoPDB70*, or it may be
+ // of a type unknown to Breakpad, in which case the raw data will still be
+ // returned but no byte-swapping will have been performed. Check the
+ // record's signature in the first four bytes to differentiate between
+ // the various types. Current toolchains generate modules which carry
+ // MDCVInfoPDB70 by default. Returns a pointer to the CodeView record on
+ // success, and NULL on failure. On success, the optional |size| argument
+ // is set to the size of the CodeView record.
+ const uint8_t* GetCVRecord(uint32_t* size);
+
+ // The miscellaneous debug record, which is obsolete. Current toolchains
+ // do not generate this type of debugging information (dbg), and this
+ // field is not expected to be present. Returns a pointer to the debugging
+ // record on success, and NULL on failure. On success, the optional |size|
+ // argument is set to the size of the debugging record.
+ const MDImageDebugMisc* GetMiscRecord(uint32_t* size);
+
+ // Print a human-readable representation of the object to stdout.
+ void Print();
+
+ private:
+ // These objects are managed by MinidumpModuleList.
+ friend class MinidumpModuleList;
+
+ explicit MinidumpModule(Minidump* minidump);
+
+ // This works like MinidumpStream::Read, but is driven by
+ // MinidumpModuleList. No size checking is done, because
+ // MinidumpModuleList handles that directly.
+ bool Read();
+
+ // Reads indirectly-referenced data, including the module name, CodeView
+ // record, and miscellaneous debugging record. This is necessary to allow
+ // MinidumpModuleList to fully construct MinidumpModule objects without
+ // requiring seeks to read a contiguous set of MinidumpModule objects.
+ // All auxiliary data should be available when Read is called, in order to
+ // allow the CodeModule getters to be const methods.
+ bool ReadAuxiliaryData();
+
+ // The largest number of bytes that will be read from a minidump for a
+ // CodeView record or miscellaneous debugging record, respectively. The
+ // default for each is 1024.
+ static uint32_t max_cv_bytes_;
+ static uint32_t max_misc_bytes_;
+
+ // True after a successful Read. This is different from valid_, which is
+ // not set true until ReadAuxiliaryData also completes successfully.
+ // module_valid_ is only used by ReadAuxiliaryData and the functions it
+ // calls to determine whether the object is ready for auxiliary data to
+ // be read.
+ bool module_valid_;
+
+ // True if debug info was read from the module. Certain modules
+ // may contain debug records in formats we don't support,
+ // so we can just set this to false to ignore them.
+ bool has_debug_info_;
+
+ MDRawModule module_;
+
+ // Cached module name.
+ const string* name_;
+
+ // Cached CodeView record - this is MDCVInfoPDB20 or (likely)
+ // MDCVInfoPDB70, or possibly something else entirely. Stored as a uint8_t
+ // because the structure contains a variable-sized string and its exact
+ // size cannot be known until it is processed.
+ vector<uint8_t>* cv_record_;
+
+ // If cv_record_ is present, cv_record_signature_ contains a copy of the
+ // CodeView record's first four bytes, for ease of determinining the
+ // type of structure that cv_record_ contains.
+ uint32_t cv_record_signature_;
+
+ // Cached MDImageDebugMisc (usually not present), stored as uint8_t
+ // because the structure contains a variable-sized string and its exact
+ // size cannot be known until it is processed.
+ vector<uint8_t>* misc_record_;
+};
+
+
+// MinidumpModuleList contains all of the loaded code modules for a process
+// in the form of MinidumpModules. It maintains a map of these modules
+// so that it may easily provide a code module corresponding to a specific
+// address.
+class MinidumpModuleList : public MinidumpStream,
+ public CodeModules {
+ public:
+ virtual ~MinidumpModuleList();
+
+ static void set_max_modules(uint32_t max_modules) {
+ max_modules_ = max_modules;
+ }
+ static uint32_t max_modules() { return max_modules_; }
+
+ // CodeModules implementation.
+ virtual unsigned int module_count() const {
+ return valid_ ? module_count_ : 0;
+ }
+ virtual const MinidumpModule* GetModuleForAddress(uint64_t address) const;
+ virtual const MinidumpModule* GetMainModule() const;
+ virtual const MinidumpModule* GetModuleAtSequence(
+ unsigned int sequence) const;
+ virtual const MinidumpModule* GetModuleAtIndex(unsigned int index) const;
+ virtual const CodeModules* Copy() const;
+
+ // Returns a vector of all modules which address ranges needed to be shrunk
+ // down due to address range conflicts with other modules.
+ virtual vector<linked_ptr<const CodeModule> > GetShrunkRangeModules() const;
+
+ // Print a human-readable representation of the object to stdout.
+ void Print();
+
+ protected:
+ explicit MinidumpModuleList(Minidump* minidump);
+
+ private:
+ friend class Minidump;
+
+ typedef vector<MinidumpModule> MinidumpModules;
+
+ static const uint32_t kStreamType = MD_MODULE_LIST_STREAM;
+
+ bool Read(uint32_t expected_size);
+
+ bool StoreRange(const MinidumpModule& module,
+ uint64_t base_address,
+ uint32_t module_index,
+ uint32_t module_count,
+ bool is_android);
+
+ // The largest number of modules that will be read from a minidump. The
+ // default is 1024.
+ static uint32_t max_modules_;
+
+ // Access to modules using addresses as the key.
+ RangeMap<uint64_t, unsigned int> *range_map_;
+
+ MinidumpModules *modules_;
+ uint32_t module_count_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpModuleList);
+};
+
+
+// MinidumpMemoryList corresponds to a minidump's MEMORY_LIST_STREAM stream,
+// which references the snapshots of all of the memory regions contained
+// within the minidump. For a normal minidump, this includes stack memory
+// (also referenced by each MinidumpThread, in fact, the MDMemoryDescriptors
+// here and in MDRawThread both point to exactly the same data in a
+// minidump file, conserving space), as well as a 256-byte snapshot of memory
+// surrounding the instruction pointer in the case of an exception. Other
+// types of minidumps may contain significantly more memory regions. Full-
+// memory minidumps contain all of a process' mapped memory.
+class MinidumpMemoryList : public MinidumpStream {
+ public:
+ virtual ~MinidumpMemoryList();
+
+ static void set_max_regions(uint32_t max_regions) {
+ max_regions_ = max_regions;
+ }
+ static uint32_t max_regions() { return max_regions_; }
+
+ unsigned int region_count() const { return valid_ ? region_count_ : 0; }
+
+ // Sequential access to memory regions.
+ MinidumpMemoryRegion* GetMemoryRegionAtIndex(unsigned int index);
+
+ // Random access to memory regions. Returns the region encompassing
+ // the address identified by address.
+ virtual MinidumpMemoryRegion* GetMemoryRegionForAddress(uint64_t address);
+
+ // Print a human-readable representation of the object to stdout.
+ void Print();
+
+ private:
+ friend class Minidump;
+ friend class MockMinidumpMemoryList;
+
+ typedef vector<MDMemoryDescriptor> MemoryDescriptors;
+ typedef vector<MinidumpMemoryRegion> MemoryRegions;
+
+ static const uint32_t kStreamType = MD_MEMORY_LIST_STREAM;
+
+ explicit MinidumpMemoryList(Minidump* minidump);
+
+ bool Read(uint32_t expected_size) override;
+
+ // The largest number of memory regions that will be read from a minidump.
+ // The default is 256.
+ static uint32_t max_regions_;
+
+ // Access to memory regions using addresses as the key.
+ RangeMap<uint64_t, unsigned int> *range_map_;
+
+ // The list of descriptors. This is maintained separately from the list
+ // of regions, because MemoryRegion doesn't own its MemoryDescriptor, it
+ // maintains a pointer to it. descriptors_ provides the storage for this
+ // purpose.
+ MemoryDescriptors *descriptors_;
+
+ // The list of regions.
+ MemoryRegions *regions_;
+ uint32_t region_count_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpMemoryList);
+};
+
+
+// MinidumpException wraps MDRawExceptionStream, which contains information
+// about the exception that caused the minidump to be generated, if the
+// minidump was generated in an exception handler called as a result of an
+// exception. It also provides access to a MinidumpContext object, which
+// contains the CPU context for the exception thread at the time the exception
+// occurred.
+class MinidumpException : public MinidumpStream {
+ public:
+ virtual ~MinidumpException();
+
+ const MDRawExceptionStream* exception() const {
+ return valid_ ? &exception_ : NULL;
+ }
+
+ // The thread ID is used to determine if a thread is the exception thread,
+ // so a special getter is provided to retrieve this data from the
+ // MDRawExceptionStream structure. Returns false if the thread ID cannot
+ // be determined.
+ bool GetThreadID(uint32_t *thread_id) const;
+
+ MinidumpContext* GetContext();
+
+ // Print a human-readable representation of the object to stdout.
+ void Print();
+
+ private:
+ friend class Minidump;
+
+ static const uint32_t kStreamType = MD_EXCEPTION_STREAM;
+
+ explicit MinidumpException(Minidump* minidump);
+
+ bool Read(uint32_t expected_size) override;
+
+ MDRawExceptionStream exception_;
+ MinidumpContext* context_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpException);
+};
+
+// MinidumpAssertion wraps MDRawAssertionInfo, which contains information
+// about an assertion that caused the minidump to be generated.
+class MinidumpAssertion : public MinidumpStream {
+ public:
+ virtual ~MinidumpAssertion();
+
+ const MDRawAssertionInfo* assertion() const {
+ return valid_ ? &assertion_ : NULL;
+ }
+
+ string expression() const {
+ return valid_ ? expression_ : "";
+ }
+
+ string function() const {
+ return valid_ ? function_ : "";
+ }
+
+ string file() const {
+ return valid_ ? file_ : "";
+ }
+
+ // Print a human-readable representation of the object to stdout.
+ void Print();
+
+ private:
+ friend class Minidump;
+
+ static const uint32_t kStreamType = MD_ASSERTION_INFO_STREAM;
+
+ explicit MinidumpAssertion(Minidump* minidump);
+
+ bool Read(uint32_t expected_size) override;
+
+ MDRawAssertionInfo assertion_;
+ string expression_;
+ string function_;
+ string file_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpAssertion);
+};
+
+
+// MinidumpSystemInfo wraps MDRawSystemInfo and provides information about
+// the system on which the minidump was generated. See also MinidumpMiscInfo.
+class MinidumpSystemInfo : public MinidumpStream {
+ public:
+ virtual ~MinidumpSystemInfo();
+
+ const MDRawSystemInfo* system_info() const {
+ return valid_ ? &system_info_ : NULL;
+ }
+
+ // GetOS and GetCPU return textual representations of the operating system
+ // and CPU that produced the minidump. Unlike most other Minidump* methods,
+ // they return string objects, not weak pointers. Defined values for
+ // GetOS() are "mac", "windows", and "linux". Defined values for GetCPU
+ // are "x86" and "ppc". These methods return an empty string when their
+ // values are unknown.
+ string GetOS();
+ string GetCPU();
+
+ // I don't know what CSD stands for, but this field is documented as
+ // returning a textual representation of the OS service pack. On other
+ // platforms, this provides additional information about an OS version
+ // level beyond major.minor.micro. Returns NULL if unknown.
+ const string* GetCSDVersion();
+
+ // If a CPU vendor string can be determined, returns a pointer to it,
+ // otherwise, returns NULL. CPU vendor strings can be determined from
+ // x86 CPUs with CPUID 0.
+ const string* GetCPUVendor();
+
+ // Print a human-readable representation of the object to stdout.
+ void Print();
+
+ protected:
+ explicit MinidumpSystemInfo(Minidump* minidump);
+ MDRawSystemInfo system_info_;
+
+ // Textual representation of the OS service pack, for minidumps produced
+ // by MiniDumpWriteDump on Windows.
+ const string* csd_version_;
+
+ private:
+ friend class Minidump;
+
+ static const uint32_t kStreamType = MD_SYSTEM_INFO_STREAM;
+
+ bool Read(uint32_t expected_size) override;
+
+ // A string identifying the CPU vendor, if known.
+ const string* cpu_vendor_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpSystemInfo);
+};
+
+
+// MinidumpUnloadedModule wraps MDRawUnloadedModule
+class MinidumpUnloadedModule : public MinidumpObject,
+ public CodeModule {
+ public:
+ ~MinidumpUnloadedModule() override;
+
+ const MDRawUnloadedModule* module() const {
+ return valid_ ? &unloaded_module_ : NULL;
+ }
+
+ // CodeModule implementation
+ uint64_t base_address() const override {
+ return valid_ ? unloaded_module_.base_of_image : 0;
+ }
+ uint64_t size() const override {
+ return valid_ ? unloaded_module_.size_of_image : 0;
+ }
+ string code_file() const override;
+ string code_identifier() const override;
+ string debug_file() const override;
+ string debug_identifier() const override;
+ string version() const override;
+ CodeModule* Copy() const override;
+ bool is_unloaded() const override { return true; }
+ uint64_t shrink_down_delta() const override;
+ void SetShrinkDownDelta(uint64_t shrink_down_delta) override;
+
+ // Print a human-readable representation of the object to stdout.
+ void Print();
+
+ protected:
+ explicit MinidumpUnloadedModule(Minidump* minidump);
+
+ private:
+ // These objects are managed by MinidumpUnloadedModuleList
+ friend class MinidumpUnloadedModuleList;
+
+ // This works like MinidumpStream::Read, but is driven by
+ // MinidumpUnloadedModuleList.
+ bool Read(uint32_t expected_size);
+
+ // Reads the module name. This is done separately from Read to
+ // allow contiguous reading of code modules by MinidumpUnloadedModuleList.
+ bool ReadAuxiliaryData();
+
+ // True after a successful Read. This is different from valid_, which
+ // is not set true until ReadAuxiliaryData also completes successfully.
+ // module_valid_ is only used by ReadAuxiliaryData and the functions it
+ // calls to determine whether the object is ready for auxiliary data to
+ // be read.
+ bool module_valid_;
+
+ MDRawUnloadedModule unloaded_module_;
+
+ // Cached module name
+ const string* name_;
+};
+
+
+// MinidumpUnloadedModuleList contains all the unloaded code modules for a
+// process in the form of MinidumpUnloadedModules. It maintains a map of
+// these modules so that it may easily provide a code module corresponding
+// to a specific address. If multiple modules in the list have identical
+// ranges, only the first module encountered is recorded in the range map.
+class MinidumpUnloadedModuleList : public MinidumpStream,
+ public CodeModules {
+ public:
+ ~MinidumpUnloadedModuleList() override;
+
+ static void set_max_modules(uint32_t max_modules) {
+ max_modules_ = max_modules;
+ }
+ static uint32_t max_modules() { return max_modules_; }
+
+ // CodeModules implementation.
+ unsigned int module_count() const override {
+ return valid_ ? module_count_ : 0;
+ }
+ const MinidumpUnloadedModule*
+ GetModuleForAddress(uint64_t address) const override;
+ const MinidumpUnloadedModule* GetMainModule() const override;
+ const MinidumpUnloadedModule*
+ GetModuleAtSequence(unsigned int sequence) const override;
+ const MinidumpUnloadedModule*
+ GetModuleAtIndex(unsigned int index) const override;
+ const CodeModules* Copy() const override;
+ vector<linked_ptr<const CodeModule>> GetShrunkRangeModules() const override;
+
+ // Print a human-readable representation of the object to stdout.
+ void Print();
+
+ protected:
+ explicit MinidumpUnloadedModuleList(Minidump* minidump_);
+
+ private:
+ friend class Minidump;
+
+ typedef vector<MinidumpUnloadedModule> MinidumpUnloadedModules;
+
+ static const uint32_t kStreamType = MD_UNLOADED_MODULE_LIST_STREAM;
+
+ bool Read(uint32_t expected_size_) override;
+
+ // The largest number of modules that will be read from a minidump. The
+ // default is 1024.
+ static uint32_t max_modules_;
+
+ // Access to module indices using addresses as the key.
+ RangeMap<uint64_t, unsigned int> *range_map_;
+
+ MinidumpUnloadedModules *unloaded_modules_;
+ uint32_t module_count_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpUnloadedModuleList);
+};
+
+
+// MinidumpMiscInfo wraps MDRawMiscInfo and provides information about
+// the process that generated the minidump, and optionally additional system
+// information. See also MinidumpSystemInfo.
+class MinidumpMiscInfo : public MinidumpStream {
+ public:
+ const MDRawMiscInfo* misc_info() const {
+ return valid_ ? &misc_info_ : NULL;
+ }
+
+ // Print a human-readable representation of the object to stdout.
+ void Print();
+
+ private:
+ friend class Minidump;
+ friend class TestMinidumpMiscInfo;
+
+ static const uint32_t kStreamType = MD_MISC_INFO_STREAM;
+
+ explicit MinidumpMiscInfo(Minidump* minidump_);
+
+ bool Read(uint32_t expected_size_) override;
+
+ MDRawMiscInfo misc_info_;
+
+ // Populated by Read. Contains the converted strings from the corresponding
+ // UTF-16 fields in misc_info_
+ string standard_name_;
+ string daylight_name_;
+ string build_string_;
+ string dbg_bld_str_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpMiscInfo);
+};
+
+
+// MinidumpBreakpadInfo wraps MDRawBreakpadInfo, which is an optional stream in
+// a minidump that provides additional information about the process state
+// at the time the minidump was generated.
+class MinidumpBreakpadInfo : public MinidumpStream {
+ public:
+ const MDRawBreakpadInfo* breakpad_info() const {
+ return valid_ ? &breakpad_info_ : NULL;
+ }
+
+ // These thread IDs are used to determine if threads deserve special
+ // treatment, so special getters are provided to retrieve this data from
+ // the MDRawBreakpadInfo structure. The getters return false if the thread
+ // IDs cannot be determined.
+ bool GetDumpThreadID(uint32_t *thread_id) const;
+ bool GetRequestingThreadID(uint32_t *thread_id) const;
+
+ // Print a human-readable representation of the object to stdout.
+ void Print();
+
+ private:
+ friend class Minidump;
+
+ static const uint32_t kStreamType = MD_BREAKPAD_INFO_STREAM;
+
+ explicit MinidumpBreakpadInfo(Minidump* minidump_);
+
+ bool Read(uint32_t expected_size_) override;
+
+ MDRawBreakpadInfo breakpad_info_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpBreakpadInfo);
+};
+
+// MinidumpMemoryInfo wraps MDRawMemoryInfo, which provides information
+// about mapped memory regions in a process, including their ranges
+// and protection.
+class MinidumpMemoryInfo : public MinidumpObject {
+ public:
+ const MDRawMemoryInfo* info() const { return valid_ ? &memory_info_ : NULL; }
+
+ // The address of the base of the memory region.
+ uint64_t GetBase() const { return valid_ ? memory_info_.base_address : 0; }
+
+ // The size, in bytes, of the memory region.
+ uint64_t GetSize() const { return valid_ ? memory_info_.region_size : 0; }
+
+ // Return true if the memory protection allows execution.
+ bool IsExecutable() const;
+
+ // Return true if the memory protection allows writing.
+ bool IsWritable() const;
+
+ // Print a human-readable representation of the object to stdout.
+ void Print();
+
+ private:
+ // These objects are managed by MinidumpMemoryInfoList.
+ friend class MinidumpMemoryInfoList;
+
+ explicit MinidumpMemoryInfo(Minidump* minidump_);
+
+ // This works like MinidumpStream::Read, but is driven by
+ // MinidumpMemoryInfoList. No size checking is done, because
+ // MinidumpMemoryInfoList handles that directly.
+ bool Read();
+
+ MDRawMemoryInfo memory_info_;
+};
+
+// MinidumpMemoryInfoList contains a list of information about
+// mapped memory regions for a process in the form of MDRawMemoryInfo.
+// It maintains a map of these structures so that it may easily provide
+// info corresponding to a specific address.
+class MinidumpMemoryInfoList : public MinidumpStream {
+ public:
+ virtual ~MinidumpMemoryInfoList();
+
+ unsigned int info_count() const { return valid_ ? info_count_ : 0; }
+
+ const MinidumpMemoryInfo* GetMemoryInfoForAddress(uint64_t address) const;
+ const MinidumpMemoryInfo* GetMemoryInfoAtIndex(unsigned int index) const;
+
+ // Print a human-readable representation of the object to stdout.
+ void Print();
+
+ private:
+ friend class Minidump;
+
+ typedef vector<MinidumpMemoryInfo> MinidumpMemoryInfos;
+
+ static const uint32_t kStreamType = MD_MEMORY_INFO_LIST_STREAM;
+
+ explicit MinidumpMemoryInfoList(Minidump* minidump_);
+
+ bool Read(uint32_t expected_size) override;
+
+ // Access to memory info using addresses as the key.
+ RangeMap<uint64_t, unsigned int> *range_map_;
+
+ MinidumpMemoryInfos* infos_;
+ uint32_t info_count_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpMemoryInfoList);
+};
+
+// MinidumpLinuxMaps wraps information about a single mapped memory region
+// from /proc/self/maps.
+class MinidumpLinuxMaps : public MinidumpObject {
+ public:
+ // The memory address of the base of the mapped region.
+ uint64_t GetBase() const { return valid_ ? region_.start : 0; }
+ // The size of the mapped region.
+ uint64_t GetSize() const { return valid_ ? region_.end - region_.start : 0; }
+
+ // The permissions of the mapped region.
+ bool IsReadable() const {
+ return valid_ ? region_.permissions & MappedMemoryRegion::READ : false;
+ }
+ bool IsWriteable() const {
+ return valid_ ? region_.permissions & MappedMemoryRegion::WRITE : false;
+ }
+ bool IsExecutable() const {
+ return valid_ ? region_.permissions & MappedMemoryRegion::EXECUTE : false;
+ }
+ bool IsPrivate() const {
+ return valid_ ? region_.permissions & MappedMemoryRegion::PRIVATE : false;
+ }
+
+ // The offset of the mapped region.
+ uint64_t GetOffset() const { return valid_ ? region_.offset : 0; }
+
+ // The major device number.
+ uint8_t GetMajorDevice() const { return valid_ ? region_.major_device : 0; }
+ // The minor device number.
+ uint8_t GetMinorDevice() const { return valid_ ? region_.minor_device : 0; }
+
+ // The inode of the mapped region.
+ uint64_t GetInode() const { return valid_ ? region_.inode : 0; }
+
+ // The pathname of the mapped region.
+ const string GetPathname() const { return valid_ ? region_.path : ""; }
+
+ // Print the contents of this mapping.
+ void Print() const;
+
+ private:
+ // These objects are managed by MinidumpLinuxMapsList.
+ friend class MinidumpLinuxMapsList;
+
+ // This caller owns the pointer.
+ explicit MinidumpLinuxMaps(Minidump *minidump);
+
+ // The memory region struct that this class wraps.
+ MappedMemoryRegion region_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpLinuxMaps);
+};
+
+// MinidumpLinuxMapsList corresponds to the Linux-exclusive MD_LINUX_MAPS
+// stream, which contains the contents of /prod/self/maps, which contains
+// the mapped memory regions and their access permissions.
+class MinidumpLinuxMapsList : public MinidumpStream {
+ public:
+ virtual ~MinidumpLinuxMapsList();
+
+ // Get number of mappings.
+ unsigned int get_maps_count() const { return valid_ ? maps_count_ : 0; }
+
+ // Get mapping at the given memory address. The caller owns the pointer.
+ const MinidumpLinuxMaps *GetLinuxMapsForAddress(uint64_t address) const;
+ // Get mapping at the given index. The caller owns the pointer.
+ const MinidumpLinuxMaps *GetLinuxMapsAtIndex(unsigned int index) const;
+
+ // Print the contents of /proc/self/maps to stdout.
+ void Print() const;
+
+ private:
+ friend class Minidump;
+
+ typedef vector<MinidumpLinuxMaps *> MinidumpLinuxMappings;
+
+ static const uint32_t kStreamType = MD_LINUX_MAPS;
+
+ // The caller owns the pointer.
+ explicit MinidumpLinuxMapsList(Minidump *minidump);
+
+ // Read and load the contents of the process mapping data.
+ // The stream should have data in the form of /proc/self/maps.
+ // This method returns whether the stream was read successfully.
+ bool Read(uint32_t expected_size) override;
+
+ // The list of individual mappings.
+ MinidumpLinuxMappings *maps_;
+ // The number of mappings.
+ uint32_t maps_count_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpLinuxMapsList);
+};
+
+// MinidumpCrashpadInfo wraps MDRawCrashpadInfo, which is an optional stream in
+// a minidump that provides additional information about the process state
+// at the time the minidump was generated.
+class MinidumpCrashpadInfo : public MinidumpStream {
+ public:
+ const MDRawCrashpadInfo* crashpad_info() const {
+ return valid_ ? &crashpad_info_ : NULL;
+ }
+
+ // Print a human-readable representation of the object to stdout.
+ void Print();
+
+ private:
+ friend class Minidump;
+
+ static const uint32_t kStreamType = MD_CRASHPAD_INFO_STREAM;
+
+ explicit MinidumpCrashpadInfo(Minidump* minidump_);
+
+ bool Read(uint32_t expected_size);
+
+ MDRawCrashpadInfo crashpad_info_;
+ std::vector<uint32_t> module_crashpad_info_links_;
+ std::vector<MDRawModuleCrashpadInfo> module_crashpad_info_;
+ std::vector<std::vector<std::string>> module_crashpad_info_list_annotations_;
+ std::vector<std::map<std::string, std::string>>
+ module_crashpad_info_simple_annotations_;
+ std::map<std::string, std::string> simple_annotations_;
+};
+
+// MinidumpMacCrashInfo wraps MDRawMacCrashInfo. It's an optional stream
+// in a minidump that records information from the __DATA,__crash_info
+// section of every module in the crashing process that contains one, and
+// which isn't empty of useful information. Only present on macOS.
+
+// Friendly wrapper for the information in MDRawMacCrashInfoRecord.
+typedef struct crash_info_record {
+ string module_path;
+ unsigned long version;
+ string message;
+ string signature_string;
+ string backtrace;
+ string message2;
+ unsigned long long thread;
+ unsigned int dialog_mode;
+ long long abort_cause; // Only valid when 'version' > 4
+ crash_info_record()
+ : version(0), thread(0), dialog_mode(0), abort_cause(0)
+ {}
+} crash_info_record_t;
+
+class MinidumpMacCrashInfo : public MinidumpStream {
+ public:
+ // A human-readable representation of the data from the __DATA,__crash_info
+ // sections in all of the crashing process's modules that have one, if
+ // it's not empty of useful data. Suitable for use by "minidump_stackwalk".
+ string description() const { return description_; }
+ // A "machine-readable" copy of the same information, suitable for use by
+ // "minidump_stalkwalk -m".
+ vector<crash_info_record_t> const records() {
+ return records_;
+ }
+
+ // Print a human-readable representation of the object to stdout.
+ void Print();
+
+ private:
+ friend class Minidump;
+
+ static const uint32_t kStreamType = MOZ_MACOS_CRASH_INFO_STREAM;
+
+ explicit MinidumpMacCrashInfo(Minidump* minidump_);
+
+ bool ReadCrashInfoRecord(MDLocationDescriptor location,
+ uint32_t record_start_size);
+ bool Read(uint32_t expected_size);
+
+ string description_;
+ vector<crash_info_record_t> records_;
+};
+
+// MinidumpThreadName wraps MDRawThreadName
+class MinidumpThreadName : public MinidumpObject {
+ public:
+ ~MinidumpThreadName() override;
+
+ const MDRawThreadName* thread_name() const {
+ if (valid_) {
+ return &thread_name_;
+ }
+
+ return NULL;
+ }
+
+ uint32_t thread_id() const {
+ if (valid_) {
+ return thread_name_.thread_id;
+ }
+
+ return 0;
+ }
+
+ string name() const;
+
+ // Print a human-readable representation of the object to stdout.
+ void Print();
+
+ protected:
+ explicit MinidumpThreadName(Minidump* minidump);
+
+ private:
+ // These objects are managed by MinidumpThreadNameList
+ friend class MinidumpThreadNamesList;
+
+ // This works like MinidumpStream::Read, but is driven by
+ // MinidumpThreadNameList.
+ bool Read(uint32_t expected_size);
+
+ // Reads the thread name. This is done separately from Read to
+ // allow contiguous reading of thread names by MinidumpThreadNameList.
+ bool ReadAuxiliaryData();
+
+ bool valid_;
+ MDRawThreadName thread_name_;
+ const string* name_;
+};
+
+
+// MinidumpThreadNamesList contains all the names for threads in a process
+// in the form of MinidumpThreadNames.
+class MinidumpThreadNamesList : public MinidumpStream {
+ public:
+ ~MinidumpThreadNamesList() override;
+
+ unsigned int name_count() const {
+ return valid_ ? name_count_ : 0;
+ }
+
+ const string GetNameForThreadId(uint32_t thread_id) const;
+
+ // Print a human-readable representation of the object to stdout.
+ void Print();
+
+ protected:
+ explicit MinidumpThreadNamesList(Minidump* minidump_);
+
+ private:
+ friend class Minidump;
+
+ typedef vector<MinidumpThreadName> MinidumpThreadNames;
+
+ static const uint32_t kStreamType = MD_THREAD_NAMES_STREAM;
+
+ bool Read(uint32_t expected_size_) override;
+
+ MinidumpThreadNames* thread_names_;
+ uint32_t name_count_;
+ bool valid_;
+
+ DISALLOW_COPY_AND_ASSIGN(MinidumpThreadNamesList);
+};
+
+// Minidump is the user's interface to a minidump file. It wraps MDRawHeader
+// and provides access to the minidump's top-level stream directory.
+class Minidump {
+ public:
+ // path is the pathname of a file containing the minidump.
+ explicit Minidump(const string& path,
+ bool hexdump=false,
+ unsigned int hexdump_width=16);
+ // input is an istream wrapping minidump data. Minidump holds a
+ // weak pointer to input, and the caller must ensure that the stream
+ // is valid as long as the Minidump object is.
+ explicit Minidump(std::istream& input);
+
+ virtual ~Minidump();
+
+ // path may be empty if the minidump was not opened from a file
+ virtual string path() const {
+ return path_;
+ }
+ static void set_max_streams(uint32_t max_streams) {
+ max_streams_ = max_streams;
+ }
+ static uint32_t max_streams() { return max_streams_; }
+
+ static void set_max_string_length(uint32_t max_string_length) {
+ max_string_length_ = max_string_length;
+ }
+ static uint32_t max_string_length() { return max_string_length_; }
+
+ virtual const MDRawHeader* header() const { return valid_ ? &header_ : NULL; }
+
+ // Reads the CPU information from the system info stream and generates the
+ // appropriate CPU flags. The returned context_cpu_flags are the same as
+ // if the CPU type bits were set in the context_flags of a context record.
+ // On success, context_cpu_flags will have the flags that identify the CPU.
+ // If a system info stream is missing, context_cpu_flags will be 0.
+ // Returns true if the current position in the stream was not changed.
+ // Returns false when the current location in the stream was changed and the
+ // attempt to restore the original position failed.
+ bool GetContextCPUFlagsFromSystemInfo(uint32_t* context_cpu_flags);
+
+ // Reads the minidump file's header and top-level stream directory.
+ // The minidump is expected to be positioned at the beginning of the
+ // header. Read() sets up the stream list and map, and validates the
+ // Minidump object.
+ virtual bool Read();
+
+ // The next set of methods are stubs that call GetStream. They exist to
+ // force code generation of the templatized API within the module, and
+ // to avoid exposing an ugly API (GetStream needs to accept a garbage
+ // parameter).
+ virtual MinidumpThreadList* GetThreadList();
+ virtual MinidumpModuleList* GetModuleList();
+ virtual MinidumpMemoryList* GetMemoryList();
+ virtual MinidumpException* GetException();
+ virtual MinidumpAssertion* GetAssertion();
+ virtual MinidumpSystemInfo* GetSystemInfo();
+ virtual MinidumpUnloadedModuleList* GetUnloadedModuleList();
+ virtual MinidumpMiscInfo* GetMiscInfo();
+ virtual MinidumpBreakpadInfo* GetBreakpadInfo();
+ virtual MinidumpMemoryInfoList* GetMemoryInfoList();
+ MinidumpCrashpadInfo* GetCrashpadInfo();
+ MinidumpMacCrashInfo* GetMacCrashInfo();
+ MinidumpThreadNamesList* GetThreadNamesList();
+
+ // The next method also calls GetStream, but is exclusive for Linux dumps.
+ virtual MinidumpLinuxMapsList *GetLinuxMapsList();
+
+ // The next set of methods are provided for users who wish to access
+ // data in minidump files directly, while leveraging the rest of
+ // this class and related classes to handle the basic minidump
+ // structure and known stream types.
+
+ unsigned int GetDirectoryEntryCount() const {
+ return valid_ ? header_.stream_count : 0;
+ }
+ const MDRawDirectory* GetDirectoryEntryAtIndex(unsigned int index) const;
+
+ // The next 2 methods are lower-level I/O routines. They use fd_.
+
+ // Reads count bytes from the minidump at the current position into
+ // the storage area pointed to by bytes. bytes must be of sufficient
+ // size. After the read, the file position is advanced by count.
+ bool ReadBytes(void* bytes, size_t count);
+
+ // Sets the position of the minidump file to offset.
+ bool SeekSet(off_t offset);
+
+ // Returns the current position of the minidump file.
+ off_t Tell();
+
+ // Medium-level I/O routines.
+
+ // ReadString returns a string which is owned by the caller! offset
+ // specifies the offset that a length-encoded string is stored at in the
+ // minidump file.
+ string* ReadString(off_t offset);
+
+ bool ReadUTF8String(off_t offset, string* string_utf8);
+
+ bool ReadStringList(off_t offset, std::vector<std::string>* string_list);
+
+ bool ReadSimpleStringDictionary(
+ off_t offset,
+ std::map<std::string, std::string>* simple_string_dictionary);
+
+ // SeekToStreamType positions the file at the beginning of a stream
+ // identified by stream_type, and informs the caller of the stream's
+ // length by setting *stream_length. Because stream_map maps each stream
+ // type to only one stream in the file, this might mislead the user into
+ // thinking that the stream that this seeks to is the only stream with
+ // type stream_type. That can't happen for streams that these classes
+ // deal with directly, because they're only supposed to be present in the
+ // file singly, and that's verified when stream_map_ is built. Users who
+ // are looking for other stream types should be aware of this
+ // possibility, and consider using GetDirectoryEntryAtIndex (possibly
+ // with GetDirectoryEntryCount) if expecting multiple streams of the same
+ // type in a single minidump file.
+ bool SeekToStreamType(uint32_t stream_type, uint32_t* stream_length);
+
+ bool swap() const { return valid_ ? swap_ : false; }
+
+ bool is_big_endian() const { return valid_ ? is_big_endian_ : false; }
+
+ // Print a human-readable representation of the object to stdout.
+ void Print();
+
+ // Is the OS Android.
+ bool IsAndroid();
+
+ // Determines the platform where the minidump was produced. |platform| is
+ // valid iff this method returns true.
+ bool GetPlatform(MDOSPlatform* platform);
+
+ // Get current hexdump display settings.
+ unsigned int HexdumpMode() const { return hexdump_ ? hexdump_width_ : 0; }
+
+ private:
+ // MinidumpStreamInfo is used in the MinidumpStreamMap. It lets
+ // the Minidump object locate interesting streams quickly, and
+ // provides a convenient place to stash MinidumpStream objects.
+ struct MinidumpStreamInfo {
+ MinidumpStreamInfo() : stream_index(0), stream(NULL) {}
+ ~MinidumpStreamInfo() { delete stream; }
+
+ // Index into the MinidumpDirectoryEntries vector
+ unsigned int stream_index;
+
+ // Pointer to the stream if cached, or NULL if not yet populated
+ MinidumpStream* stream;
+ };
+
+ typedef vector<MDRawDirectory> MinidumpDirectoryEntries;
+ typedef map<uint32_t, MinidumpStreamInfo> MinidumpStreamMap;
+
+ template<typename T> T* GetStream(T** stream);
+
+ // Opens the minidump file, or if already open, seeks to the beginning.
+ bool Open();
+
+ // The largest number of top-level streams that will be read from a minidump.
+ // Note that streams are only read (and only consume memory) as needed,
+ // when directed by the caller. The default is 128.
+ static uint32_t max_streams_;
+
+ // The maximum length of a UTF-16 string that will be read from a minidump
+ // in 16-bit words. The default is 1024. UTF-16 strings are converted
+ // to UTF-8 when stored in memory, and each UTF-16 word will be represented
+ // by as many as 3 bytes in UTF-8.
+ static unsigned int max_string_length_;
+
+ MDRawHeader header_;
+
+ // The list of streams.
+ MinidumpDirectoryEntries* directory_;
+
+ // Access to streams using the stream type as the key.
+ MinidumpStreamMap* stream_map_;
+
+ // The pathname of the minidump file to process, set in the constructor.
+ // This may be empty if the minidump was opened directly from a stream.
+ const string path_;
+
+ // The stream for all file I/O. Used by ReadBytes and SeekSet.
+ // Set based on the path in Open, or directly in the constructor.
+ std::istream* stream_;
+
+ // swap_ is true if the minidump file should be byte-swapped. If the
+ // minidump was produced by a CPU that is other-endian than the CPU
+ // processing the minidump, this will be true. If the two CPUs are
+ // same-endian, this will be false.
+ bool swap_;
+
+ // true if the minidump was produced by a big-endian cpu.
+ bool is_big_endian_;
+
+ // Validity of the Minidump structure, false immediately after
+ // construction or after a failed Read(); true following a successful
+ // Read().
+ bool valid_;
+
+ // Knobs for controlling display of memory printing.
+ bool hexdump_;
+ unsigned int hexdump_width_;
+
+ DISALLOW_COPY_AND_ASSIGN(Minidump);
+};
+
+
+} // namespace google_breakpad
+
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/minidump_processor.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/minidump_processor.h
new file mode 100644
index 0000000000..387115ef71
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/minidump_processor.h
@@ -0,0 +1,147 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_PROCESSOR_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_PROCESSOR_H__
+
+#include <assert.h>
+#include <string>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/processor/process_result.h"
+
+namespace google_breakpad {
+
+class Minidump;
+class ProcessState;
+class StackFrameSymbolizer;
+class SourceLineResolverInterface;
+class SymbolSupplier;
+struct SystemInfo;
+
+class MinidumpProcessor {
+ public:
+ // Initializes this MinidumpProcessor. supplier should be an
+ // implementation of the SymbolSupplier abstract base class.
+ MinidumpProcessor(SymbolSupplier* supplier,
+ SourceLineResolverInterface* resolver);
+
+ // Initializes the MinidumpProcessor with the option of
+ // enabling the exploitability framework to analyze dumps
+ // for probable security relevance.
+ MinidumpProcessor(SymbolSupplier* supplier,
+ SourceLineResolverInterface* resolver,
+ bool enable_exploitability);
+
+ // Initializes the MinidumpProcessor with source line resolver helper, and
+ // the option of enabling the exploitability framework to analyze dumps
+ // for probable security relevance.
+ // Does not take ownership of resolver_helper, which must NOT be NULL.
+ MinidumpProcessor(StackFrameSymbolizer* stack_frame_symbolizer,
+ bool enable_exploitability);
+
+ ~MinidumpProcessor();
+
+ // Processes the minidump file and fills process_state with the result.
+ ProcessResult Process(const string &minidump_file,
+ ProcessState* process_state);
+
+ // Processes the minidump structure and fills process_state with the
+ // result.
+ ProcessResult Process(Minidump* minidump,
+ ProcessState* process_state);
+ // Populates the cpu_* fields of the |info| parameter with textual
+ // representations of the CPU type that the minidump in |dump| was
+ // produced on. Returns false if this information is not available in
+ // the minidump.
+ static bool GetCPUInfo(Minidump* dump, SystemInfo* info);
+
+ // Populates the os_* fields of the |info| parameter with textual
+ // representations of the operating system that the minidump in |dump|
+ // was produced on. Returns false if this information is not available in
+ // the minidump.
+ static bool GetOSInfo(Minidump* dump, SystemInfo* info);
+
+ // Populates the |process_create_time| parameter with the create time of the
+ // crashed process. Returns false if this information is not available in
+ // the minidump |dump|.
+ static bool GetProcessCreateTime(Minidump* dump,
+ uint32_t* process_create_time);
+
+ // Returns a textual representation of the reason that a crash occurred,
+ // if the minidump in dump was produced as a result of a crash. Returns
+ // an empty string if this information cannot be determined. If address
+ // is non-NULL, it will be set to contain the address that caused the
+ // exception, if this information is available. This will be a code
+ // address when the crash was caused by problems such as illegal
+ // instructions or divisions by zero, or a data address when the crash
+ // was caused by a memory access violation.
+ static string GetCrashReason(Minidump* dump, uint64_t* address);
+
+ // This function returns true if the passed-in error code is
+ // something unrecoverable(i.e. retry should not happen). For
+ // instance, if the minidump is corrupt, then it makes no sense to
+ // retry as we won't be able to glean additional information.
+ // However, as an example of the other case, the symbol supplier can
+ // return an error code indicating it was 'interrupted', which can
+ // happen of the symbols are fetched from a remote store, and a
+ // retry might be successful later on.
+ // You should not call this method with PROCESS_OK! Test for
+ // that separately before calling this.
+ static bool IsErrorUnrecoverable(ProcessResult p) {
+ assert(p != PROCESS_OK);
+ return (p != PROCESS_SYMBOL_SUPPLIER_INTERRUPTED);
+ }
+
+ // Returns a textual representation of an assertion included
+ // in the minidump. Returns an empty string if this information
+ // does not exist or cannot be determined.
+ static string GetAssertion(Minidump* dump);
+
+ void set_enable_objdump(bool enabled) { enable_objdump_ = enabled; }
+
+ private:
+ StackFrameSymbolizer* frame_symbolizer_;
+ // Indicate whether resolver_helper_ is owned by this instance.
+ bool own_frame_symbolizer_;
+
+ // This flag enables the exploitability scanner which attempts to
+ // guess how likely it is that the crash represents an exploitable
+ // memory corruption issue.
+ bool enable_exploitability_;
+
+ // This flag permits the exploitability scanner to shell out to objdump
+ // for purposes of disassembly.
+ bool enable_objdump_;
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_MINIDUMP_PROCESSOR_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/proc_maps_linux.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/proc_maps_linux.h
new file mode 100644
index 0000000000..3045daa5f6
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/proc_maps_linux.h
@@ -0,0 +1,60 @@
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BASE_DEBUG_PROC_MAPS_LINUX_H_
+#define BASE_DEBUG_PROC_MAPS_LINUX_H_
+
+#include <string>
+#include <vector>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+
+namespace google_breakpad {
+
+// Describes a region of mapped memory and the path of the file mapped.
+struct MappedMemoryRegion {
+ enum Permission {
+ READ = 1 << 0,
+ WRITE = 1 << 1,
+ EXECUTE = 1 << 2,
+ PRIVATE = 1 << 3, // If set, region is private, otherwise it is shared.
+ };
+
+ // The address range [start,end) of mapped memory.
+ uint64_t start;
+ uint64_t end;
+
+ // Byte offset into |path| of the range mapped into memory.
+ uint64_t offset;
+
+ // Bitmask of read/write/execute/private/shared permissions.
+ uint8_t permissions;
+
+ // Major and minor devices.
+ uint8_t major_device;
+ uint8_t minor_device;
+
+ // Value of the inode.
+ uint64_t inode;
+
+ // Name of the file mapped into memory.
+ //
+ // NOTE: path names aren't guaranteed to point at valid files. For example,
+ // "[heap]" and "[stack]" are used to represent the location of the process'
+ // heap and stack, respectively.
+ string path;
+
+ // The line from /proc/<pid>/maps that this struct represents.
+ string line;
+};
+
+// Parses /proc/<pid>/maps input data and stores in |regions|. Returns true
+// and updates |regions| if and only if all of |input| was successfully parsed.
+bool ParseProcMaps(const string& input,
+ std::vector<MappedMemoryRegion>* regions);
+
+} // namespace google_breakpad
+
+#endif // BASE_DEBUG_PROC_MAPS_LINUX_H_
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/process_result.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/process_result.h
new file mode 100644
index 0000000000..15c7213e9b
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/process_result.h
@@ -0,0 +1,66 @@
+// Copyright (c) 2014, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_PROCESS_RESULT_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_PROCESS_RESULT_H__
+
+namespace google_breakpad {
+
+// Return type for MinidumpProcessor or MicrodumpProcessor's Process()
+enum ProcessResult {
+ PROCESS_OK, // The dump was processed
+ // successfully.
+
+ PROCESS_ERROR_MINIDUMP_NOT_FOUND, // The minidump file was not
+ // found.
+
+ PROCESS_ERROR_NO_MINIDUMP_HEADER, // The minidump file had no
+ // header.
+
+ PROCESS_ERROR_NO_THREAD_LIST, // The minidump file has no
+ // thread list.
+
+ PROCESS_ERROR_GETTING_THREAD, // There was an error getting one
+ // thread's data from th dump.
+
+ PROCESS_ERROR_GETTING_THREAD_ID, // There was an error getting a
+ // thread id from the thread's
+ // data.
+
+ PROCESS_ERROR_DUPLICATE_REQUESTING_THREADS, // There was more than one
+ // requesting thread.
+
+ PROCESS_SYMBOL_SUPPLIER_INTERRUPTED // The dump processing was
+ // interrupted by the
+ // SymbolSupplier(not fatal).
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_PROCESS_RESULT_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/process_state.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/process_state.h
new file mode 100644
index 0000000000..37b208ecbe
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/process_state.h
@@ -0,0 +1,220 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// process_state.h: A snapshot of a process, in a fully-digested state.
+//
+// Author: Mark Mentovai
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_PROCESS_STATE_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_PROCESS_STATE_H__
+
+#include <string>
+#include <vector>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/processor/code_modules.h"
+#include "google_breakpad/processor/exception_record.h"
+#include "google_breakpad/processor/minidump.h"
+#include "google_breakpad/processor/system_info.h"
+#include "processor/linked_ptr.h"
+
+namespace google_breakpad {
+
+using std::vector;
+
+class CallStack;
+class CodeModules;
+
+enum ExploitabilityRating {
+ EXPLOITABILITY_HIGH, // The crash likely represents
+ // a exploitable memory corruption
+ // vulnerability.
+
+ EXPLOITABILITY_MEDIUM, // The crash appears to corrupt
+ // memory in a way which may be
+ // exploitable in some situations.
+
+ EXPLOITABLITY_MEDIUM = EXPLOITABILITY_MEDIUM, // an old misspelling
+
+ EXPLOITABILITY_LOW, // The crash either does not corrupt
+ // memory directly or control over
+ // the affected data is limited. The
+ // issue may still be exploitable
+ // on certain platforms or situations.
+
+ EXPLOITABILITY_INTERESTING, // The crash does not appear to be
+ // directly exploitable. However it
+ // represents a condition which should
+ // be further analyzed.
+
+ EXPLOITABILITY_NONE, // The crash does not appear to represent
+ // an exploitable condition.
+
+ EXPLOITABILITY_NOT_ANALYZED, // The crash was not analyzed for
+ // exploitability because the engine
+ // was disabled.
+
+ EXPLOITABILITY_ERR_NOENGINE, // The supplied minidump's platform does
+ // not have a exploitability engine
+ // associated with it.
+
+ EXPLOITABILITY_ERR_PROCESSING // An error occured within the
+ // exploitability engine and no rating
+ // was calculated.
+};
+
+class ProcessState {
+ public:
+ ProcessState() : modules_(NULL), unloaded_modules_(NULL) { Clear(); }
+ ~ProcessState();
+
+ // Resets the ProcessState to its default values
+ void Clear();
+
+ // Accessors. See the data declarations below.
+ uint32_t time_date_stamp() const { return time_date_stamp_; }
+ uint32_t process_create_time() const { return process_create_time_; }
+ bool crashed() const { return crashed_; }
+ string crash_reason() const { return crash_reason_; }
+ uint64_t crash_address() const { return crash_address_; }
+ string assertion() const { return assertion_; }
+ int requesting_thread() const { return requesting_thread_; }
+ const ExceptionRecord* exception_record() const { return &exception_record_; }
+ const vector<CallStack*>* threads() const { return &threads_; }
+ const vector<MemoryRegion*>* thread_memory_regions() const {
+ return &thread_memory_regions_;
+ }
+ const SystemInfo* system_info() const { return &system_info_; }
+ string mac_crash_info() const { return mac_crash_info_; }
+ size_t mac_crash_info_records_count() const {
+ return mac_crash_info_records_.size();
+ }
+ const crash_info_record_t* mac_crash_info_records() const {
+ return reinterpret_cast<const crash_info_record_t*>(
+ &mac_crash_info_records_[0]);
+ }
+ const CodeModules* modules() const { return modules_; }
+ const CodeModules* unloaded_modules() const { return unloaded_modules_; }
+ const vector<linked_ptr<const CodeModule> >* shrunk_range_modules() const {
+ return &shrunk_range_modules_;
+ }
+ const vector<const CodeModule*>* modules_without_symbols() const {
+ return &modules_without_symbols_;
+ }
+ const vector<const CodeModule*>* modules_with_corrupt_symbols() const {
+ return &modules_with_corrupt_symbols_;
+ }
+ ExploitabilityRating exploitability() const { return exploitability_; }
+
+ private:
+ // MinidumpProcessor and MicrodumpProcessor are responsible for building
+ // ProcessState objects.
+ friend class MinidumpProcessor;
+ friend class MicrodumpProcessor;
+
+ // The time-date stamp of the minidump (time_t format)
+ uint32_t time_date_stamp_;
+
+ // The time-date stamp when the process was created (time_t format)
+ uint32_t process_create_time_;
+
+ // True if the process crashed, false if the dump was produced outside
+ // of an exception handler.
+ bool crashed_;
+
+ // If the process crashed, the type of crash. OS- and possibly CPU-
+ // specific. For example, "EXCEPTION_ACCESS_VIOLATION" (Windows),
+ // "EXC_BAD_ACCESS / KERN_INVALID_ADDRESS" (Mac OS X), "SIGSEGV"
+ // (other Unix).
+ string crash_reason_;
+
+ // If the process crashed, and if crash_reason implicates memory,
+ // the memory address that caused the crash. For data access errors,
+ // this will be the data address that caused the fault. For code errors,
+ // this will be the address of the instruction that caused the fault.
+ uint64_t crash_address_;
+
+ // If there was an assertion that was hit, a textual representation
+ // of that assertion, possibly including the file and line at which
+ // it occurred.
+ string assertion_;
+
+ // The index of the thread that requested a dump be written in the
+ // threads vector. If a dump was produced as a result of a crash, this
+ // will point to the thread that crashed. If the dump was produced as
+ // by user code without crashing, and the dump contains extended Breakpad
+ // information, this will point to the thread that requested the dump.
+ // If the dump was not produced as a result of an exception and no
+ // extended Breakpad information is present, this field will be set to -1,
+ // indicating that the dump thread is not available.
+ int requesting_thread_;
+
+ // Exception record details: code, flags, address, parameters.
+ ExceptionRecord exception_record_;
+
+ // Stacks for each thread (except possibly the exception handler
+ // thread) at the time of the crash.
+ vector<CallStack*> threads_;
+ vector<MemoryRegion*> thread_memory_regions_;
+
+ // OS and CPU information.
+ SystemInfo system_info_;
+
+ // Information from __DATA,__crash_info sections. Only present on macOS.
+ string mac_crash_info_;
+ vector<crash_info_record_t> mac_crash_info_records_;
+
+ // The modules that were loaded into the process represented by the
+ // ProcessState.
+ const CodeModules *modules_;
+
+ // The modules that have been unloaded from the process represented by the
+ // ProcessState.
+ const CodeModules *unloaded_modules_;
+
+ // The modules which virtual address ranges were shrunk down due to
+ // virtual address conflicts.
+ vector<linked_ptr<const CodeModule> > shrunk_range_modules_;
+
+ // The modules that didn't have symbols when the report was processed.
+ vector<const CodeModule*> modules_without_symbols_;
+
+ // The modules that had corrupt symbols when the report was processed.
+ vector<const CodeModule*> modules_with_corrupt_symbols_;
+
+ // The exploitability rating as determined by the exploitability
+ // engine. When the exploitability engine is not enabled this
+ // defaults to EXPLOITABILITY_NOT_ANALYZED.
+ ExploitabilityRating exploitability_;
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_PROCESS_STATE_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/source_line_resolver_base.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/source_line_resolver_base.h
new file mode 100644
index 0000000000..c720b0c325
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/source_line_resolver_base.h
@@ -0,0 +1,128 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// source_line_resolver_base.h: SourceLineResolverBase, an (incomplete)
+// implementation of SourceLineResolverInterface. It serves as a common base
+// class for concrete implementations: FastSourceLineResolver and
+// BasicSourceLineResolver. It is designed for refactoring that removes
+// code redundancy in the two concrete source line resolver classes.
+//
+// See "google_breakpad/processor/source_line_resolver_interface.h" for more
+// documentation.
+
+// Author: Siyang Xie (lambxsy@google.com)
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_SOURCE_LINE_RESOLVER_BASE_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_SOURCE_LINE_RESOLVER_BASE_H__
+
+#include <map>
+#include <set>
+#include <string>
+
+#include "google_breakpad/processor/source_line_resolver_interface.h"
+
+namespace google_breakpad {
+
+using std::map;
+using std::set;
+
+// Forward declaration.
+// ModuleFactory is a simple factory interface for creating a Module instance
+// at run-time.
+class ModuleFactory;
+
+class SourceLineResolverBase : public SourceLineResolverInterface {
+ public:
+ // Read the symbol_data from a file with given file_name.
+ // The part of code was originally in BasicSourceLineResolver::Module's
+ // LoadMap() method.
+ // Place dynamically allocated heap buffer in symbol_data. Caller has the
+ // ownership of the buffer, and should call delete [] to free the buffer.
+ static bool ReadSymbolFile(const string &file_name,
+ char **symbol_data,
+ size_t *symbol_data_size);
+
+ protected:
+ // Users are not allowed create SourceLineResolverBase instance directly.
+ SourceLineResolverBase(ModuleFactory *module_factory);
+ virtual ~SourceLineResolverBase();
+
+ // Virtual methods inherited from SourceLineResolverInterface.
+ virtual bool LoadModule(const CodeModule *module, const string &map_file);
+ virtual bool LoadModuleUsingMapBuffer(const CodeModule *module,
+ const string &map_buffer);
+ virtual bool LoadModuleUsingMemoryBuffer(const CodeModule *module,
+ char *memory_buffer,
+ size_t memory_buffer_size);
+ virtual bool ShouldDeleteMemoryBufferAfterLoadModule();
+ virtual void UnloadModule(const CodeModule *module);
+ virtual bool HasModule(const CodeModule *module);
+ virtual bool IsModuleCorrupt(const CodeModule *module);
+ virtual void FillSourceLineInfo(StackFrame *frame);
+ virtual WindowsFrameInfo *FindWindowsFrameInfo(const StackFrame *frame);
+ virtual CFIFrameInfo *FindCFIFrameInfo(const StackFrame *frame);
+
+ // Nested structs and classes.
+ struct Line;
+ struct Function;
+ struct PublicSymbol;
+ struct CompareString {
+ bool operator()(const string &s1, const string &s2) const;
+ };
+ // Module is an interface for an in-memory symbol file.
+ class Module;
+ class AutoFileCloser;
+
+ // All of the modules that are loaded.
+ typedef map<string, Module*, CompareString> ModuleMap;
+ ModuleMap *modules_;
+
+ // The loaded modules that were detecting to be corrupt during load.
+ typedef set<string, CompareString> ModuleSet;
+ ModuleSet *corrupt_modules_;
+
+ // All of heap-allocated buffers that are owned locally by resolver.
+ typedef std::map<string, char*, CompareString> MemoryMap;
+ MemoryMap *memory_buffers_;
+
+ // Creates a concrete module at run-time.
+ ModuleFactory *module_factory_;
+
+ private:
+ // ModuleFactory needs to have access to protected type Module.
+ friend class ModuleFactory;
+
+ // Disallow unwanted copy ctor and assignment operator
+ SourceLineResolverBase(const SourceLineResolverBase&);
+ void operator=(const SourceLineResolverBase&);
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_SOURCE_LINE_RESOLVER_BASE_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/source_line_resolver_interface.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/source_line_resolver_interface.h
new file mode 100644
index 0000000000..a694bf2ea1
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/source_line_resolver_interface.h
@@ -0,0 +1,117 @@
+// -*- mode: C++ -*-
+
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Abstract interface to return function/file/line info for a memory address.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_SOURCE_LINE_RESOLVER_INTERFACE_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_SOURCE_LINE_RESOLVER_INTERFACE_H__
+
+#include <string>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/processor/code_module.h"
+
+namespace google_breakpad {
+
+struct StackFrame;
+struct WindowsFrameInfo;
+class CFIFrameInfo;
+
+class SourceLineResolverInterface {
+ public:
+ typedef uint64_t MemAddr;
+
+ virtual ~SourceLineResolverInterface() {}
+
+ // Adds a module to this resolver, returning true on success.
+ //
+ // module should have at least the code_file, debug_file,
+ // and debug_identifier members populated.
+ //
+ // map_file should contain line/address mappings for this module.
+ virtual bool LoadModule(const CodeModule *module,
+ const string &map_file) = 0;
+ // Same as above, but takes the contents of a pre-read map buffer
+ virtual bool LoadModuleUsingMapBuffer(const CodeModule *module,
+ const string &map_buffer) = 0;
+
+ // Add an interface to load symbol using C-String data instead of string.
+ // This is useful in the optimization design for avoiding unnecessary copying
+ // of symbol data, in order to improve memory efficiency.
+ // LoadModuleUsingMemoryBuffer() does NOT take ownership of memory_buffer.
+ // LoadModuleUsingMemoryBuffer() null terminates the passed in buffer, if
+ // the last character is not a null terminator.
+ virtual bool LoadModuleUsingMemoryBuffer(const CodeModule *module,
+ char *memory_buffer,
+ size_t memory_buffer_size) = 0;
+
+ // Return true if the memory buffer should be deleted immediately after
+ // LoadModuleUsingMemoryBuffer(). Return false if the memory buffer has to be
+ // alive during the lifetime of the corresponding Module.
+ virtual bool ShouldDeleteMemoryBufferAfterLoadModule() = 0;
+
+ // Request that the specified module be unloaded from this resolver.
+ // A resolver may choose to ignore such a request.
+ virtual void UnloadModule(const CodeModule *module) = 0;
+
+ // Returns true if the module has been loaded.
+ virtual bool HasModule(const CodeModule *module) = 0;
+
+ // Returns true if the module has been loaded and it is corrupt.
+ virtual bool IsModuleCorrupt(const CodeModule *module) = 0;
+
+ // Fills in the function_base, function_name, source_file_name,
+ // and source_line fields of the StackFrame. The instruction and
+ // module_name fields must already be filled in.
+ virtual void FillSourceLineInfo(StackFrame *frame) = 0;
+
+ // If Windows stack walking information is available covering
+ // FRAME's instruction address, return a WindowsFrameInfo structure
+ // describing it. If the information is not available, returns NULL.
+ // A NULL return value does not indicate an error. The caller takes
+ // ownership of any returned WindowsFrameInfo object.
+ virtual WindowsFrameInfo *FindWindowsFrameInfo(const StackFrame *frame) = 0;
+
+ // If CFI stack walking information is available covering ADDRESS,
+ // return a CFIFrameInfo structure describing it. If the information
+ // is not available, return NULL. The caller takes ownership of any
+ // returned CFIFrameInfo object.
+ virtual CFIFrameInfo *FindCFIFrameInfo(const StackFrame *frame) = 0;
+
+ protected:
+ // SourceLineResolverInterface cannot be instantiated except by subclasses
+ SourceLineResolverInterface() {}
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_SOURCE_LINE_RESOLVER_INTERFACE_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/stack_frame.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/stack_frame.h
new file mode 100644
index 0000000000..1491d78825
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/stack_frame.h
@@ -0,0 +1,144 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_H__
+
+#include <string>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+
+namespace google_breakpad {
+
+class CodeModule;
+
+struct StackFrame {
+ // Indicates how well the instruction pointer derived during
+ // stack walking is trusted. Since the stack walker can resort to
+ // stack scanning, it can wind up with dubious frames.
+ // In rough order of "trust metric".
+ enum FrameTrust {
+ FRAME_TRUST_NONE, // Unknown
+ FRAME_TRUST_SCAN, // Scanned the stack, found this
+ FRAME_TRUST_CFI_SCAN, // Found while scanning stack using call frame info
+ FRAME_TRUST_FP, // Derived from frame pointer
+ FRAME_TRUST_CFI, // Derived from call frame info
+ FRAME_TRUST_PREWALKED, // Explicitly provided by some external stack walker.
+ FRAME_TRUST_CONTEXT // Given as instruction pointer in a context
+ };
+
+ StackFrame()
+ : instruction(),
+ module(NULL),
+ function_name(),
+ function_base(),
+ source_file_name(),
+ source_line(),
+ source_line_base(),
+ trust(FRAME_TRUST_NONE) {}
+ virtual ~StackFrame() {}
+
+ // Return a string describing how this stack frame was found
+ // by the stackwalker.
+ string trust_description() const {
+ switch (trust) {
+ case StackFrame::FRAME_TRUST_CONTEXT:
+ return "given as instruction pointer in context";
+ case StackFrame::FRAME_TRUST_PREWALKED:
+ return "recovered by external stack walker";
+ case StackFrame::FRAME_TRUST_CFI:
+ return "call frame info";
+ case StackFrame::FRAME_TRUST_CFI_SCAN:
+ return "call frame info with scanning";
+ case StackFrame::FRAME_TRUST_FP:
+ return "previous frame's frame pointer";
+ case StackFrame::FRAME_TRUST_SCAN:
+ return "stack scanning";
+ default:
+ return "unknown";
+ }
+ }
+
+ // Return the actual return address, as saved on the stack or in a
+ // register. See the comments for 'instruction', below, for details.
+ virtual uint64_t ReturnAddress() const { return instruction; }
+
+ // The program counter location as an absolute virtual address.
+ //
+ // - For the innermost called frame in a stack, this will be an exact
+ // program counter or instruction pointer value.
+ //
+ // - For all other frames, this address is within the instruction that
+ // caused execution to branch to this frame's callee (although it may
+ // not point to the exact beginning of that instruction). This ensures
+ // that, when we look up the source code location for this frame, we
+ // get the source location of the call, not of the point at which
+ // control will resume when the call returns, which may be on the next
+ // line. (If the compiler knows the callee never returns, it may even
+ // place the call instruction at the very end of the caller's machine
+ // code, such that the "return address" (which will never be used)
+ // immediately after the call instruction is in an entirely different
+ // function, perhaps even from a different source file.)
+ //
+ // On some architectures, the return address as saved on the stack or in
+ // a register is fine for looking up the point of the call. On others, it
+ // requires adjustment. ReturnAddress returns the address as saved by the
+ // machine.
+ uint64_t instruction;
+
+ // The module in which the instruction resides.
+ const CodeModule *module;
+
+ // The function name, may be omitted if debug symbols are not available.
+ string function_name;
+
+ // The start address of the function, may be omitted if debug symbols
+ // are not available.
+ uint64_t function_base;
+
+ // The source file name, may be omitted if debug symbols are not available.
+ string source_file_name;
+
+ // The (1-based) source line number, may be omitted if debug symbols are
+ // not available.
+ int source_line;
+
+ // The start address of the source line, may be omitted if debug symbols
+ // are not available.
+ uint64_t source_line_base;
+
+ // Amount of trust the stack walker has in the instruction pointer
+ // of this frame.
+ FrameTrust trust;
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/stack_frame_cpu.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/stack_frame_cpu.h
new file mode 100644
index 0000000000..dc5d8ae673
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/stack_frame_cpu.h
@@ -0,0 +1,405 @@
+// -*- mode: c++ -*-
+
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stack_frame_cpu.h: CPU-specific StackFrame extensions.
+//
+// These types extend the StackFrame structure to carry CPU-specific register
+// state. They are defined in this header instead of stack_frame.h to
+// avoid the need to include minidump_format.h when only the generic
+// StackFrame type is needed.
+//
+// Author: Mark Mentovai
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_CPU_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_CPU_H__
+
+#include "google_breakpad/common/minidump_format.h"
+#include "google_breakpad/processor/stack_frame.h"
+
+namespace google_breakpad {
+
+struct WindowsFrameInfo;
+class CFIFrameInfo;
+
+struct StackFrameX86 : public StackFrame {
+ // ContextValidity has one entry for each relevant hardware pointer
+ // register (%eip and %esp) and one entry for each general-purpose
+ // register. It's worthwhile having validity flags for caller-saves
+ // registers: they are valid in the youngest frame, and such a frame
+ // might save a callee-saves register in a caller-saves register, but
+ // SimpleCFIWalker won't touch registers unless they're marked as valid.
+ enum ContextValidity {
+ CONTEXT_VALID_NONE = 0,
+ CONTEXT_VALID_EIP = 1 << 0,
+ CONTEXT_VALID_ESP = 1 << 1,
+ CONTEXT_VALID_EBP = 1 << 2,
+ CONTEXT_VALID_EAX = 1 << 3,
+ CONTEXT_VALID_EBX = 1 << 4,
+ CONTEXT_VALID_ECX = 1 << 5,
+ CONTEXT_VALID_EDX = 1 << 6,
+ CONTEXT_VALID_ESI = 1 << 7,
+ CONTEXT_VALID_EDI = 1 << 8,
+ CONTEXT_VALID_ALL = -1
+ };
+
+ StackFrameX86()
+ : context(),
+ context_validity(CONTEXT_VALID_NONE),
+ windows_frame_info(NULL),
+ cfi_frame_info(NULL) {}
+ ~StackFrameX86();
+
+ // Overriden to return the return address as saved on the stack.
+ virtual uint64_t ReturnAddress() const;
+
+ // Register state. This is only fully valid for the topmost frame in a
+ // stack. In other frames, the values of nonvolatile registers may be
+ // present, given sufficient debugging information. Refer to
+ // context_validity.
+ MDRawContextX86 context;
+
+ // context_validity is actually ContextValidity, but int is used because
+ // the OR operator doesn't work well with enumerated types. This indicates
+ // which fields in context are valid.
+ int context_validity;
+
+ // Any stack walking information we found describing this.instruction.
+ // These may be NULL if there is no such information for that address.
+ WindowsFrameInfo *windows_frame_info;
+ CFIFrameInfo *cfi_frame_info;
+};
+
+struct StackFramePPC : public StackFrame {
+ // ContextValidity should eventually contain entries for the validity of
+ // other nonvolatile (callee-save) registers as in
+ // StackFrameX86::ContextValidity, but the ppc stackwalker doesn't currently
+ // locate registers other than the ones listed here.
+ enum ContextValidity {
+ CONTEXT_VALID_NONE = 0,
+ CONTEXT_VALID_SRR0 = 1 << 0,
+ CONTEXT_VALID_GPR1 = 1 << 1,
+ CONTEXT_VALID_ALL = -1
+ };
+
+ StackFramePPC() : context(), context_validity(CONTEXT_VALID_NONE) {}
+
+ // Register state. This is only fully valid for the topmost frame in a
+ // stack. In other frames, the values of nonvolatile registers may be
+ // present, given sufficient debugging information. Refer to
+ // context_validity.
+ MDRawContextPPC context;
+
+ // context_validity is actually ContextValidity, but int is used because
+ // the OR operator doesn't work well with enumerated types. This indicates
+ // which fields in context are valid.
+ int context_validity;
+};
+
+struct StackFramePPC64 : public StackFrame {
+ // ContextValidity should eventually contain entries for the validity of
+ // other nonvolatile (callee-save) registers as in
+ // StackFrameX86::ContextValidity, but the ppc stackwalker doesn't currently
+ // locate registers other than the ones listed here.
+ enum ContextValidity {
+ CONTEXT_VALID_NONE = 0,
+ CONTEXT_VALID_SRR0 = 1 << 0,
+ CONTEXT_VALID_GPR1 = 1 << 1,
+ CONTEXT_VALID_ALL = -1
+ };
+
+ StackFramePPC64() : context(), context_validity(CONTEXT_VALID_NONE) {}
+
+ // Register state. This is only fully valid for the topmost frame in a
+ // stack. In other frames, the values of nonvolatile registers may be
+ // present, given sufficient debugging information. Refer to
+ // context_validity.
+ MDRawContextPPC64 context;
+
+ // context_validity is actually ContextValidity, but int is used because
+ // the OR operator doesn't work well with enumerated types. This indicates
+ // which fields in context are valid.
+ int context_validity;
+};
+
+struct StackFrameAMD64 : public StackFrame {
+ // ContextValidity has one entry for each register that we might be able
+ // to recover.
+ enum ContextValidity {
+ CONTEXT_VALID_NONE = 0,
+ CONTEXT_VALID_RAX = 1 << 0,
+ CONTEXT_VALID_RDX = 1 << 1,
+ CONTEXT_VALID_RCX = 1 << 2,
+ CONTEXT_VALID_RBX = 1 << 3,
+ CONTEXT_VALID_RSI = 1 << 4,
+ CONTEXT_VALID_RDI = 1 << 5,
+ CONTEXT_VALID_RBP = 1 << 6,
+ CONTEXT_VALID_RSP = 1 << 7,
+ CONTEXT_VALID_R8 = 1 << 8,
+ CONTEXT_VALID_R9 = 1 << 9,
+ CONTEXT_VALID_R10 = 1 << 10,
+ CONTEXT_VALID_R11 = 1 << 11,
+ CONTEXT_VALID_R12 = 1 << 12,
+ CONTEXT_VALID_R13 = 1 << 13,
+ CONTEXT_VALID_R14 = 1 << 14,
+ CONTEXT_VALID_R15 = 1 << 15,
+ CONTEXT_VALID_RIP = 1 << 16,
+ CONTEXT_VALID_ALL = -1
+ };
+
+ StackFrameAMD64() : context(), context_validity(CONTEXT_VALID_NONE) {}
+
+ // Overriden to return the return address as saved on the stack.
+ virtual uint64_t ReturnAddress() const;
+
+ // Register state. This is only fully valid for the topmost frame in a
+ // stack. In other frames, which registers are present depends on what
+ // debugging information we had available. Refer to context_validity.
+ MDRawContextAMD64 context;
+
+ // For each register in context whose value has been recovered, we set
+ // the corresponding CONTEXT_VALID_ bit in context_validity.
+ //
+ // context_validity's type should actually be ContextValidity, but
+ // we use int instead because the bitwise inclusive or operator
+ // yields an int when applied to enum values, and C++ doesn't
+ // silently convert from ints to enums.
+ int context_validity;
+};
+
+struct StackFrameSPARC : public StackFrame {
+ // to be confirmed
+ enum ContextValidity {
+ CONTEXT_VALID_NONE = 0,
+ CONTEXT_VALID_PC = 1 << 0,
+ CONTEXT_VALID_SP = 1 << 1,
+ CONTEXT_VALID_FP = 1 << 2,
+ CONTEXT_VALID_ALL = -1
+ };
+
+ StackFrameSPARC() : context(), context_validity(CONTEXT_VALID_NONE) {}
+
+ // Register state. This is only fully valid for the topmost frame in a
+ // stack. In other frames, the values of nonvolatile registers may be
+ // present, given sufficient debugging information. Refer to
+ // context_validity.
+ MDRawContextSPARC context;
+
+ // context_validity is actually ContextValidity, but int is used because
+ // the OR operator doesn't work well with enumerated types. This indicates
+ // which fields in context are valid.
+ int context_validity;
+};
+
+struct StackFrameARM : public StackFrame {
+ // A flag for each register we might know.
+ enum ContextValidity {
+ CONTEXT_VALID_NONE = 0,
+ CONTEXT_VALID_R0 = 1 << 0,
+ CONTEXT_VALID_R1 = 1 << 1,
+ CONTEXT_VALID_R2 = 1 << 2,
+ CONTEXT_VALID_R3 = 1 << 3,
+ CONTEXT_VALID_R4 = 1 << 4,
+ CONTEXT_VALID_R5 = 1 << 5,
+ CONTEXT_VALID_R6 = 1 << 6,
+ CONTEXT_VALID_R7 = 1 << 7,
+ CONTEXT_VALID_R8 = 1 << 8,
+ CONTEXT_VALID_R9 = 1 << 9,
+ CONTEXT_VALID_R10 = 1 << 10,
+ CONTEXT_VALID_R11 = 1 << 11,
+ CONTEXT_VALID_R12 = 1 << 12,
+ CONTEXT_VALID_R13 = 1 << 13,
+ CONTEXT_VALID_R14 = 1 << 14,
+ CONTEXT_VALID_R15 = 1 << 15,
+ CONTEXT_VALID_ALL = ~CONTEXT_VALID_NONE,
+
+ // Aliases for registers with dedicated or conventional roles.
+ CONTEXT_VALID_FP = CONTEXT_VALID_R11,
+ CONTEXT_VALID_SP = CONTEXT_VALID_R13,
+ CONTEXT_VALID_LR = CONTEXT_VALID_R14,
+ CONTEXT_VALID_PC = CONTEXT_VALID_R15
+ };
+
+ StackFrameARM() : context(), context_validity(CONTEXT_VALID_NONE) {}
+
+ // Return the ContextValidity flag for register rN.
+ static ContextValidity RegisterValidFlag(int n) {
+ return ContextValidity(1 << n);
+ }
+
+ // Register state. This is only fully valid for the topmost frame in a
+ // stack. In other frames, the values of nonvolatile registers may be
+ // present, given sufficient debugging information. Refer to
+ // context_validity.
+ MDRawContextARM context;
+
+ // For each register in context whose value has been recovered, we set
+ // the corresponding CONTEXT_VALID_ bit in context_validity.
+ //
+ // context_validity's type should actually be ContextValidity, but
+ // we use int instead because the bitwise inclusive or operator
+ // yields an int when applied to enum values, and C++ doesn't
+ // silently convert from ints to enums.
+ int context_validity;
+};
+
+struct StackFrameARM64 : public StackFrame {
+ // A flag for each register we might know. Note that we can't use an enum
+ // here as there are 33 values to represent.
+ static const uint64_t CONTEXT_VALID_NONE = 0;
+ static const uint64_t CONTEXT_VALID_X0 = 1ULL << 0;
+ static const uint64_t CONTEXT_VALID_X1 = 1ULL << 1;
+ static const uint64_t CONTEXT_VALID_X2 = 1ULL << 2;
+ static const uint64_t CONTEXT_VALID_X3 = 1ULL << 3;
+ static const uint64_t CONTEXT_VALID_X4 = 1ULL << 4;
+ static const uint64_t CONTEXT_VALID_X5 = 1ULL << 5;
+ static const uint64_t CONTEXT_VALID_X6 = 1ULL << 6;
+ static const uint64_t CONTEXT_VALID_X7 = 1ULL << 7;
+ static const uint64_t CONTEXT_VALID_X8 = 1ULL << 8;
+ static const uint64_t CONTEXT_VALID_X9 = 1ULL << 9;
+ static const uint64_t CONTEXT_VALID_X10 = 1ULL << 10;
+ static const uint64_t CONTEXT_VALID_X11 = 1ULL << 11;
+ static const uint64_t CONTEXT_VALID_X12 = 1ULL << 12;
+ static const uint64_t CONTEXT_VALID_X13 = 1ULL << 13;
+ static const uint64_t CONTEXT_VALID_X14 = 1ULL << 14;
+ static const uint64_t CONTEXT_VALID_X15 = 1ULL << 15;
+ static const uint64_t CONTEXT_VALID_X16 = 1ULL << 16;
+ static const uint64_t CONTEXT_VALID_X17 = 1ULL << 17;
+ static const uint64_t CONTEXT_VALID_X18 = 1ULL << 18;
+ static const uint64_t CONTEXT_VALID_X19 = 1ULL << 19;
+ static const uint64_t CONTEXT_VALID_X20 = 1ULL << 20;
+ static const uint64_t CONTEXT_VALID_X21 = 1ULL << 21;
+ static const uint64_t CONTEXT_VALID_X22 = 1ULL << 22;
+ static const uint64_t CONTEXT_VALID_X23 = 1ULL << 23;
+ static const uint64_t CONTEXT_VALID_X24 = 1ULL << 24;
+ static const uint64_t CONTEXT_VALID_X25 = 1ULL << 25;
+ static const uint64_t CONTEXT_VALID_X26 = 1ULL << 26;
+ static const uint64_t CONTEXT_VALID_X27 = 1ULL << 27;
+ static const uint64_t CONTEXT_VALID_X28 = 1ULL << 28;
+ static const uint64_t CONTEXT_VALID_X29 = 1ULL << 29;
+ static const uint64_t CONTEXT_VALID_X30 = 1ULL << 30;
+ static const uint64_t CONTEXT_VALID_X31 = 1ULL << 31;
+ static const uint64_t CONTEXT_VALID_X32 = 1ULL << 32;
+ static const uint64_t CONTEXT_VALID_ALL = ~CONTEXT_VALID_NONE;
+
+ // Aliases for registers with dedicated or conventional roles.
+ static const uint64_t CONTEXT_VALID_FP = CONTEXT_VALID_X29;
+ static const uint64_t CONTEXT_VALID_LR = CONTEXT_VALID_X30;
+ static const uint64_t CONTEXT_VALID_SP = CONTEXT_VALID_X31;
+ static const uint64_t CONTEXT_VALID_PC = CONTEXT_VALID_X32;
+
+ StackFrameARM64() : context(),
+ context_validity(CONTEXT_VALID_NONE) {}
+
+ // Return the validity flag for register xN.
+ static uint64_t RegisterValidFlag(int n) {
+ return 1ULL << n;
+ }
+
+ // Register state. This is only fully valid for the topmost frame in a
+ // stack. In other frames, the values of nonvolatile registers may be
+ // present, given sufficient debugging information. Refer to
+ // context_validity.
+ MDRawContextARM64 context;
+
+ // For each register in context whose value has been recovered, we set
+ // the corresponding CONTEXT_VALID_ bit in context_validity.
+ uint64_t context_validity;
+};
+
+struct StackFrameMIPS : public StackFrame {
+ // MIPS callee save registers for o32 ABI (32bit registers) are:
+ // 1. $s0-$s7,
+ // 2. $sp, $fp
+ // 3. $f20-$f31
+ //
+ // The register structure is available at
+ // http://en.wikipedia.org/wiki/MIPS_architecture#Compiler_register_usage
+
+#define INDEX_MIPS_REG_S0 MD_CONTEXT_MIPS_REG_S0 // 16
+#define INDEX_MIPS_REG_S7 MD_CONTEXT_MIPS_REG_S7 // 23
+#define INDEX_MIPS_REG_GP MD_CONTEXT_MIPS_REG_GP // 28
+#define INDEX_MIPS_REG_RA MD_CONTEXT_MIPS_REG_RA // 31
+#define INDEX_MIPS_REG_PC 34
+#define SHIFT_MIPS_REG_S0 0
+#define SHIFT_MIPS_REG_GP 8
+#define SHIFT_MIPS_REG_PC 12
+
+ enum ContextValidity {
+ CONTEXT_VALID_NONE = 0,
+ CONTEXT_VALID_S0 = 1 << 0, // $16
+ CONTEXT_VALID_S1 = 1 << 1, // $17
+ CONTEXT_VALID_S2 = 1 << 2, // $18
+ CONTEXT_VALID_S3 = 1 << 3, // $19
+ CONTEXT_VALID_S4 = 1 << 4, // $20
+ CONTEXT_VALID_S5 = 1 << 5, // $21
+ CONTEXT_VALID_S6 = 1 << 6, // $22
+ CONTEXT_VALID_S7 = 1 << 7, // $23
+ // GP is not calee-save for o32 abi.
+ CONTEXT_VALID_GP = 1 << 8, // $28
+ CONTEXT_VALID_SP = 1 << 9, // $29
+ CONTEXT_VALID_FP = 1 << 10, // $30
+ CONTEXT_VALID_RA = 1 << 11, // $31
+ CONTEXT_VALID_PC = 1 << 12, // $34
+ CONTEXT_VALID_ALL = ~CONTEXT_VALID_NONE
+ };
+
+ // Return the ContextValidity flag for register rN.
+ static ContextValidity RegisterValidFlag(int n) {
+ if (n >= INDEX_MIPS_REG_S0 && n <= INDEX_MIPS_REG_S7)
+ return ContextValidity(1 << (n - INDEX_MIPS_REG_S0 + SHIFT_MIPS_REG_S0));
+ else if (n >= INDEX_MIPS_REG_GP && n <= INDEX_MIPS_REG_RA)
+ return ContextValidity(1 << (n - INDEX_MIPS_REG_GP + SHIFT_MIPS_REG_GP));
+ else if (n == INDEX_MIPS_REG_PC)
+ return ContextValidity(1 << SHIFT_MIPS_REG_PC);
+
+ return CONTEXT_VALID_NONE;
+ }
+
+ StackFrameMIPS() : context(), context_validity(CONTEXT_VALID_NONE) {}
+
+ // Register state. This is only fully valid for the topmost frame in a
+ // stack. In other frames, which registers are present depends on what
+ // debugging information were available. Refer to 'context_validity' below.
+ MDRawContextMIPS context;
+
+ // For each register in context whose value has been recovered,
+ // the corresponding CONTEXT_VALID_ bit in 'context_validity' is set.
+ //
+ // context_validity's type should actually be ContextValidity, but
+ // type int is used instead because the bitwise inclusive or operator
+ // yields an int when applied to enum values, and C++ doesn't
+ // silently convert from ints to enums.
+ int context_validity;
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_CPU_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/stack_frame_symbolizer.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/stack_frame_symbolizer.h
new file mode 100644
index 0000000000..0bbaae0a36
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/stack_frame_symbolizer.h
@@ -0,0 +1,110 @@
+// -*- mode: C++ -*-
+
+// Copyright (c) 2012 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Helper class that encapsulates the logic of how symbol supplier interacts
+// with source line resolver to fill stack frame information.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_SYMBOLIZER_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_SYMBOLIZER_H__
+
+#include <set>
+#include <string>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/processor/code_module.h"
+
+namespace google_breakpad {
+class CFIFrameInfo;
+class CodeModules;
+class SymbolSupplier;
+class SourceLineResolverInterface;
+struct StackFrame;
+struct SystemInfo;
+struct WindowsFrameInfo;
+
+class StackFrameSymbolizer {
+ public:
+ enum SymbolizerResult {
+ // Symbol data was found and successfully loaded in resolver.
+ // This does NOT guarantee source line info is found within symbol file.
+ kNoError,
+ // This indicates non-critical error, such as, no code module found for
+ // frame's instruction, no symbol file, or resolver failed to load symbol.
+ kError,
+ // This indicates error for which stack walk should be interrupted
+ // and retried in future.
+ kInterrupt,
+ // Symbol data was found and loaded in resolver however some corruptions
+ // were detected.
+ kWarningCorruptSymbols,
+ };
+
+ StackFrameSymbolizer(SymbolSupplier* supplier,
+ SourceLineResolverInterface* resolver);
+
+ virtual ~StackFrameSymbolizer() { }
+
+ // Encapsulate the step of resolving source line info for a stack frame.
+ // "frame" must not be NULL.
+ virtual SymbolizerResult FillSourceLineInfo(
+ const CodeModules* modules,
+ const CodeModules* unloaded_modules,
+ const SystemInfo* system_info,
+ StackFrame* stack_frame);
+
+ virtual WindowsFrameInfo* FindWindowsFrameInfo(const StackFrame* frame);
+
+ virtual CFIFrameInfo* FindCFIFrameInfo(const StackFrame* frame);
+
+ // Reset internal (locally owned) data as if the helper is re-instantiated.
+ // A typical case is to call Reset() after processing an individual report
+ // before start to process next one, in order to reset internal information
+ // about missing symbols found so far.
+ virtual void Reset() { no_symbol_modules_.clear(); }
+
+ // Returns true if there is valid implementation for stack symbolization.
+ virtual bool HasImplementation() { return resolver_ && supplier_; }
+
+ SourceLineResolverInterface* resolver() { return resolver_; }
+ SymbolSupplier* supplier() { return supplier_; }
+
+ protected:
+ SymbolSupplier* supplier_;
+ SourceLineResolverInterface* resolver_;
+ // A list of modules known to have symbols missing. This helps avoid
+ // repeated lookups for the missing symbols within one minidump.
+ std::set<string> no_symbol_modules_;
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_STACK_FRAME_SYMBOLIZER_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/stackwalker.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/stackwalker.h
new file mode 100644
index 0000000000..0c458d500e
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/stackwalker.h
@@ -0,0 +1,257 @@
+// Copyright (c) 2010 Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// stackwalker.h: Generic stackwalker.
+//
+// The Stackwalker class is an abstract base class providing common generic
+// methods that apply to stacks from all systems. Specific implementations
+// will extend this class by providing GetContextFrame and GetCallerFrame
+// methods to fill in system-specific data in a StackFrame structure.
+// Stackwalker assembles these StackFrame strucutres into a CallStack.
+//
+// Author: Mark Mentovai
+
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_STACKWALKER_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_STACKWALKER_H__
+
+#include <set>
+#include <string>
+#include <vector>
+
+#include "common/using_std_string.h"
+#include "google_breakpad/common/breakpad_types.h"
+#include "google_breakpad/processor/code_modules.h"
+#include "google_breakpad/processor/memory_region.h"
+#include "google_breakpad/processor/stack_frame_symbolizer.h"
+
+namespace google_breakpad {
+
+class CallStack;
+class DumpContext;
+class StackFrameSymbolizer;
+
+using std::set;
+using std::vector;
+
+class Stackwalker {
+ public:
+ virtual ~Stackwalker() {}
+
+ // Populates the given CallStack by calling GetContextFrame and
+ // GetCallerFrame. The frames are further processed to fill all available
+ // data. Returns true if the stackwalk completed, or false if it was
+ // interrupted by SymbolSupplier::GetSymbolFile().
+ // Upon return, |modules_without_symbols| will be populated with pointers to
+ // the code modules (CodeModule*) that DON'T have symbols.
+ // |modules_with_corrupt_symbols| will be populated with pointers to the
+ // modules which have corrupt symbols. |modules_without_symbols| and
+ // |modules_with_corrupt_symbols| DO NOT take ownership of the code modules.
+ // The lifetime of these code modules is the same as the lifetime of the
+ // CodeModules passed to the StackWalker constructor (which currently
+ // happens to be the lifetime of the Breakpad's ProcessingState object).
+ // There is a check for duplicate modules so no duplicates are expected.
+ bool Walk(CallStack* stack,
+ vector<const CodeModule*>* modules_without_symbols,
+ vector<const CodeModule*>* modules_with_corrupt_symbols);
+
+ // Returns a new concrete subclass suitable for the CPU that a stack was
+ // generated on, according to the CPU type indicated by the context
+ // argument. If no suitable concrete subclass exists, returns NULL.
+ static Stackwalker* StackwalkerForCPU(
+ const SystemInfo* system_info,
+ DumpContext* context,
+ MemoryRegion* memory,
+ const CodeModules* modules,
+ const CodeModules* unloaded_modules,
+ StackFrameSymbolizer* resolver_helper);
+
+
+ static void set_max_frames(uint32_t max_frames) {
+ max_frames_ = max_frames;
+ max_frames_set_ = true;
+ }
+ static uint32_t max_frames() { return max_frames_; }
+
+ static void set_max_frames_scanned(uint32_t max_frames_scanned) {
+ max_frames_scanned_ = max_frames_scanned;
+ }
+
+ protected:
+ // system_info identifies the operating system, NULL or empty if unknown.
+ // memory identifies a MemoryRegion that provides the stack memory
+ // for the stack to walk. modules, if non-NULL, is a CodeModules
+ // object that is used to look up which code module each stack frame is
+ // associated with. frame_symbolizer is a StackFrameSymbolizer object that
+ // encapsulates the logic of how source line resolver interacts with symbol
+ // supplier to symbolize stack frame and look up caller frame information
+ // (see stack_frame_symbolizer.h).
+ // frame_symbolizer MUST NOT be NULL (asserted).
+ Stackwalker(const SystemInfo* system_info,
+ MemoryRegion* memory,
+ const CodeModules* modules,
+ StackFrameSymbolizer* frame_symbolizer);
+
+ // This can be used to filter out potential return addresses when
+ // the stack walker resorts to stack scanning.
+ // Returns true if any of:
+ // * This address is within a loaded module, but we don't have symbols
+ // for that module.
+ // * This address is within a loaded module for which we have symbols,
+ // and falls inside a function in that module.
+ // Returns false otherwise.
+ bool InstructionAddressSeemsValid(uint64_t address) const;
+
+ // Checks whether we should stop the stack trace.
+ // (either we reached the end-of-stack or we detected a
+ // broken callstack invariant)
+ bool TerminateWalk(uint64_t caller_ip,
+ uint64_t caller_sp,
+ uint64_t callee_sp,
+ bool first_unwind) const;
+
+ // The default number of words to search through on the stack
+ // for a return address.
+ static const int kRASearchWords;
+
+ template<typename InstructionType>
+ bool ScanForReturnAddress(InstructionType location_start,
+ InstructionType* location_found,
+ InstructionType* ip_found,
+ bool is_context_frame) {
+ // When searching for the caller of the context frame,
+ // allow the scanner to look farther down the stack.
+ const int search_words = is_context_frame ?
+ kRASearchWords * 4 :
+ kRASearchWords;
+
+ return ScanForReturnAddress(location_start, location_found, ip_found,
+ search_words);
+ }
+
+ // Scan the stack starting at location_start, looking for an address
+ // that looks like a valid instruction pointer. Addresses must
+ // 1) be contained in the current stack memory
+ // 2) pass the checks in InstructionAddressSeemsValid
+ //
+ // Returns true if a valid-looking instruction pointer was found.
+ // When returning true, sets location_found to the address at which
+ // the value was found, and ip_found to the value contained at that
+ // location in memory.
+ template<typename InstructionType>
+ bool ScanForReturnAddress(InstructionType location_start,
+ InstructionType* location_found,
+ InstructionType* ip_found,
+ int searchwords) {
+ for (InstructionType location = location_start;
+ location <= location_start + searchwords * sizeof(InstructionType);
+ location += sizeof(InstructionType)) {
+ InstructionType ip;
+ if (!memory_->GetMemoryAtAddress(location, &ip))
+ break;
+
+ if (modules_ && modules_->GetModuleForAddress(ip) &&
+ InstructionAddressSeemsValid(ip)) {
+ *ip_found = ip;
+ *location_found = location;
+ return true;
+ }
+ }
+ // nothing found
+ return false;
+ }
+
+ // Information about the system that produced the minidump. Subclasses
+ // and the SymbolSupplier may find this information useful.
+ const SystemInfo* system_info_;
+
+ // The stack memory to walk. Subclasses will require this region to
+ // get information from the stack.
+ MemoryRegion* memory_;
+
+ // A list of modules, for populating each StackFrame's module information.
+ // This field is optional and may be NULL.
+ const CodeModules* modules_;
+
+ // A list of unloaded modules, for populating frames which aren't matched
+ // to any loaded modules.
+ // This field is optional and may be NULL.
+ const CodeModules* unloaded_modules_;
+
+ protected:
+ // The StackFrameSymbolizer implementation.
+ StackFrameSymbolizer* frame_symbolizer_;
+
+ private:
+ // Obtains the context frame, the innermost called procedure in a stack
+ // trace. Returns NULL on failure. GetContextFrame allocates a new
+ // StackFrame (or StackFrame subclass), ownership of which is taken by
+ // the caller.
+ virtual StackFrame* GetContextFrame() = 0;
+
+ // Obtains a caller frame. Each call to GetCallerFrame should return the
+ // frame that called the last frame returned by GetContextFrame or
+ // GetCallerFrame. To aid this purpose, stack contains the CallStack
+ // made of frames that have already been walked. GetCallerFrame should
+ // return NULL on failure or when there are no more caller frames (when
+ // the end of the stack has been reached). GetCallerFrame allocates a new
+ // StackFrame (or StackFrame subclass), ownership of which is taken by
+ // the caller. |stack_scan_allowed| controls whether stack scanning is
+ // an allowable frame-recovery method, since it is desirable to be able to
+ // disable stack scanning in performance-critical use cases.
+ //
+ // CONSIDER: a way to differentiate between:
+ // - full stack traces
+ // - explicitly truncated traces (max_frames_)
+ // - stopping after max scanned frames
+ // - failed stack walk (breaking one of the stack walk invariants)
+ //
+ virtual StackFrame* GetCallerFrame(const CallStack* stack,
+ bool stack_scan_allowed) = 0;
+
+ // The maximum number of frames Stackwalker will walk through.
+ // This defaults to 1024 to prevent infinite loops.
+ static uint32_t max_frames_;
+
+ // Keep track of whether max_frames_ has been set by the user, since
+ // it affects whether or not an error message is printed in the case
+ // where an unwind got stopped by the limit.
+ static bool max_frames_set_;
+
+ // The maximum number of stack-scanned and otherwise untrustworthy
+ // frames allowed. Stack-scanning can be expensive, so the option to
+ // disable or limit it is helpful in cases where unwind performance is
+ // important. This defaults to 1024, the same as max_frames_.
+ static uint32_t max_frames_scanned_;
+};
+
+} // namespace google_breakpad
+
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_STACKWALKER_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/symbol_supplier.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/symbol_supplier.h
new file mode 100644
index 0000000000..a042081f3b
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/symbol_supplier.h
@@ -0,0 +1,99 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// The caller may implement the SymbolSupplier abstract base class
+// to provide symbols for a given module.
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_SYMBOL_SUPPLIER_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_SYMBOL_SUPPLIER_H__
+
+#include <string>
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+class CodeModule;
+struct SystemInfo;
+
+class SymbolSupplier {
+ public:
+ // Result type for GetSymbolFile
+ enum SymbolResult {
+ // no symbols were found, but continue processing
+ NOT_FOUND,
+
+ // symbols were found, and the path has been placed in symbol_file
+ FOUND,
+
+ // stops processing the minidump immediately
+ INTERRUPT
+ };
+
+ virtual ~SymbolSupplier() {}
+
+ // Retrieves the symbol file for the given CodeModule, placing the
+ // path in symbol_file if successful. system_info contains strings
+ // identifying the operating system and CPU; SymbolSupplier may use
+ // to help locate the symbol file. system_info may be NULL or its
+ // fields may be empty if these values are unknown. symbol_file
+ // must be a pointer to a valid string
+ virtual SymbolResult GetSymbolFile(const CodeModule *module,
+ const SystemInfo *system_info,
+ string *symbol_file) = 0;
+ // Same as above, except also places symbol data into symbol_data.
+ // If symbol_data is NULL, the data is not returned.
+ // TODO(nealsid) Once we have symbol data caching behavior implemented
+ // investigate making all symbol suppliers implement all methods,
+ // and make this pure virtual
+ virtual SymbolResult GetSymbolFile(const CodeModule *module,
+ const SystemInfo *system_info,
+ string *symbol_file,
+ string *symbol_data) = 0;
+
+ // Same as above, except allocates data buffer on heap and then places the
+ // symbol data into the buffer as C-string.
+ // SymbolSupplier is responsible for deleting the data buffer. After the call
+ // to GetCStringSymbolData(), the caller should call FreeSymbolData(const
+ // Module *module) once the data buffer is no longer needed.
+ // If symbol_data is not NULL, symbol supplier won't return FOUND unless it
+ // returns a valid buffer in symbol_data, e.g., returns INTERRUPT on memory
+ // allocation failure.
+ virtual SymbolResult GetCStringSymbolData(const CodeModule *module,
+ const SystemInfo *system_info,
+ string *symbol_file,
+ char **symbol_data,
+ size_t *symbol_data_size) = 0;
+
+ // Frees the data buffer allocated for the module in GetCStringSymbolData.
+ virtual void FreeSymbolData(const CodeModule *module) = 0;
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_SYMBOL_SUPPLIER_H__
diff --git a/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/system_info.h b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/system_info.h
new file mode 100644
index 0000000000..8d2f60be48
--- /dev/null
+++ b/toolkit/crashreporter/google-breakpad/src/google_breakpad/processor/system_info.h
@@ -0,0 +1,106 @@
+// Copyright (c) 2006, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// system_info.h: Information about the system that was running a program
+// when a crash report was produced.
+//
+// Author: Mark Mentovai
+
+#ifndef GOOGLE_BREAKPAD_PROCESSOR_SYSTEM_INFO_H__
+#define GOOGLE_BREAKPAD_PROCESSOR_SYSTEM_INFO_H__
+
+#include <string>
+
+#include "common/using_std_string.h"
+
+namespace google_breakpad {
+
+struct SystemInfo {
+ public:
+ SystemInfo() : os(), os_short(), os_version(), cpu(), cpu_info(),
+ cpu_count(0), gl_version(), gl_vendor(), gl_renderer() {}
+
+ // Resets the SystemInfo object to its default values.
+ void Clear() {
+ os.clear();
+ os_short.clear();
+ os_version.clear();
+ cpu.clear();
+ cpu_info.clear();
+ cpu_count = 0;
+ gl_version.clear();
+ gl_vendor.clear();
+ gl_renderer.clear();
+ }
+
+ // A string identifying the operating system, such as "Windows NT",
+ // "Mac OS X", or "Linux". If the information is present in the dump but
+ // its value is unknown, this field will contain a numeric value. If
+ // the information is not present in the dump, this field will be empty.
+ string os;
+
+ // A short form of the os string, using lowercase letters and no spaces,
+ // suitable for use in a filesystem. Possible values include "windows",
+ // "mac", "linux" and "nacl". Empty if the information is not present
+ // in the dump or if the OS given by the dump is unknown. The values
+ // stored in this field should match those used by
+ // MinidumpSystemInfo::GetOS.
+ string os_short;
+
+ // A string identifying the version of the operating system, such as
+ // "5.1.2600 Service Pack 2" or "10.4.8 8L2127". If the dump does not
+ // contain this information, this field will be empty.
+ string os_version;
+
+ // A string identifying the basic CPU family, such as "x86" or "ppc".
+ // If this information is present in the dump but its value is unknown,
+ // this field will contain a numeric value. If the information is not
+ // present in the dump, this field will be empty. The values stored in
+ // this field should match those used by MinidumpSystemInfo::GetCPU.
+ string cpu;
+
+ // A string further identifying the specific CPU, such as
+ // "GenuineIntel level 6 model 13 stepping 8". If the information is not
+ // present in the dump, or additional identifying information is not
+ // defined for the CPU family, this field will be empty.
+ string cpu_info;
+
+ // The number of processors in the system. Will be greater than one for
+ // multi-core systems.
+ int cpu_count;
+
+ // The GPU information. Currently only populated in microdumps.
+ string gl_version;
+ string gl_vendor;
+ string gl_renderer;
+};
+
+} // namespace google_breakpad
+
+#endif // GOOGLE_BREAKPAD_PROCESSOR_SYSTEM_INFO_H__