} DBGKD_ANY_CONTROL_SET, *PDBGKD_ANY_CONTROL_SET;
#include <poppack.h>
+#if defined(_M_X86)
typedef X86_DBGKD_CONTROL_SET DBGKD_CONTROL_SET, *PDBGKD_CONTROL_SET;
+#elif defined(_M_AMD64)
+typedef AMD64_DBGKD_CONTROL_SET DBGKD_CONTROL_SET, *PDBGKD_CONTROL_SET;
+#else
+#error unsupported architecture
+#endif
//
// DBGKM Structure for Exceptions
USHORT SegFs;
} AMD64_DBGKD_CONTROL_REPORT, *PAMD64_DBGKD_CONTROL_REPORT;
-typedef X86_DBGKD_CONTROL_REPORT DBGKD_CONTROL_REPORT;
+#if defined(_M_X86)
+typedef X86_DBGKD_CONTROL_REPORT DBGKD_CONTROL_REPORT, *PDBGKD_CONTROL_REPORT;
+#elif defined(_M_AMD64)
+typedef AMD64_DBGKD_CONTROL_REPORT DBGKD_CONTROL_REPORT, *PDBGKD_CONTROL_REPORT;
+#else
+#error unsupported architecture
+#endif
typedef struct _DBGKD_ANY_CONTROL_REPORT
{
}
}
+#ifdef _WIN64
+#define ExceptionRecordTo64(Ex, Ex64) \
+ (*(Ex64)) = (*(PEXCEPTION_RECORD64)(Ex))
+#else
+#define ExceptionRecordTo64(Ex, Ex64) \
+ ExceptionRecord32To64((PEXCEPTION_RECORD32)Ex, Ex64)
+#endif
+
#endif