- Set eol-style to native.
authorAleksey Bragin <aleksey@reactos.org>
Tue, 22 Jul 2008 10:35:49 +0000 (10:35 +0000)
committerAleksey Bragin <aleksey@reactos.org>
Tue, 22 Jul 2008 10:35:49 +0000 (10:35 +0000)
svn path=/trunk/; revision=34676

reactos/include/reactos/drivers/bootvid/bootvid.h
reactos/include/reactos/elf/reactos.h
reactos/include/reactos/kddll.h
reactos/include/reactos/libs/audiosrv/audiosrv.h
reactos/include/reactos/win32k/ntgdityp.h
reactos/include/reactos/windbgkd.h

index c9110f4..406d234 100644 (file)
@@ -1,71 +1,71 @@
-#ifndef _BOOTVID_\r
-#define _BOOTVID_\r
-\r
-BOOLEAN\r
-NTAPI\r
-VidInitialize(IN BOOLEAN SetMode);\r
-\r
-VOID\r
-NTAPI\r
-VidResetDisplay(IN BOOLEAN HalReset);\r
-\r
-ULONG\r
-NTAPI\r
-VidSetTextColor(ULONG Color);\r
-\r
-VOID\r
-NTAPI\r
-VidDisplayStringXY(PUCHAR String,\r
-                   ULONG Left,\r
-                   ULONG Top,\r
-                   BOOLEAN Transparent);\r
-\r
-VOID\r
-NTAPI\r
-VidSetScrollRegion(ULONG x1,\r
-                   ULONG y1,\r
-                   ULONG x2,\r
-                   ULONG y2);\r
-\r
-\r
-VOID\r
-NTAPI\r
-VidCleanUp(VOID);\r
-\r
-VOID\r
-NTAPI\r
-VidBufferToScreenBlt(IN PUCHAR Buffer,\r
-                     IN ULONG Left,\r
-                     IN ULONG Top,\r
-                     IN ULONG Width,\r
-                     IN ULONG Height,\r
-                     IN ULONG Delta);\r
-\r
-VOID\r
-NTAPI\r
-VidDisplayString(PUCHAR String);\r
-\r
-VOID\r
-NTAPI\r
-VidBitBlt(PUCHAR Buffer,\r
-          ULONG Left,\r
-          ULONG Top);\r
-\r
-VOID\r
-NTAPI\r
-VidScreenToBufferBlt(PUCHAR Buffer,\r
-                     ULONG Left,\r
-                     ULONG Top,\r
-                     ULONG Width,\r
-                     ULONG Height,\r
-                     ULONG Delta);\r
-\r
-VOID\r
-NTAPI\r
-VidSolidColorFill(IN ULONG Left,\r
-                  IN ULONG Top,\r
-                  IN ULONG Right,\r
-                  IN ULONG Bottom,\r
-                  IN UCHAR Color);\r
-\r
-#endif\r
+#ifndef _BOOTVID_
+#define _BOOTVID_
+
+BOOLEAN
+NTAPI
+VidInitialize(IN BOOLEAN SetMode);
+
+VOID
+NTAPI
+VidResetDisplay(IN BOOLEAN HalReset);
+
+ULONG
+NTAPI
+VidSetTextColor(ULONG Color);
+
+VOID
+NTAPI
+VidDisplayStringXY(PUCHAR String,
+                   ULONG Left,
+                   ULONG Top,
+                   BOOLEAN Transparent);
+
+VOID
+NTAPI
+VidSetScrollRegion(ULONG x1,
+                   ULONG y1,
+                   ULONG x2,
+                   ULONG y2);
+
+
+VOID
+NTAPI
+VidCleanUp(VOID);
+
+VOID
+NTAPI
+VidBufferToScreenBlt(IN PUCHAR Buffer,
+                     IN ULONG Left,
+                     IN ULONG Top,
+                     IN ULONG Width,
+                     IN ULONG Height,
+                     IN ULONG Delta);
+
+VOID
+NTAPI
+VidDisplayString(PUCHAR String);
+
+VOID
+NTAPI
+VidBitBlt(PUCHAR Buffer,
+          ULONG Left,
+          ULONG Top);
+
+VOID
+NTAPI
+VidScreenToBufferBlt(PUCHAR Buffer,
+                     ULONG Left,
+                     ULONG Top,
+                     ULONG Width,
+                     ULONG Height,
+                     ULONG Delta);
+
+VOID
+NTAPI
+VidSolidColorFill(IN ULONG Left,
+                  IN ULONG Top,
+                  IN ULONG Right,
+                  IN ULONG Bottom,
+                  IN UCHAR Color);
+
+#endif
index d0d7f7b..00743db 100644 (file)
@@ -1,7 +1,7 @@
-#ifndef _SYS_ELF_REACTOS_H_\r
-#define _SYS_ELF_REACTOS_H_ 1\r
-\r
-#define TYPE_PEHEADER (SHT_LOOS+1)\r
-#define ADDR24_MASK 0x03fffffc\r
-\r
-#endif/*_SYS_ELF_REACTOS_H_*/\r
+#ifndef _SYS_ELF_REACTOS_H_
+#define _SYS_ELF_REACTOS_H_ 1
+
+#define TYPE_PEHEADER (SHT_LOOS+1)
+#define ADDR24_MASK 0x03fffffc
+
+#endif/*_SYS_ELF_REACTOS_H_*/
index 4d90999..6790fee 100644 (file)
@@ -1,54 +1,54 @@
-#ifndef _KDDLL_\r
-#define _KDDLL_\r
-\r
-typedef enum _KDSTATUS\r
-{\r
-    KdPacketReceived = 0,\r
-    KdPacketTimedOut,\r
-    KdPacketNeedsResend\r
-} KDSTATUS;\r
-\r
-NTSTATUS\r
-NTAPI\r
-KdDebuggerInitialize0(\r
-    IN PLOADER_PARAMETER_BLOCK LoaderBlock\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-KdDebuggerInitialize1(\r
-    IN PLOADER_PARAMETER_BLOCK LoaderBlock\r
-);\r
-\r
-KDSTATUS\r
-NTAPI\r
-KdReceivePacket(\r
-    IN ULONG PacketType,\r
-    OUT PSTRING MessageHeader,\r
-    OUT PSTRING MessageData,\r
-    OUT PULONG DataLength,\r
-    IN OUT PKD_CONTEXT Context\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-KdRestore(\r
-    IN BOOLEAN SleepTransition\r
-);\r
-\r
-NTSTATUS\r
-NTAPI\r
-KdSave(\r
-    IN BOOLEAN SleepTransition\r
-);\r
-\r
-VOID\r
-NTAPI\r
-KdSendPacket(\r
-    IN ULONG PacketType,\r
-    IN PSTRING MessageHeader,\r
-    IN PSTRING MessageData,\r
-    IN OUT PKD_CONTEXT Context\r
-);\r
-\r
-#endif\r
+#ifndef _KDDLL_
+#define _KDDLL_
+
+typedef enum _KDSTATUS
+{
+    KdPacketReceived = 0,
+    KdPacketTimedOut,
+    KdPacketNeedsResend
+} KDSTATUS;
+
+NTSTATUS
+NTAPI
+KdDebuggerInitialize0(
+    IN PLOADER_PARAMETER_BLOCK LoaderBlock
+);
+
+NTSTATUS
+NTAPI
+KdDebuggerInitialize1(
+    IN PLOADER_PARAMETER_BLOCK LoaderBlock
+);
+
+KDSTATUS
+NTAPI
+KdReceivePacket(
+    IN ULONG PacketType,
+    OUT PSTRING MessageHeader,
+    OUT PSTRING MessageData,
+    OUT PULONG DataLength,
+    IN OUT PKD_CONTEXT Context
+);
+
+NTSTATUS
+NTAPI
+KdRestore(
+    IN BOOLEAN SleepTransition
+);
+
+NTSTATUS
+NTAPI
+KdSave(
+    IN BOOLEAN SleepTransition
+);
+
+VOID
+NTAPI
+KdSendPacket(
+    IN ULONG PacketType,
+    IN PSTRING MessageHeader,
+    IN PSTRING MessageData,
+    IN OUT PKD_CONTEXT Context
+);
+
+#endif
index 7abb85a..5d14ba9 100644 (file)
@@ -1,60 +1,60 @@
-/*\r
- * PROJECT:          ReactOS\r
- * LICENSE:          GPL - See COPYING in the top level directory\r
- * FILE:             include/reactos/libs/audiosrv/audiosrv.h\r
- * PURPOSE:          Audio Service Plug and Play list\r
- * COPYRIGHT:        Copyright 2007 Andrew Greenwood\r
- */\r
-\r
-#include <windows.h>\r
-\r
-#ifndef AUDIOSRV_H\r
-#define AUDIOSRV_H\r
-\r
-/* This is currently set to avoid conflicting service names in Windows! */\r
-#define SERVICE_NAME                L"RosAudioSrv"\r
-\r
-/* A named mutex is used for synchronizing access to the device list.\r
-   If this mutex doesn't exist, it means the audio service isn't running. */\r
-#define AUDIO_LIST_LOCK_NAME        L"Global\\AudioDeviceListLock"\r
-\r
-/* ...and this is where the device list will be available */\r
-#define AUDIO_LIST_NAME             L"Global\\AudioDeviceList"\r
-\r
-/* Amount of shared memory to allocate */\r
-#define AUDIO_LIST_MAX_SIZE         65536\r
-\r
-typedef struct\r
-{\r
-    DWORD enabled;\r
-    WCHAR path[];       /* The device object path (excluded from sizeof) */\r
-} PnP_AudioDevice;\r
-\r
-typedef struct\r
-{\r
-    DWORD size;         /* Size of the shared mem */\r
-    DWORD max_size;     /* Amount of mem available */\r
-    DWORD device_count; /* Number of devices */\r
-    PnP_AudioDevice first_device[];\r
-} PnP_AudioHeader;\r
-\r
-\r
-/* Calculate amount of memory consumed by a wide string - this includes the\r
-   terminating NULL. */\r
-\r
-#define WideStringSize(str) \\r
-    ( (lstrlenW(str) + 1) * sizeof(WCHAR) )\r
-\r
-BOOL\r
-InitializeAudioDeviceListLock();\r
-\r
-VOID\r
-KillAudioDeviceListLock();\r
-\r
-VOID\r
-LockAudioDeviceList();\r
-\r
-VOID\r
-UnlockAudioDeviceList();\r
-\r
-#endif\r
+/*
+ * PROJECT:          ReactOS
+ * LICENSE:          GPL - See COPYING in the top level directory
+ * FILE:             include/reactos/libs/audiosrv/audiosrv.h
+ * PURPOSE:          Audio Service Plug and Play list
+ * COPYRIGHT:        Copyright 2007 Andrew Greenwood
+ */
+
+#include <windows.h>
+
+#ifndef AUDIOSRV_H
+#define AUDIOSRV_H
+
+/* This is currently set to avoid conflicting service names in Windows! */
+#define SERVICE_NAME                L"RosAudioSrv"
+
+/* A named mutex is used for synchronizing access to the device list.
+   If this mutex doesn't exist, it means the audio service isn't running. */
+#define AUDIO_LIST_LOCK_NAME        L"Global\\AudioDeviceListLock"
+
+/* ...and this is where the device list will be available */
+#define AUDIO_LIST_NAME             L"Global\\AudioDeviceList"
+
+/* Amount of shared memory to allocate */
+#define AUDIO_LIST_MAX_SIZE         65536
+
+typedef struct
+{
+    DWORD enabled;
+    WCHAR path[];       /* The device object path (excluded from sizeof) */
+} PnP_AudioDevice;
+
+typedef struct
+{
+    DWORD size;         /* Size of the shared mem */
+    DWORD max_size;     /* Amount of mem available */
+    DWORD device_count; /* Number of devices */
+    PnP_AudioDevice first_device[];
+} PnP_AudioHeader;
+
+
+/* Calculate amount of memory consumed by a wide string - this includes the
+   terminating NULL. */
+
+#define WideStringSize(str) \
+    ( (lstrlenW(str) + 1) * sizeof(WCHAR) )
+
+BOOL
+InitializeAudioDeviceListLock();
+
+VOID
+KillAudioDeviceListLock();
+
+VOID
+LockAudioDeviceList();
+
+VOID
+UnlockAudioDeviceList();
+
+#endif
index dd488d6..56ea628 100644 (file)
@@ -96,12 +96,12 @@ typedef enum _TRANSFORMTYPE
     GdiDpToLp,
     GdiLpToDp,
 } TRANSFORMTYPE, *PTRANSFORMTYPE;
-\r
-/* MATRIX flAccel flags */\r
-enum\r
-{\r
-    MX_SCALE = 1,\r
-};\r
+
+/* MATRIX flAccel flags */
+enum
+{
+    MX_SCALE = 1,
+};
 
 typedef enum GDIObjType
 {
@@ -221,8 +221,8 @@ typedef struct _CHWIDTHINFO
 
 typedef struct _UNIVERSAL_FONT_ID
 {
-    ULONG CheckSum;\r
-    ULONG Index;\r
+    ULONG CheckSum;
+    ULONG Index;
 } UNIVERSAL_FONT_ID, *PUNIVERSAL_FONT_ID;
 
 typedef struct _REALIZATION_INFO // Based on LOCALESIGNATURE
@@ -341,7 +341,7 @@ typedef struct _EFLOAT_S
     LONG lMant;
     LONG lExp;
 } EFLOAT_S;
-\r
+
 /* XFORM Structures */
 typedef struct _MATRIX_S
 {
index ea9736a..8738925 100644 (file)
-#ifndef _WINDBGKD_\r
-#define _WINDBGKD_\r
-\r
-//\r
-// Dependencies\r
-//\r
-#include "wdbgexts.h"\r
-\r
-//\r
-// Conversion Macros\r
-//\r
-#define COPYSE(p64, p32, f)                 \\r
-    p64->f = (ULONG64)(LONG64)(LONG)p32->f\r
-\r
-//\r
-// Packet Size and Control Stream Size\r
-//\r
-#define PACKET_MAX_SIZE                     4000\r
-#define DBGKD_MAXSTREAM                     16\r
-\r
-//\r
-// Magic Packet IDs\r
-//\r
-#define INITIAL_PACKET_ID                   0x80800000\r
-#define SYNC_PACKET_ID                      0x00000800\r
-\r
-//\r
-// Magic Packet bytes\r
-//\r
-#define BREAKIN_PACKET                      0x62626262\r
-#define BREAKIN_PACKET_BYTE                 0x62\r
-#define PACKET_LEADER                       0x30303030\r
-#define PACKET_LEADER_BYTE                  0x30\r
-#define CONTROL_PACKET_LEADER               0x69696969\r
-#define CONTROL_PACKET_LEADER_BYTE          0x69\r
-#define PACKET_TRAILING_BYTE                0xAA\r
-\r
-//\r
-// Packet Types\r
-//\r
-#define PACKET_TYPE_UNUSED                  0\r
-#define PACKET_TYPE_KD_STATE_CHANGE32       1\r
-#define PACKET_TYPE_KD_STATE_MANIPULATE     2\r
-#define PACKET_TYPE_KD_DEBUG_IO             3\r
-#define PACKET_TYPE_KD_ACKNOWLEDGE          4\r
-#define PACKET_TYPE_KD_RESEND               5\r
-#define PACKET_TYPE_KD_RESET                6\r
-#define PACKET_TYPE_KD_STATE_CHANGE64       7\r
-#define PACKET_TYPE_KD_POLL_BREAKIN         8\r
-#define PACKET_TYPE_KD_TRACE_IO             9\r
-#define PACKET_TYPE_KD_CONTROL_REQUEST      10\r
-#define PACKET_TYPE_KD_FILE_IO              11\r
-#define PACKET_TYPE_MAX                     12\r
-\r
-//\r
-// Wait State Change Types\r
-//\r
-#define DbgKdMinimumStateChange             0x00003030\r
-#define DbgKdExceptionStateChange           0x00003030\r
-#define DbgKdLoadSymbolsStateChange         0x00003031\r
-#define DbgKdCommandStringStateChange       0x00003032\r
-#define DbgKdMaximumStateChange             0x00003033\r
-\r
-//\r
-// Manipulate Types\r
-//\r
-#define DbgKdMinimumManipulate              0x00003130\r
-#define DbgKdReadVirtualMemoryApi           0x00003130\r
-#define DbgKdWriteVirtualMemoryApi          0x00003131\r
-#define DbgKdGetContextApi                  0x00003132\r
-#define DbgKdSetContextApi                  0x00003133\r
-#define DbgKdWriteBreakPointApi             0x00003134\r
-#define DbgKdRestoreBreakPointApi           0x00003135\r
-#define DbgKdContinueApi                    0x00003136\r
-#define DbgKdReadControlSpaceApi            0x00003137\r
-#define DbgKdWriteControlSpaceApi           0x00003138\r
-#define DbgKdReadIoSpaceApi                 0x00003139\r
-#define DbgKdWriteIoSpaceApi                0x0000313A\r
-#define DbgKdRebootApi                      0x0000313B\r
-#define DbgKdContinueApi2                   0x0000313C\r
-#define DbgKdReadPhysicalMemoryApi          0x0000313D\r
-#define DbgKdWritePhysicalMemoryApi         0x0000313E\r
-#define DbgKdQuerySpecialCallsApi           0x0000313F\r
-#define DbgKdSetSpecialCallApi              0x00003140\r
-#define DbgKdClearSpecialCallsApi           0x00003141\r
-#define DbgKdSetInternalBreakPointApi       0x00003142\r
-#define DbgKdGetInternalBreakPointApi       0x00003143\r
-#define DbgKdReadIoSpaceExtendedApi         0x00003144\r
-#define DbgKdWriteIoSpaceExtendedApi        0x00003145\r
-#define DbgKdGetVersionApi                  0x00003146\r
-#define DbgKdWriteBreakPointExApi           0x00003147\r
-#define DbgKdRestoreBreakPointExApi         0x00003148\r
-#define DbgKdCauseBugCheckApi               0x00003149\r
-#define DbgKdSwitchProcessor                0x00003150\r
-#define DbgKdPageInApi                      0x00003151\r
-#define DbgKdReadMachineSpecificRegister    0x00003152\r
-#define DbgKdWriteMachineSpecificRegister   0x00003153\r
-#define OldVlm1                             0x00003154\r
-#define OldVlm2                             0x00003155\r
-#define DbgKdSearchMemoryApi                0x00003156\r
-#define DbgKdGetBusDataApi                  0x00003157\r
-#define DbgKdSetBusDataApi                  0x00003158\r
-#define DbgKdCheckLowMemoryApi              0x00003159\r
-#define DbgKdClearAllInternalBreakpointsApi 0x0000315A\r
-#define DbgKdFillMemoryApi                  0x0000315B\r
-#define DbgKdQueryMemoryApi                 0x0000315C\r
-#define DbgKdSwitchPartition                0x0000315D\r
-#define DbgKdMaximumManipulate              0x0000315E\r
-\r
-//\r
-// Debug I/O Types\r
-//\r
-#define DbgKdPrintStringApi                 0x00003230\r
-#define DbgKdGetStringApi                   0x00003231\r
-\r
-//\r
-// Control Report Flags\r
-//\r
-#define REPORT_INCLUDES_SEGS                0x0001\r
-#define REPORT_INCLUDES_CS                  0x0002\r
-\r
-//\r
-// Protocol Versions\r
-//\r
-#define DBGKD_64BIT_PROTOCOL_VERSION1       5\r
-#define DBGKD_64BIT_PROTOCOL_VERSION2       6\r
-\r
-//\r
-// Query Memory Address Spaces\r
-//\r
-#define DBGKD_QUERY_MEMORY_VIRTUAL          0\r
-#define DBGKD_QUERY_MEMORY_PROCESS          0\r
-#define DBGKD_QUERY_MEMORY_SESSION          1\r
-#define DBGKD_QUERY_MEMORY_KERNEL           2\r
-\r
-//\r
-// Query Memory Flags\r
-//\r
-#define DBGKD_QUERY_MEMORY_READ             0x01\r
-#define DBGKD_QUERY_MEMORY_WRITE            0x02\r
-#define DBGKD_QUERY_MEMORY_EXECUTE          0x04\r
-#define DBGKD_QUERY_MEMORY_FIXED            0x08\r
-\r
-//\r
-// KD Packet Structure\r
-//\r
-typedef struct _KD_PACKET\r
-{\r
-    ULONG PacketLeader;\r
-    USHORT PacketType;\r
-    USHORT ByteCount;\r
-    ULONG PacketId;\r
-    ULONG Checksum;\r
-} KD_PACKET, *PKD_PACKET;\r
-\r
-//\r
-// KD Context\r
-//\r
-typedef struct _KD_CONTEXT\r
-{\r
-    ULONG KdpDefaultRetries;\r
-    BOOLEAN KdpControlCPending;\r
-} KD_CONTEXT, *PKD_CONTEXT;\r
-\r
-//\r
-// Control Sets for Supported Architectures\r
-//\r
-#include <pshpack4.h>\r
-typedef struct _X86_DBGKD_CONTROL_SET\r
-{\r
-    ULONG TraceFlag;\r
-    ULONG Dr7;\r
-    ULONG CurrentSymbolStart;\r
-    ULONG CurrentSymbolEnd;\r
-} X86_DBGKD_CONTROL_SET, *PX86_DBGKD_CONTROL_SET;\r
-\r
-typedef struct _IA64_DBGKD_CONTROL_SET\r
-{\r
-    ULONG Continue;\r
-    ULONG64 CurrentSymbolStart;\r
-    ULONG64 CurrentSymbolEnd;\r
-} IA64_DBGKD_CONTROL_SET, *PIA64_DBGKD_CONTROL_SET;\r
-\r
-typedef struct _AMD64_DBGKD_CONTROL_SET\r
-{\r
-    ULONG TraceFlag;\r
-    ULONG64 Dr7;\r
-    ULONG64 CurrentSymbolStart;\r
-    ULONG64 CurrentSymbolEnd;\r
-} AMD64_DBGKD_CONTROL_SET, *PAMD64_DBGKD_CONTROL_SET;\r
-\r
-typedef struct _DBGKD_ANY_CONTROL_SET\r
-{\r
-    union\r
-    {\r
-        X86_DBGKD_CONTROL_SET X86ControlSet;\r
-        IA64_DBGKD_CONTROL_SET IA64ControlSet;\r
-        AMD64_DBGKD_CONTROL_SET Amd64ControlSet;\r
-    };\r
-} DBGKD_ANY_CONTROL_SET, *PDBGKD_ANY_CONTROL_SET;\r
-#include <poppack.h>\r
-\r
-typedef X86_DBGKD_CONTROL_SET DBGKD_CONTROL_SET;\r
-\r
-//\r
-// DBGKM Structure for Exceptions\r
-//\r
-typedef struct _DBGKM_EXCEPTION64\r
-{\r
-    EXCEPTION_RECORD64 ExceptionRecord;\r
-    ULONG FirstChance;\r
-} DBGKM_EXCEPTION64, *PDBGKM_EXCEPTION64;\r
-\r
-//\r
-// DBGKD Structure for State Change\r
-//\r
-typedef struct _DBGKD_CONTROL_REPORT\r
-{\r
-    ULONG Dr6;\r
-    ULONG Dr7;\r
-    USHORT InstructionCount;\r
-    USHORT ReportFlags;\r
-    UCHAR InstructionStream[DBGKD_MAXSTREAM];\r
-    USHORT SegCs;\r
-    USHORT SegDs;\r
-    USHORT SegEs;\r
-    USHORT SegFs;\r
-    ULONG EFlags;\r
-} DBGKD_CONTROL_REPORT, *PDBGKD_CONTROL_REPORT;\r
-\r
-//\r
-// DBGKD Structure for Debug I/O Type Print String\r
-//\r
-typedef struct _DBGKD_PRINT_STRING\r
-{\r
-    ULONG LengthOfString;\r
-} DBGKD_PRINT_STRING, *PDBGKD_PRINT_STRING;\r
-\r
-//\r
-// DBGKD Structure for Debug I/O Type Get String\r
-//\r
-typedef struct _DBGKD_GET_STRING\r
-{\r
-    ULONG LengthOfPromptString;\r
-    ULONG LengthOfStringRead;\r
-} DBGKD_GET_STRING, *PDBGKD_GET_STRING;\r
-\r
-//\r
-// DBGKD Structure for Debug I/O\r
-//\r
-typedef struct _DBGKD_DEBUG_IO\r
-{\r
-    ULONG ApiNumber;\r
-    USHORT ProcessorLevel;\r
-    USHORT Processor;\r
-    union\r
-    {\r
-        DBGKD_PRINT_STRING PrintString;\r
-        DBGKD_GET_STRING GetString;\r
-    } u;\r
-} DBGKD_DEBUG_IO, *PDBGKD_DEBUG_IO;\r
-\r
-//\r
-// DBGKD Structure for Load Symbols\r
-//\r
-typedef struct _DBGKD_LOAD_SYMBOLS64\r
-{\r
-    ULONG PathNameLength;\r
-    ULONG64 BaseOfDll;\r
-    ULONG64 ProcessId;\r
-    ULONG CheckSum;\r
-    ULONG SizeOfImage;\r
-    BOOLEAN UnloadSymbols;\r
-} DBGKD_LOAD_SYMBOLS64, *PDBGKD_LOAD_SYMBOLS64;\r
-\r
-//\r
-// DBGKD Structure for Wait State Change\r
-//\r
-typedef struct _DBGKD_WAIT_STATE_CHANGE64\r
-{\r
-    ULONG NewState;\r
-    USHORT ProcessorLevel;\r
-    USHORT Processor;\r
-    ULONG NumberProcessors;\r
-    ULONG64 Thread;\r
-    ULONG64 ProgramCounter;\r
-    union\r
-    {\r
-        DBGKM_EXCEPTION64 Exception;\r
-        DBGKD_LOAD_SYMBOLS64 LoadSymbols;\r
-    } u;\r
-    DBGKD_CONTROL_REPORT ControlReport;\r
-    CONTEXT Context;\r
-} DBGKD_WAIT_STATE_CHANGE64, *PDBGKD_WAIT_STATE_CHANGE64;\r
-\r
-//\r
-// DBGKD Manipulate Structures\r
-//\r
-typedef struct _DBGKD_READ_MEMORY64\r
-{\r
-    ULONG64 TargetBaseAddress;\r
-    ULONG TransferCount;\r
-    ULONG ActualBytesRead;\r
-} DBGKD_READ_MEMORY64, *PDBGKD_READ_MEMORY64;\r
-\r
-typedef struct _DBGKD_WRITE_MEMORY64\r
-{\r
-    ULONG64 TargetBaseAddress;\r
-    ULONG TransferCount;\r
-    ULONG ActualBytesWritten;\r
-} DBGKD_WRITE_MEMORY64, *PDBGKD_WRITE_MEMORY64;\r
-\r
-typedef struct _DBGKD_GET_CONTEXT\r
-{\r
-    ULONG Unused;\r
-} DBGKD_GET_CONTEXT, *PDBGKD_GET_CONTEXT;\r
-\r
-typedef struct _DBGKD_SET_CONTEXT\r
-{\r
-    ULONG ContextFlags;\r
-} DBGKD_SET_CONTEXT, *PDBGKD_SET_CONTEXT;\r
-\r
-typedef struct _DBGKD_WRITE_BREAKPOINT64\r
-{\r
-    ULONG64 BreakPointAddress;\r
-    ULONG BreakPointHandle;\r
-} DBGKD_WRITE_BREAKPOINT64, *PDBGKD_WRITE_BREAKPOINT64;\r
-\r
-typedef struct _DBGKD_RESTORE_BREAKPOINT\r
-{\r
-    ULONG BreakPointHandle;\r
-} DBGKD_RESTORE_BREAKPOINT, *PDBGKD_RESTORE_BREAKPOINT;\r
-\r
-typedef struct _DBGKD_CONTINUE\r
-{\r
-    NTSTATUS ContinueStatus;\r
-} DBGKD_CONTINUE, *PDBGKD_CONTINUE;\r
-\r
-#include <pshpack4.h>\r
-typedef struct _DBGKD_CONTINUE2\r
-{\r
-    NTSTATUS ContinueStatus;\r
-    union\r
-    {\r
-        DBGKD_CONTROL_SET ControlSet;\r
-        DBGKD_ANY_CONTROL_SET AnyControlSet;\r
-    };\r
-} DBGKD_CONTINUE2, *PDBGKD_CONTINUE2;\r
-#include <poppack.h>\r
-\r
-typedef struct _DBGKD_READ_WRITE_IO64\r
-{\r
-    ULONG64 IoAddress;\r
-    ULONG DataSize;\r
-    ULONG DataValue;\r
-} DBGKD_READ_WRITE_IO64, *PDBGKD_READ_WRITE_IO64;\r
-\r
-typedef struct _DBGKD_READ_WRITE_IO_EXTENDED64\r
-{\r
-    ULONG DataSize;\r
-    ULONG InterfaceType;\r
-    ULONG BusNumber;\r
-    ULONG AddressSpace;\r
-    ULONG64 IoAddress;\r
-    ULONG DataValue;\r
-} DBGKD_READ_WRITE_IO_EXTENDED64, *PDBGKD_READ_WRITE_IO_EXTENDED64;\r
-\r
-typedef struct _DBGKD_READ_WRITE_MSR\r
-{\r
-    ULONG Msr;\r
-    ULONG DataValueLow;\r
-    ULONG DataValueHigh;\r
-} DBGKD_READ_WRITE_MSR, *PDBGKD_READ_WRITE_MSR;\r
-\r
-typedef struct _DBGKD_QUERY_SPECIAL_CALLS\r
-{\r
-    ULONG NumberOfSpecialCalls;\r
-} DBGKD_QUERY_SPECIAL_CALLS, *PDBGKD_QUERY_SPECIAL_CALLS;\r
-\r
-typedef struct _DBGKD_SET_SPECIAL_CALL64\r
-{\r
-    ULONG64 SpecialCall;\r
-} DBGKD_SET_SPECIAL_CALL64, *PDBGKD_SET_SPECIAL_CALL64;\r
-\r
-typedef struct _DBGKD_SET_INTERNAL_BREAKPOINT64\r
-{\r
-    ULONG64 BreakpointAddress;\r
-    ULONG Flags;\r
-} DBGKD_SET_INTERNAL_BREAKPOINT64, *PDBGKD_SET_INTERNAL_BREAKPOINT64;\r
-\r
-typedef struct _DBGKD_GET_INTERNAL_BREAKPOINT64\r
-{\r
-    ULONG64 BreakpointAddress;\r
-    ULONG Flags;\r
-    ULONG Calls;\r
-    ULONG MaxCallsPerPeriod;\r
-    ULONG MinInstructions;\r
-    ULONG MaxInstructions;\r
-    ULONG TotalInstructions;\r
-} DBGKD_GET_INTERNAL_BREAKPOINT64, *PDBGKD_GET_INTERNAL_BREAKPOINT64;\r
-\r
-typedef struct _DBGKD_BREAKPOINTEX\r
-{\r
-    ULONG BreakPointCount;\r
-    NTSTATUS ContinueStatus;\r
-} DBGKD_BREAKPOINTEX, *PDBGKD_BREAKPOINTEX;\r
-\r
-typedef struct _DBGKD_SEARCH_MEMORY\r
-{\r
-    union\r
-    {\r
-        ULONG64 SearchAddress;\r
-        ULONG64 FoundAddress;\r
-    };\r
-    ULONG64 SearchLength;\r
-    ULONG PatternLength;\r
-} DBGKD_SEARCH_MEMORY, *PDBGKD_SEARCH_MEMORY;\r
-\r
-typedef struct _DBGKD_GET_SET_BUS_DATA\r
-{\r
-    ULONG BusDataType;\r
-    ULONG BusNumber;\r
-    ULONG SlotNumber;\r
-    ULONG Offset;\r
-    ULONG Length;\r
-} DBGKD_GET_SET_BUS_DATA, *PDBGKD_GET_SET_BUS_DATA;\r
-\r
-typedef struct _DBGKD_FILL_MEMORY\r
-{\r
-    ULONG64 Address;\r
-    ULONG Length;\r
-    USHORT Flags;\r
-    USHORT PatternLength;\r
-} DBGKD_FILL_MEMORY, *PDBGKD_FILL_MEMORY;\r
-\r
-typedef struct _DBGKD_QUERY_MEMORY\r
-{\r
-    ULONG64 Address;\r
-    ULONG64 Reserved;\r
-    ULONG AddressSpace;\r
-    ULONG Flags;\r
-} DBGKD_QUERY_MEMORY, *PDBGKD_QUERY_MEMORY;\r
-\r
-typedef struct _DBGKD_SWITCH_PARTITION\r
-{\r
-    ULONG Partition;\r
-} DBGKD_SWITCH_PARTITION;\r
-\r
-//\r
-// DBGKD Structure for Manipulate\r
-//\r
-typedef struct _DBGKD_MANIPULATE_STATE64\r
-{\r
-    ULONG ApiNumber;\r
-    USHORT ProcessorLevel;\r
-    USHORT Processor;\r
-    NTSTATUS ReturnStatus;\r
-    union\r
-    {\r
-        DBGKD_READ_MEMORY64 ReadMemory;\r
-        DBGKD_WRITE_MEMORY64 WriteMemory;\r
-        DBGKD_GET_CONTEXT GetContext;\r
-        DBGKD_SET_CONTEXT SetContext;\r
-        DBGKD_WRITE_BREAKPOINT64 WriteBreakPoint;\r
-        DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint;\r
-        DBGKD_CONTINUE Continue;\r
-        DBGKD_CONTINUE2 Continue2;\r
-        DBGKD_READ_WRITE_IO64 ReadWriteIo;\r
-        DBGKD_READ_WRITE_IO_EXTENDED64 ReadWriteIoExtended;\r
-        DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls;\r
-        DBGKD_SET_SPECIAL_CALL64 SetSpecialCall;\r
-        DBGKD_SET_INTERNAL_BREAKPOINT64 SetInternalBreakpoint;\r
-        DBGKD_GET_INTERNAL_BREAKPOINT64 GetInternalBreakpoint;\r
-        DBGKD_GET_VERSION64 GetVersion64;\r
-        DBGKD_BREAKPOINTEX BreakPointEx;\r
-        DBGKD_READ_WRITE_MSR ReadWriteMsr;\r
-        DBGKD_SEARCH_MEMORY SearchMemory;\r
-        DBGKD_GET_SET_BUS_DATA GetSetBusData;\r
-        DBGKD_FILL_MEMORY FillMemory;\r
-        DBGKD_QUERY_MEMORY QueryMemory;\r
-        DBGKD_SWITCH_PARTITION SwitchPartition;\r
-    } u;\r
-} DBGKD_MANIPULATE_STATE64, *PDBGKD_MANIPULATE_STATE64;\r
-\r
-FORCEINLINE\r
-VOID\r
-ExceptionRecord32To64(IN PEXCEPTION_RECORD32 Ex32,\r
-                      OUT PEXCEPTION_RECORD64 Ex64)\r
-{\r
-    ULONG i;\r
-\r
-    Ex64->ExceptionCode = Ex32->ExceptionCode;\r
-    Ex64->ExceptionFlags = Ex32->ExceptionFlags;\r
-    Ex64->ExceptionRecord = Ex32->ExceptionRecord;\r
-    COPYSE(Ex64,Ex32,ExceptionAddress);\r
-    Ex64->NumberParameters = Ex32->NumberParameters;\r
-\r
-    for (i = 0; i < EXCEPTION_MAXIMUM_PARAMETERS; i++)\r
-    {\r
-        COPYSE(Ex64,Ex32,ExceptionInformation[i]);\r
-    }\r
-}\r
-\r
-#endif\r
+#ifndef _WINDBGKD_
+#define _WINDBGKD_
+
+//
+// Dependencies
+//
+#include "wdbgexts.h"
+
+//
+// Conversion Macros
+//
+#define COPYSE(p64, p32, f)                 \
+    p64->f = (ULONG64)(LONG64)(LONG)p32->f
+
+//
+// Packet Size and Control Stream Size
+//
+#define PACKET_MAX_SIZE                     4000
+#define DBGKD_MAXSTREAM                     16
+
+//
+// Magic Packet IDs
+//
+#define INITIAL_PACKET_ID                   0x80800000
+#define SYNC_PACKET_ID                      0x00000800
+
+//
+// Magic Packet bytes
+//
+#define BREAKIN_PACKET                      0x62626262
+#define BREAKIN_PACKET_BYTE                 0x62
+#define PACKET_LEADER                       0x30303030
+#define PACKET_LEADER_BYTE                  0x30
+#define CONTROL_PACKET_LEADER               0x69696969
+#define CONTROL_PACKET_LEADER_BYTE          0x69
+#define PACKET_TRAILING_BYTE                0xAA
+
+//
+// Packet Types
+//
+#define PACKET_TYPE_UNUSED                  0
+#define PACKET_TYPE_KD_STATE_CHANGE32       1
+#define PACKET_TYPE_KD_STATE_MANIPULATE     2
+#define PACKET_TYPE_KD_DEBUG_IO             3
+#define PACKET_TYPE_KD_ACKNOWLEDGE          4
+#define PACKET_TYPE_KD_RESEND               5
+#define PACKET_TYPE_KD_RESET                6
+#define PACKET_TYPE_KD_STATE_CHANGE64       7
+#define PACKET_TYPE_KD_POLL_BREAKIN         8
+#define PACKET_TYPE_KD_TRACE_IO             9
+#define PACKET_TYPE_KD_CONTROL_REQUEST      10
+#define PACKET_TYPE_KD_FILE_IO              11
+#define PACKET_TYPE_MAX                     12
+
+//
+// Wait State Change Types
+//
+#define DbgKdMinimumStateChange             0x00003030
+#define DbgKdExceptionStateChange           0x00003030
+#define DbgKdLoadSymbolsStateChange         0x00003031
+#define DbgKdCommandStringStateChange       0x00003032
+#define DbgKdMaximumStateChange             0x00003033
+
+//
+// Manipulate Types
+//
+#define DbgKdMinimumManipulate              0x00003130
+#define DbgKdReadVirtualMemoryApi           0x00003130
+#define DbgKdWriteVirtualMemoryApi          0x00003131
+#define DbgKdGetContextApi                  0x00003132
+#define DbgKdSetContextApi                  0x00003133
+#define DbgKdWriteBreakPointApi             0x00003134
+#define DbgKdRestoreBreakPointApi           0x00003135
+#define DbgKdContinueApi                    0x00003136
+#define DbgKdReadControlSpaceApi            0x00003137
+#define DbgKdWriteControlSpaceApi           0x00003138
+#define DbgKdReadIoSpaceApi                 0x00003139
+#define DbgKdWriteIoSpaceApi                0x0000313A
+#define DbgKdRebootApi                      0x0000313B
+#define DbgKdContinueApi2                   0x0000313C
+#define DbgKdReadPhysicalMemoryApi          0x0000313D
+#define DbgKdWritePhysicalMemoryApi         0x0000313E
+#define DbgKdQuerySpecialCallsApi           0x0000313F
+#define DbgKdSetSpecialCallApi              0x00003140
+#define DbgKdClearSpecialCallsApi           0x00003141
+#define DbgKdSetInternalBreakPointApi       0x00003142
+#define DbgKdGetInternalBreakPointApi       0x00003143
+#define DbgKdReadIoSpaceExtendedApi         0x00003144
+#define DbgKdWriteIoSpaceExtendedApi        0x00003145
+#define DbgKdGetVersionApi                  0x00003146
+#define DbgKdWriteBreakPointExApi           0x00003147
+#define DbgKdRestoreBreakPointExApi         0x00003148
+#define DbgKdCauseBugCheckApi               0x00003149
+#define DbgKdSwitchProcessor                0x00003150
+#define DbgKdPageInApi                      0x00003151
+#define DbgKdReadMachineSpecificRegister    0x00003152
+#define DbgKdWriteMachineSpecificRegister   0x00003153
+#define OldVlm1                             0x00003154
+#define OldVlm2                             0x00003155
+#define DbgKdSearchMemoryApi                0x00003156
+#define DbgKdGetBusDataApi                  0x00003157
+#define DbgKdSetBusDataApi                  0x00003158
+#define DbgKdCheckLowMemoryApi              0x00003159
+#define DbgKdClearAllInternalBreakpointsApi 0x0000315A
+#define DbgKdFillMemoryApi                  0x0000315B
+#define DbgKdQueryMemoryApi                 0x0000315C
+#define DbgKdSwitchPartition                0x0000315D
+#define DbgKdMaximumManipulate              0x0000315E
+
+//
+// Debug I/O Types
+//
+#define DbgKdPrintStringApi                 0x00003230
+#define DbgKdGetStringApi                   0x00003231
+
+//
+// Control Report Flags
+//
+#define REPORT_INCLUDES_SEGS                0x0001
+#define REPORT_INCLUDES_CS                  0x0002
+
+//
+// Protocol Versions
+//
+#define DBGKD_64BIT_PROTOCOL_VERSION1       5
+#define DBGKD_64BIT_PROTOCOL_VERSION2       6
+
+//
+// Query Memory Address Spaces
+//
+#define DBGKD_QUERY_MEMORY_VIRTUAL          0
+#define DBGKD_QUERY_MEMORY_PROCESS          0
+#define DBGKD_QUERY_MEMORY_SESSION          1
+#define DBGKD_QUERY_MEMORY_KERNEL           2
+
+//
+// Query Memory Flags
+//
+#define DBGKD_QUERY_MEMORY_READ             0x01
+#define DBGKD_QUERY_MEMORY_WRITE            0x02
+#define DBGKD_QUERY_MEMORY_EXECUTE          0x04
+#define DBGKD_QUERY_MEMORY_FIXED            0x08
+
+//
+// KD Packet Structure
+//
+typedef struct _KD_PACKET
+{
+    ULONG PacketLeader;
+    USHORT PacketType;
+    USHORT ByteCount;
+    ULONG PacketId;
+    ULONG Checksum;
+} KD_PACKET, *PKD_PACKET;
+
+//
+// KD Context
+//
+typedef struct _KD_CONTEXT
+{
+    ULONG KdpDefaultRetries;
+    BOOLEAN KdpControlCPending;
+} KD_CONTEXT, *PKD_CONTEXT;
+
+//
+// Control Sets for Supported Architectures
+//
+#include <pshpack4.h>
+typedef struct _X86_DBGKD_CONTROL_SET
+{
+    ULONG TraceFlag;
+    ULONG Dr7;
+    ULONG CurrentSymbolStart;
+    ULONG CurrentSymbolEnd;
+} X86_DBGKD_CONTROL_SET, *PX86_DBGKD_CONTROL_SET;
+
+typedef struct _IA64_DBGKD_CONTROL_SET
+{
+    ULONG Continue;
+    ULONG64 CurrentSymbolStart;
+    ULONG64 CurrentSymbolEnd;
+} IA64_DBGKD_CONTROL_SET, *PIA64_DBGKD_CONTROL_SET;
+
+typedef struct _AMD64_DBGKD_CONTROL_SET
+{
+    ULONG TraceFlag;
+    ULONG64 Dr7;
+    ULONG64 CurrentSymbolStart;
+    ULONG64 CurrentSymbolEnd;
+} AMD64_DBGKD_CONTROL_SET, *PAMD64_DBGKD_CONTROL_SET;
+
+typedef struct _DBGKD_ANY_CONTROL_SET
+{
+    union
+    {
+        X86_DBGKD_CONTROL_SET X86ControlSet;
+        IA64_DBGKD_CONTROL_SET IA64ControlSet;
+        AMD64_DBGKD_CONTROL_SET Amd64ControlSet;
+    };
+} DBGKD_ANY_CONTROL_SET, *PDBGKD_ANY_CONTROL_SET;
+#include <poppack.h>
+
+typedef X86_DBGKD_CONTROL_SET DBGKD_CONTROL_SET;
+
+//
+// DBGKM Structure for Exceptions
+//
+typedef struct _DBGKM_EXCEPTION64
+{
+    EXCEPTION_RECORD64 ExceptionRecord;
+    ULONG FirstChance;
+} DBGKM_EXCEPTION64, *PDBGKM_EXCEPTION64;
+
+//
+// DBGKD Structure for State Change
+//
+typedef struct _DBGKD_CONTROL_REPORT
+{
+    ULONG Dr6;
+    ULONG Dr7;
+    USHORT InstructionCount;
+    USHORT ReportFlags;
+    UCHAR InstructionStream[DBGKD_MAXSTREAM];
+    USHORT SegCs;
+    USHORT SegDs;
+    USHORT SegEs;
+    USHORT SegFs;
+    ULONG EFlags;
+} DBGKD_CONTROL_REPORT, *PDBGKD_CONTROL_REPORT;
+
+//
+// DBGKD Structure for Debug I/O Type Print String
+//
+typedef struct _DBGKD_PRINT_STRING
+{
+    ULONG LengthOfString;
+} DBGKD_PRINT_STRING, *PDBGKD_PRINT_STRING;
+
+//
+// DBGKD Structure for Debug I/O Type Get String
+//
+typedef struct _DBGKD_GET_STRING
+{
+    ULONG LengthOfPromptString;
+    ULONG LengthOfStringRead;
+} DBGKD_GET_STRING, *PDBGKD_GET_STRING;
+
+//
+// DBGKD Structure for Debug I/O
+//
+typedef struct _DBGKD_DEBUG_IO
+{
+    ULONG ApiNumber;
+    USHORT ProcessorLevel;
+    USHORT Processor;
+    union
+    {
+        DBGKD_PRINT_STRING PrintString;
+        DBGKD_GET_STRING GetString;
+    } u;
+} DBGKD_DEBUG_IO, *PDBGKD_DEBUG_IO;
+
+//
+// DBGKD Structure for Load Symbols
+//
+typedef struct _DBGKD_LOAD_SYMBOLS64
+{
+    ULONG PathNameLength;
+    ULONG64 BaseOfDll;
+    ULONG64 ProcessId;
+    ULONG CheckSum;
+    ULONG SizeOfImage;
+    BOOLEAN UnloadSymbols;
+} DBGKD_LOAD_SYMBOLS64, *PDBGKD_LOAD_SYMBOLS64;
+
+//
+// DBGKD Structure for Wait State Change
+//
+typedef struct _DBGKD_WAIT_STATE_CHANGE64
+{
+    ULONG NewState;
+    USHORT ProcessorLevel;
+    USHORT Processor;
+    ULONG NumberProcessors;
+    ULONG64 Thread;
+    ULONG64 ProgramCounter;
+    union
+    {
+        DBGKM_EXCEPTION64 Exception;
+        DBGKD_LOAD_SYMBOLS64 LoadSymbols;
+    } u;
+    DBGKD_CONTROL_REPORT ControlReport;
+    CONTEXT Context;
+} DBGKD_WAIT_STATE_CHANGE64, *PDBGKD_WAIT_STATE_CHANGE64;
+
+//
+// DBGKD Manipulate Structures
+//
+typedef struct _DBGKD_READ_MEMORY64
+{
+    ULONG64 TargetBaseAddress;
+    ULONG TransferCount;
+    ULONG ActualBytesRead;
+} DBGKD_READ_MEMORY64, *PDBGKD_READ_MEMORY64;
+
+typedef struct _DBGKD_WRITE_MEMORY64
+{
+    ULONG64 TargetBaseAddress;
+    ULONG TransferCount;
+    ULONG ActualBytesWritten;
+} DBGKD_WRITE_MEMORY64, *PDBGKD_WRITE_MEMORY64;
+
+typedef struct _DBGKD_GET_CONTEXT
+{
+    ULONG Unused;
+} DBGKD_GET_CONTEXT, *PDBGKD_GET_CONTEXT;
+
+typedef struct _DBGKD_SET_CONTEXT
+{
+    ULONG ContextFlags;
+} DBGKD_SET_CONTEXT, *PDBGKD_SET_CONTEXT;
+
+typedef struct _DBGKD_WRITE_BREAKPOINT64
+{
+    ULONG64 BreakPointAddress;
+    ULONG BreakPointHandle;
+} DBGKD_WRITE_BREAKPOINT64, *PDBGKD_WRITE_BREAKPOINT64;
+
+typedef struct _DBGKD_RESTORE_BREAKPOINT
+{
+    ULONG BreakPointHandle;
+} DBGKD_RESTORE_BREAKPOINT, *PDBGKD_RESTORE_BREAKPOINT;
+
+typedef struct _DBGKD_CONTINUE
+{
+    NTSTATUS ContinueStatus;
+} DBGKD_CONTINUE, *PDBGKD_CONTINUE;
+
+#include <pshpack4.h>
+typedef struct _DBGKD_CONTINUE2
+{
+    NTSTATUS ContinueStatus;
+    union
+    {
+        DBGKD_CONTROL_SET ControlSet;
+        DBGKD_ANY_CONTROL_SET AnyControlSet;
+    };
+} DBGKD_CONTINUE2, *PDBGKD_CONTINUE2;
+#include <poppack.h>
+
+typedef struct _DBGKD_READ_WRITE_IO64
+{
+    ULONG64 IoAddress;
+    ULONG DataSize;
+    ULONG DataValue;
+} DBGKD_READ_WRITE_IO64, *PDBGKD_READ_WRITE_IO64;
+
+typedef struct _DBGKD_READ_WRITE_IO_EXTENDED64
+{
+    ULONG DataSize;
+    ULONG InterfaceType;
+    ULONG BusNumber;
+    ULONG AddressSpace;
+    ULONG64 IoAddress;
+    ULONG DataValue;
+} DBGKD_READ_WRITE_IO_EXTENDED64, *PDBGKD_READ_WRITE_IO_EXTENDED64;
+
+typedef struct _DBGKD_READ_WRITE_MSR
+{
+    ULONG Msr;
+    ULONG DataValueLow;
+    ULONG DataValueHigh;
+} DBGKD_READ_WRITE_MSR, *PDBGKD_READ_WRITE_MSR;
+
+typedef struct _DBGKD_QUERY_SPECIAL_CALLS
+{
+    ULONG NumberOfSpecialCalls;
+} DBGKD_QUERY_SPECIAL_CALLS, *PDBGKD_QUERY_SPECIAL_CALLS;
+
+typedef struct _DBGKD_SET_SPECIAL_CALL64
+{
+    ULONG64 SpecialCall;
+} DBGKD_SET_SPECIAL_CALL64, *PDBGKD_SET_SPECIAL_CALL64;
+
+typedef struct _DBGKD_SET_INTERNAL_BREAKPOINT64
+{
+    ULONG64 BreakpointAddress;
+    ULONG Flags;
+} DBGKD_SET_INTERNAL_BREAKPOINT64, *PDBGKD_SET_INTERNAL_BREAKPOINT64;
+
+typedef struct _DBGKD_GET_INTERNAL_BREAKPOINT64
+{
+    ULONG64 BreakpointAddress;
+    ULONG Flags;
+    ULONG Calls;
+    ULONG MaxCallsPerPeriod;
+    ULONG MinInstructions;
+    ULONG MaxInstructions;
+    ULONG TotalInstructions;
+} DBGKD_GET_INTERNAL_BREAKPOINT64, *PDBGKD_GET_INTERNAL_BREAKPOINT64;
+
+typedef struct _DBGKD_BREAKPOINTEX
+{
+    ULONG BreakPointCount;
+    NTSTATUS ContinueStatus;
+} DBGKD_BREAKPOINTEX, *PDBGKD_BREAKPOINTEX;
+
+typedef struct _DBGKD_SEARCH_MEMORY
+{
+    union
+    {
+        ULONG64 SearchAddress;
+        ULONG64 FoundAddress;
+    };
+    ULONG64 SearchLength;
+    ULONG PatternLength;
+} DBGKD_SEARCH_MEMORY, *PDBGKD_SEARCH_MEMORY;
+
+typedef struct _DBGKD_GET_SET_BUS_DATA
+{
+    ULONG BusDataType;
+    ULONG BusNumber;
+    ULONG SlotNumber;
+    ULONG Offset;
+    ULONG Length;
+} DBGKD_GET_SET_BUS_DATA, *PDBGKD_GET_SET_BUS_DATA;
+
+typedef struct _DBGKD_FILL_MEMORY
+{
+    ULONG64 Address;
+    ULONG Length;
+    USHORT Flags;
+    USHORT PatternLength;
+} DBGKD_FILL_MEMORY, *PDBGKD_FILL_MEMORY;
+
+typedef struct _DBGKD_QUERY_MEMORY
+{
+    ULONG64 Address;
+    ULONG64 Reserved;
+    ULONG AddressSpace;
+    ULONG Flags;
+} DBGKD_QUERY_MEMORY, *PDBGKD_QUERY_MEMORY;
+
+typedef struct _DBGKD_SWITCH_PARTITION
+{
+    ULONG Partition;
+} DBGKD_SWITCH_PARTITION;
+
+//
+// DBGKD Structure for Manipulate
+//
+typedef struct _DBGKD_MANIPULATE_STATE64
+{
+    ULONG ApiNumber;
+    USHORT ProcessorLevel;
+    USHORT Processor;
+    NTSTATUS ReturnStatus;
+    union
+    {
+        DBGKD_READ_MEMORY64 ReadMemory;
+        DBGKD_WRITE_MEMORY64 WriteMemory;
+        DBGKD_GET_CONTEXT GetContext;
+        DBGKD_SET_CONTEXT SetContext;
+        DBGKD_WRITE_BREAKPOINT64 WriteBreakPoint;
+        DBGKD_RESTORE_BREAKPOINT RestoreBreakPoint;
+        DBGKD_CONTINUE Continue;
+        DBGKD_CONTINUE2 Continue2;
+        DBGKD_READ_WRITE_IO64 ReadWriteIo;
+        DBGKD_READ_WRITE_IO_EXTENDED64 ReadWriteIoExtended;
+        DBGKD_QUERY_SPECIAL_CALLS QuerySpecialCalls;
+        DBGKD_SET_SPECIAL_CALL64 SetSpecialCall;
+        DBGKD_SET_INTERNAL_BREAKPOINT64 SetInternalBreakpoint;
+        DBGKD_GET_INTERNAL_BREAKPOINT64 GetInternalBreakpoint;
+        DBGKD_GET_VERSION64 GetVersion64;
+        DBGKD_BREAKPOINTEX BreakPointEx;
+        DBGKD_READ_WRITE_MSR ReadWriteMsr;
+        DBGKD_SEARCH_MEMORY SearchMemory;
+        DBGKD_GET_SET_BUS_DATA GetSetBusData;
+        DBGKD_FILL_MEMORY FillMemory;
+        DBGKD_QUERY_MEMORY QueryMemory;
+        DBGKD_SWITCH_PARTITION SwitchPartition;
+    } u;
+} DBGKD_MANIPULATE_STATE64, *PDBGKD_MANIPULATE_STATE64;
+
+FORCEINLINE
+VOID
+ExceptionRecord32To64(IN PEXCEPTION_RECORD32 Ex32,
+                      OUT PEXCEPTION_RECORD64 Ex64)
+{
+    ULONG i;
+
+    Ex64->ExceptionCode = Ex32->ExceptionCode;
+    Ex64->ExceptionFlags = Ex32->ExceptionFlags;
+    Ex64->ExceptionRecord = Ex32->ExceptionRecord;
+    COPYSE(Ex64,Ex32,ExceptionAddress);
+    Ex64->NumberParameters = Ex32->NumberParameters;
+
+    for (i = 0; i < EXCEPTION_MAXIMUM_PARAMETERS; i++)
+    {
+        COPYSE(Ex64,Ex32,ExceptionInformation[i]);
+    }
+}
+
+#endif