| 
| BOOLEAN  | KdCommandPacketToDebuggee (DEBUGGER_REMOTE_PACKET_TYPE PacketType, DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION RequestedAction) | 
|   | 
| BOOLEAN  | KdCommandPacketAndBufferToDebuggee (DEBUGGER_REMOTE_PACKET_TYPE PacketType, DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION RequestedAction, CHAR *Buffer, UINT32 BufferLength) | 
|   | 
| BOOLEAN  | KdPrepareSerialConnectionToRemoteSystem (HANDLE SerialHandle, BOOLEAN IsNamedPipe) | 
|   | 
| BOOLEAN  | KdPrepareAndConnectDebugPort (const char *PortName, DWORD Baudrate, UINT32 Port, BOOLEAN IsPreparing, BOOLEAN IsNamedPipe) | 
|   | 
| BOOLEAN  | KdSendPacketToDebuggee (const CHAR *Buffer, UINT32 Length, BOOLEAN SendEndOfBuffer) | 
|   | 
| BOOLEAN  | KdReceivePacketFromDebuggee (CHAR *BufferToSave, UINT32 *LengthReceived) | 
|   | 
| BOOLEAN  | KdReceivePacketFromDebugger (CHAR *BufferToSave, UINT32 *LengthReceived) | 
|   | 
| BOOLEAN  | KdCheckForTheEndOfTheBuffer (PUINT32 CurrentLoopIndex, BYTE *Buffer) | 
|   | compares the buffer with a string  
  | 
|   | 
| BOOLEAN  | KdSendSwitchCorePacketToDebuggee (UINT32 NewCore) | 
|   | Sends a change core or '~ x' command packet to the debuggee.  
  | 
|   | 
| BOOLEAN  | KdSendShortCircuitingEventToDebuggee (BOOLEAN IsEnabled) | 
|   | Sends a short-circuiting event request to debuggee.  
  | 
|   | 
| BOOLEAN  | KdSendEventQueryAndModifyPacketToDebuggee (UINT64 Tag, DEBUGGER_MODIFY_EVENTS_TYPE TypeOfAction, BOOLEAN *IsEnabled) | 
|   | Sends a query or request to enable/disable/clear for event.  
  | 
|   | 
| BOOLEAN  | KdSendFlushPacketToDebuggee () | 
|   | Send a flush request to the debuggee.  
  | 
|   | 
| BOOLEAN  | KdSendCallStackPacketToDebuggee (UINT64 BaseAddress, UINT32 Size, DEBUGGER_CALLSTACK_DISPLAY_METHOD DisplayMethod, BOOLEAN Is32Bit) | 
|   | Send a callstack request to the debuggee.  
  | 
|   | 
| BOOLEAN  | KdSendTestQueryPacketToDebuggee (DEBUGGER_TEST_QUERY_STATE Type) | 
|   | Send a test query request to the debuggee.  
  | 
|   | 
| BOOLEAN  | KdSendTestQueryPacketWithContextToDebuggee (DEBUGGER_TEST_QUERY_STATE Type, UINT64 Context) | 
|   | Send a test query request to the debuggee with the specified context.  
  | 
|   | 
| BOOLEAN  | KdSendSymbolReloadPacketToDebuggee (UINT32 ProcessId) | 
|   | Send symbol reload packet to the debuggee.  
  | 
|   | 
| BOOLEAN  | KdSendReadRegisterPacketToDebuggee (PDEBUGGEE_REGISTER_READ_DESCRIPTION RegDes, UINT32 RegBuffSize) | 
|   | Send a read register packet to the debuggee.  
  | 
|   | 
| BOOLEAN  | KdSendWriteRegisterPacketToDebuggee (PDEBUGGEE_REGISTER_WRITE_DESCRIPTION RegDes) | 
|   | Send a write register packet to the debuggee.  
  | 
|   | 
| BOOLEAN  | KdSendReadMemoryPacketToDebuggee (PDEBUGGER_READ_MEMORY ReadMem, UINT32 RequestSize) | 
|   | Send a Read memory packet to the debuggee.  
  | 
|   | 
| BOOLEAN  | KdSendEditMemoryPacketToDebuggee (PDEBUGGER_EDIT_MEMORY EditMem, UINT32 Size) | 
|   | Send an Edit memory packet to the debuggee.  
  | 
|   | 
| PDEBUGGER_EVENT_AND_ACTION_RESULT  | KdSendRegisterEventPacketToDebuggee (PDEBUGGER_GENERAL_EVENT_DETAIL Event, UINT32 EventBufferLength) | 
|   | Send a register event request to the debuggee.  
  | 
|   | 
| PDEBUGGER_EVENT_AND_ACTION_RESULT  | KdSendAddActionToEventPacketToDebuggee (PDEBUGGER_GENERAL_ACTION GeneralAction, UINT32 GeneralActionLength) | 
|   | Send an add action to event request to the debuggee.  
  | 
|   | 
| BOOLEAN  | KdSendSwitchProcessPacketToDebuggee (DEBUGGEE_DETAILS_AND_SWITCH_PROCESS_TYPE ActionType, UINT32 NewPid, UINT64 NewProcess, BOOLEAN SetChangeByClockInterrupt, PDEBUGGEE_PROCESS_LIST_NEEDED_DETAILS SymDetailsForProcessList) | 
|   | Sends a change process or show process details packet to the debuggee.  
  | 
