#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.