#include <kdcomdisp.h>
Inherits IKdComDispatcher.
Public Member Functions | |
KdComDispatcher (const TCHAR *pszPipeName) | |
void | KdResetPacketNumbering (bool InitialSetting) |
Called internally to reset the packet numbering scheme. | |
void | SetKdDebuggerNotPresent (bool Value) |
bool | GetKdDebuggerNotPresent () |
void | KdpSendControlPacket (ULONG PacketType, ULONG NextPacketId) |
Called internally to call a bodyless control packet (such as ACK or RETRY). | |
KD_RECV_CODE | KdCompReceivePacketLeader (ULONG, ULONG *pSignature, PKD_CONTEXT pContext) |
unsigned | KdpComputeChecksum (const void *pBuffer, unsigned Size) |
Called to compute checksum of a data block. | |
KD_RECV_CODE __stdcall | KdReceivePacket (ULONG PacketType, PKD_BUFFER FirstBuffer, PKD_BUFFER SecondBuffer, PULONG PayloadBytes, PKD_CONTEXT KdContext) |
Called inside VMWARE-VMX.EXE process space with parameters unmarshalled from KdReceivePacket() call in KDVMWARE.DLL. | |
bool __stdcall | KdSendPacket (ULONG PacketType, PKD_BUFFER FirstBuffer, PKD_BUFFER SecondBuffer, PKD_CONTEXT KdContext) |
Called inside VMWARE-VMX.EXE process space with parameters unmarshalled from KdSendPacket() call in KDVMWARE.DLL. | |
virtual void | ReportProtocolVersionError (int GuestVersion, int HostVersion) |
Called by KdRpcDispatcher to report protocol version mismatch. | |
void | SimulateWindowsTermination () |
Sends a packet stating that NTOSKRNL was unloaded, that makes WinDbg/DBGENG end the session and prevents it from hanging when VM unloads. | |
~KdComDispatcher () | |
Private Types | |
enum | { KdMaxBufferSize = 0xFA0 } |
enum | { KdMinPacketCountForSuccessfulLink = 5 } |
Private Attributes | |
PipeServer< false, true, true > | m_Pipe |
unsigned | KdCompNumberRetries |
unsigned | KdCompRetryCount |
unsigned | KdCompNextPacketIdToSend |
unsigned | KdCompPacketIdExpected |
bool | KD_DEBUGGER_NOT_PRESENT |
unsigned | m_PacketsSentFromLastReset |
unsigned | m_PacketsGotFromLastReset |
unsigned | m_SequentialResetCount |
TraceAssistant | m_TraceAssistant |
PacketLogger | m_PacketLogger |
This class contains host-side implementations of KdSendPacket() and KdReceivePacket() functions. These methods are called by KdRpcDispatcher class via IKdComDispatcher interface.
Definition at line 24 of file kdcomdisp.h.
anonymous enum [private] |
anonymous enum [private] |
KdComDispatcher::KdComDispatcher | ( | const TCHAR * | pszPipeName | ) | [inline] |
KdComDispatcher::~KdComDispatcher | ( | ) | [inline] |
bool KdComDispatcher::GetKdDebuggerNotPresent | ( | ) | [inline, virtual] |
KD_RECV_CODE KdComDispatcher::KdCompReceivePacketLeader | ( | ULONG | , | |
ULONG * | pSignature, | |||
PKD_CONTEXT | pContext | |||
) |
unsigned KdComDispatcher::KdpComputeChecksum | ( | const void * | pBuffer, | |
unsigned | Size | |||
) | [inline] |
void KdComDispatcher::KdpSendControlPacket | ( | ULONG | PacketType, | |
ULONG | NextPacketId | |||
) |
Called internally to call a bodyless control packet (such as ACK or RETRY).
Definition at line 86 of file kdcomdisp.cpp.
KD_RECV_CODE __stdcall KdComDispatcher::KdReceivePacket | ( | ULONG | PacketType, | |
PKD_BUFFER | FirstBuffer, | |||
PKD_BUFFER | SecondBuffer, | |||
PULONG | PayloadBytes, | |||
PKD_CONTEXT | KdContext | |||
) |
Called inside VMWARE-VMX.EXE process space with parameters unmarshalled from KdReceivePacket() call in KDVMWARE.DLL.
Definition at line 114 of file kdcomdisp.cpp.
void KdComDispatcher::KdResetPacketNumbering | ( | bool | InitialSetting | ) | [inline] |
bool __stdcall KdComDispatcher::KdSendPacket | ( | ULONG | PacketType, | |
PKD_BUFFER | FirstBuffer, | |||
PKD_BUFFER | SecondBuffer, | |||
PKD_CONTEXT | KdContext | |||
) |
Called inside VMWARE-VMX.EXE process space with parameters unmarshalled from KdSendPacket() call in KDVMWARE.DLL.
Definition at line 389 of file kdcomdisp.cpp.
void KdComDispatcher::ReportProtocolVersionError | ( | int | GuestVersion, | |
int | HostVersion | |||
) | [virtual] |
Called by KdRpcDispatcher to report protocol version mismatch.
Implements IKdComDispatcher.
Definition at line 529 of file kdcomdisp.cpp.
void KdComDispatcher::SetKdDebuggerNotPresent | ( | bool | Value | ) | [inline, virtual] |
void KdComDispatcher::SimulateWindowsTermination | ( | ) |
Sends a packet stating that NTOSKRNL was unloaded, that makes WinDbg/DBGENG end the session and prevents it from hanging when VM unloads.
Definition at line 577 of file kdcomdisp.cpp.
bool KdComDispatcher::KD_DEBUGGER_NOT_PRESENT [private] |
Definition at line 35 of file kdcomdisp.h.
unsigned KdComDispatcher::KdCompNextPacketIdToSend [private] |
Definition at line 32 of file kdcomdisp.h.
unsigned KdComDispatcher::KdCompNumberRetries [private] |
Definition at line 29 of file kdcomdisp.h.
unsigned KdComDispatcher::KdCompPacketIdExpected [private] |
Definition at line 33 of file kdcomdisp.h.
unsigned KdComDispatcher::KdCompRetryCount [private] |
Definition at line 30 of file kdcomdisp.h.
PacketLogger KdComDispatcher::m_PacketLogger [private] |
Definition at line 49 of file kdcomdisp.h.
unsigned KdComDispatcher::m_PacketsGotFromLastReset [private] |
Definition at line 43 of file kdcomdisp.h.
unsigned KdComDispatcher::m_PacketsSentFromLastReset [private] |
Definition at line 42 of file kdcomdisp.h.
PipeServer<false, true, true> KdComDispatcher::m_Pipe [private] |
Definition at line 27 of file kdcomdisp.h.
unsigned KdComDispatcher::m_SequentialResetCount [private] |
Definition at line 45 of file kdcomdisp.h.
Definition at line 47 of file kdcomdisp.h.