KdComDispatcher Class Reference

Contains implementations for KdComDispatcher::KdSendPacket() and KdComDispatcher::KdReceivePacket() functions that are executed on host side. More...

#include <kdcomdisp.h>

Inherits IKdComDispatcher.

Collaboration diagram for KdComDispatcher:

Collaboration graph
[legend]

List of all members.

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.

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


Detailed Description

Contains implementations for KdComDispatcher::KdSendPacket() and KdComDispatcher::KdReceivePacket() functions that are executed on host side.

This class contains host-side implementations of KdSendPacket() and KdReceivePacket() functions. These methods are called by KdRpcDispatcher class via IKdComDispatcher interface.

Remarks:
See the kdxxx.h file reference for info about KdSendPacket() and KdReceivePacket().

Member Enumeration Documentation

anonymous enum [private]

Enumerator:
KdMaxBufferSize 

anonymous enum [private]

Enumerator:
KdMinPacketCountForSuccessfulLink 


Constructor & Destructor Documentation

KdComDispatcher::KdComDispatcher ( const TCHAR *  pszPipeName  )  [inline]

Here is the call graph for this function:


Member Function Documentation

bool KdComDispatcher::GetKdDebuggerNotPresent (  )  [inline, virtual]

Implements IKdComDispatcher.

KD_RECV_CODE KdComDispatcher::KdCompReceivePacketLeader ( ULONG  ,
ULONG *  pSignature,
PKD_CONTEXT  pContext 
)

Here is the call graph for this function:

unsigned KdComDispatcher::KdpComputeChecksum ( const void *  pBuffer,
unsigned  Size 
) [inline]

Called to compute checksum of a data block.

void KdComDispatcher::KdpSendControlPacket ( ULONG  PacketType,
ULONG  NextPacketId 
)

Called internally to call a bodyless control packet (such as ACK or RETRY).

Here is the call graph for this function:

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.

Here is the call graph for this function:

void KdComDispatcher::KdResetPacketNumbering ( bool  InitialSetting  )  [inline]

Called internally to reset the packet numbering scheme.

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.

Here is the call graph for this function:

void KdComDispatcher::ReportProtocolVersionError ( int  GuestVersion,
int  HostVersion 
) [virtual]

Called by KdRpcDispatcher to report protocol version mismatch.

Implements IKdComDispatcher.

Here is the call graph for this function:

void KdComDispatcher::SetKdDebuggerNotPresent ( bool  Value  )  [inline, virtual]

Implements IKdComDispatcher.


Member Data Documentation

PipeServer<false, true, true> KdComDispatcher::m_Pipe [private]


The documentation for this class was generated from the following files:
SourceForge.net Logo