|   | 
| BOOLEAN  | KdSendSwitchThreadPacketToDebuggee (DEBUGGEE_DETAILS_AND_SWITCH_THREAD_TYPE ActionType, UINT32 NewTid, UINT64 NewThread, BOOLEAN CheckByClockInterrupt, PDEBUGGEE_THREAD_LIST_NEEDED_DETAILS SymDetailsForThreadList) | 
|   | Sends a change thread or show threads detail packet to the debuggee.  
  | 
|   | 
| BOOLEAN  | KdSendBpPacketToDebuggee (PDEBUGGEE_BP_PACKET BpPacket) | 
|   | Sends a breakpoint set or 'bp' command packet to the debuggee.  
  | 
|   | 
| BOOLEAN  | KdSendVa2paAndPa2vaPacketToDebuggee (PDEBUGGER_VA2PA_AND_PA2VA_COMMANDS Va2paAndPa2vaPacket) | 
|   | Sends VA2PA and PA2VA packest, or '!va2pa' and '!pa2va' commands packet to the debuggee.  
  | 
|   | 
| BOOLEAN  | KdSendPtePacketToDebuggee (PDEBUGGER_READ_PAGE_TABLE_ENTRIES_DETAILS PtePacket) | 
|   | Sends a PTE or '!pte' command packet to the debuggee.  
  | 
|   | 
| BOOLEAN  | KdSendPageinPacketToDebuggee (PDEBUGGER_PAGE_IN_REQUEST PageinPacket) | 
|   | Sends a page-in or '.pagein' command packet to the debuggee.  
  | 
|   | 
| BOOLEAN  | KdSendListOrModifyPacketToDebuggee (PDEBUGGEE_BP_LIST_OR_MODIFY_PACKET ListOrModifyPacket) | 
|   | Sends a breakpoint list or modification packet to the debuggee.  
  | 
|   | 
| BOOLEAN  | KdSendScriptPacketToDebuggee (UINT64 BufferAddress, UINT32 BufferLength, UINT32 Pointer, BOOLEAN IsFormat) | 
|   | Sends a script packet to the debuggee.  
  | 
|   | 
| BOOLEAN  | KdSendUserInputPacketToDebuggee (const char *Sendbuf, int Len, BOOLEAN IgnoreBreakingAgain) | 
|   | Sends user input packet to the debuggee.  
  | 
|   | 
| BOOLEAN  | KdSendSearchRequestPacketToDebuggee (UINT64 *SearchRequestBuffer, UINT32 SearchRequestBufferSize) | 
|   | Sends search query request packet to the debuggee.  
  | 
|   | 
| BOOLEAN  | KdSendStepPacketToDebuggee (DEBUGGER_REMOTE_STEPPING_REQUEST StepRequestType) | 
|   | Sends p (step out) and t (step in) packet to the debuggee.  
  | 
|   | 
| BYTE  | KdComputeDataChecksum (PVOID Buffer, UINT32 Length) | 
|   | calculate the checksum of received buffer from debugger  
  | 
|   | 
| BOOLEAN  | KdRegisterEventInDebuggee (PDEBUGGER_GENERAL_EVENT_DETAIL EventRegBuffer, UINT32 Length) | 
|   | 
| BOOLEAN  | KdAddActionToEventInDebuggee (PDEBUGGER_GENERAL_ACTION ActionAddingBuffer, UINT32 Length) | 
|   | 
| BOOLEAN  | KdSendModifyEventInDebuggee (PDEBUGGER_MODIFY_EVENTS ModifyEvent, BOOLEAN SendTheResultBackToDebugger) | 
|   | 
| BOOLEAN  | KdSendGeneralBuffersFromDebuggeeToDebugger (DEBUGGER_REMOTE_PACKET_REQUESTED_ACTION RequestedAction, PVOID Buffer, UINT32 BufferLength, BOOLEAN PauseDebuggeeWhenSent) | 
|   | 
| BOOLEAN  | KdCloseConnection () | 
|   | 
| BOOLEAN  | KdReloadSymbolsInDebuggee (BOOLEAN PauseDebuggee, UINT32 UserProcessId) | 
|   | 
| BOOLEAN  | KdSendResponseOfThePingPacket () | 
|   | 
| VOID  | KdUninitializeConnection () | 
|   | 
| VOID  | KdSendUsermodePrints (CHAR *Input, UINT32 Length) | 
|   | 
| VOID  | KdSendSymbolDetailPacket (PMODULE_SYMBOL_DETAIL SymbolDetailPacket, UINT32 CurrentSymbolInfoIndex, UINT32 TotalSymbols) | 
|   | 
| VOID  | KdHandleUserInputInDebuggee (DEBUGGEE_USER_INPUT_PACKET *Descriptor) | 
|   | 
| VOID  | KdTheRemoteSystemIsRunning () | 
|   | 
| VOID  | KdBreakControlCheckAndPauseDebugger () | 
|   | 
| VOID  | KdBreakControlCheckAndContinueDebugger () | 
|   | 
| VOID  | KdSetStatusAndWaitForPause () | 
|   | 
routines for remote kernel debugging 
- Author
 - Sina Karvandi (sina@.nosp@m.hype.nosp@m.rdbg..nosp@m.org)
 
- Version
 - 0.1 
 
- Date
 - 2020-12-22
 
- Copyright
 - This project is released under the GNU Public License v3.