Index: /trunk/src/VBox/Devices/Misc/VirtualKD.cpp
===================================================================
--- /trunk/src/VBox/Devices/Misc/VirtualKD.cpp	(revision 52596)
+++ /trunk/src/VBox/Devices/Misc/VirtualKD.cpp	(revision 52597)
@@ -34,5 +34,5 @@
 *******************************************************************************/
 
-#define IKDClient_InterfaceVersion 2
+#define IKDClient_InterfaceVersion 3
 
 
@@ -60,6 +60,5 @@
 {
 public:
-    virtual unsigned OnRequest(const char *pRequest, unsigned RequestSize, char **ppReply)=0;
-    virtual unsigned GetRPCCommandHeaderSize()=0;
+    virtual unsigned OnRequest(const char *pRequestIncludingRpcHeader, unsigned RequestSizeWithRpcHeader, char **ppReply)=0;
     virtual ~IKDClient() {}
 };
@@ -73,5 +72,4 @@
     RTLDRMOD hLib;
     IKDClient *pKDClient;
-    unsigned cbRPCCommandHeaderSize;
     char abCmdBody[262144];
 } VIRTUALKD;
@@ -104,5 +102,5 @@
     if (Port == 0x5659)
     {
-        VKDREQUESTHDR RequestHeader;
+        VKDREQUESTHDR RequestHeader = {0, };
         int rc = PDMDevHlpPhysRead(pDevIns, (RTGCPHYS)u32, &RequestHeader, sizeof(RequestHeader));
         if (!RT_SUCCESS(rc) || !RequestHeader.cbData)
@@ -114,6 +112,6 @@
         char *pReply = NULL;
         unsigned cbReply;
-        cbReply = pThis->pKDClient->OnRequest(pThis->abCmdBody + pThis->cbRPCCommandHeaderSize,
-                                              RequestHeader.cbData - pThis->cbRPCCommandHeaderSize,
+        cbReply = pThis->pKDClient->OnRequest(pThis->abCmdBody,
+                                              RequestHeader.cbData,
                                               &pReply);
 
@@ -158,5 +156,4 @@
     pThis->hLib = NIL_RTLDRMOD;
     pThis->pKDClient = NULL;
-    pThis->cbRPCCommandHeaderSize = 0;
 
     if (!CFGMR3AreValuesValid(pCfg,
@@ -205,6 +202,4 @@
         return VINF_SUCCESS;
     }
-
-    pThis->cbRPCCommandHeaderSize = pThis->pKDClient->GetRPCCommandHeaderSize();
 
     PDMDevHlpIOPortRegister(pDevIns, 0x5658, 2, NULL, vkdPortWrite, vkdPortRead, NULL, NULL, "VirtualKD");
