Index: /trunk/src/VBox/Devices/Audio/DevIchAc97.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DevIchAc97.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Audio/DevIchAc97.cpp	(revision 25985)
@@ -1546,6 +1546,5 @@
     Assert(&pThis->ac97.IBase == pInterface);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pThis->ac97.IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pThis->ac97.IBase);
     return NULL;
 }
Index: /trunk/src/VBox/Devices/Audio/DevSB16.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DevSB16.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Audio/DevSB16.cpp	(revision 25985)
@@ -1781,6 +1781,5 @@
     Assert(&pThis->IBase == pInterface);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pThis->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pThis->IBase);
     return NULL;
 }
Index: /trunk/src/VBox/Devices/Audio/audio.c
===================================================================
--- /trunk/src/VBox/Devices/Audio/audio.c	(revision 25984)
+++ /trunk/src/VBox/Devices/Audio/audio.c	(revision 25985)
@@ -1935,6 +1935,5 @@
     PPDMDRVINS pDrvIns = PDMIBASE_2_PDMDRV(pInterface);
     PDRVAUDIO  pThis   = PDMINS_2_DATA(pDrvIns, PDRVAUDIO);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIAUDIOCONNECTOR, &pThis->IAudioConnector);
     return NULL;
Index: /trunk/src/VBox/Devices/Audio/audiosniffer.c
===================================================================
--- /trunk/src/VBox/Devices/Audio/audiosniffer.c	(revision 25984)
+++ /trunk/src/VBox/Devices/Audio/audiosniffer.c	(revision 25985)
@@ -49,7 +49,7 @@
 
     /** Audio Sniffer port base interface. */
-    PDMIBASE                     Base;
+    PDMIBASE                     IBase;
     /** Audio Sniffer port interface. */
-    PDMIAUDIOSNIFFERPORT         Port;
+    PDMIAUDIOSNIFFERPORT         IPort;
 
     /** Pointer to base interface of the driver. */
@@ -109,5 +109,5 @@
 static DECLCALLBACK(int) iface_Setup (PPDMIAUDIOSNIFFERPORT pInterface, bool fEnable, bool fKeepHostAudio)
 {
-    AUDIOSNIFFERSTATE *pThis = RT_FROM_MEMBER(pInterface, AUDIOSNIFFERSTATE, Port);
+    AUDIOSNIFFERSTATE *pThis = RT_FROM_MEMBER(pInterface, AUDIOSNIFFERSTATE, IPort);
 
     Assert(g_pData == pThis);
@@ -124,8 +124,7 @@
 static DECLCALLBACK(void *) iface_QueryInterface(PPDMIBASE pInterface, const char *pszIID)
 {
-    AUDIOSNIFFERSTATE *pThis = RT_FROM_MEMBER(pInterface, AUDIOSNIFFERSTATE, Base);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pThis->Base;
-    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIAUDIOSNIFFERPORT, &pThis->Port);
+    AUDIOSNIFFERSTATE *pThis = RT_FROM_MEMBER(pInterface, AUDIOSNIFFERSTATE, IBase);
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pThis->IBase);
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIAUDIOSNIFFERPORT, &pThis->IPort);
     return NULL;
 }
@@ -171,13 +170,13 @@
      */
     /* Base */
-    pThis->Base.pfnQueryInterface = iface_QueryInterface;
+    pThis->IBase.pfnQueryInterface = iface_QueryInterface;
 
     /* Audio Sniffer port */
-    pThis->Port.pfnSetup = iface_Setup;
+    pThis->IPort.pfnSetup = iface_Setup;
 
     /*
      * Get the corresponding connector interface
      */
-    rc = PDMDevHlpDriverAttach(pDevIns, 0, &pThis->Base, &pThis->pDrvBase, "Audio Sniffer Port");
+    rc = PDMDevHlpDriverAttach(pDevIns, 0, &pThis->IBase, &pThis->pDrvBase, "Audio Sniffer Port");
 
     if (RT_SUCCESS(rc))
Index: /trunk/src/VBox/Devices/Graphics/DevVGA.cpp
===================================================================
--- /trunk/src/VBox/Devices/Graphics/DevVGA.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Graphics/DevVGA.cpp	(revision 25985)
@@ -4738,12 +4738,9 @@
 static DECLCALLBACK(void *) vgaPortQueryInterface(PPDMIBASE pInterface, const char *pszIID)
 {
-    PVGASTATE pThis = RT_FROM_MEMBER(pInterface, VGASTATE, Base);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pThis->Base;
-    if (RTUuidCompare2Strs(pszIID, PDMIDISPLAYPORT_IID) == 0)
-        return &pThis->Port;
+    PVGASTATE pThis = RT_FROM_MEMBER(pInterface, VGASTATE, IBase);
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pThis->IBase);
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIDISPLAYPORT, &pThis->IPort);
 #if defined(VBOX_WITH_HGSMI) && defined(VBOX_WITH_VIDEOHWACCEL)
-    if (RTUuidCompare2Strs(pszIID, PDMIDISPLAYVBVACALLBACKS_IID) == 0)
-        return &pThis->VBVACallbacks;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIDISPLAYVBVACALLBACKS, &pThis->IVBVACallbacks);
 #endif
     return NULL;
@@ -4805,5 +4802,5 @@
 
 /** Converts a display port interface pointer to a vga state pointer. */
-#define IDISPLAYPORT_2_VGASTATE(pInterface) ( (PVGASTATE)((uintptr_t)pInterface - RT_OFFSETOF(VGASTATE, Port)) )
+#define IDISPLAYPORT_2_VGASTATE(pInterface) ( (PVGASTATE)((uintptr_t)pInterface - RT_OFFSETOF(VGASTATE, IPort)) )
 
 
@@ -5725,5 +5722,5 @@
         case 0:
         {
-            int rc = PDMDevHlpDriverAttach(pDevIns, iLUN, &pThis->Base, &pThis->pDrvBase, "Display Port");
+            int rc = PDMDevHlpDriverAttach(pDevIns, iLUN, &pThis->IBase, &pThis->pDrvBase, "Display Port");
             if (RT_SUCCESS(rc))
             {
@@ -5932,18 +5929,18 @@
 
     /* the interfaces. */
-    pThis->Base.pfnQueryInterface       = vgaPortQueryInterface;
-
-    pThis->Port.pfnUpdateDisplay        = vgaPortUpdateDisplay;
-    pThis->Port.pfnUpdateDisplayAll     = vgaPortUpdateDisplayAll;
-    pThis->Port.pfnQueryColorDepth      = vgaPortQueryColorDepth;
-    pThis->Port.pfnSetRefreshRate       = vgaPortSetRefreshRate;
-    pThis->Port.pfnTakeScreenshot       = vgaPortTakeScreenshot;
-    pThis->Port.pfnFreeScreenshot       = vgaPortFreeScreenshot;
-    pThis->Port.pfnDisplayBlt           = vgaPortDisplayBlt;
-    pThis->Port.pfnUpdateDisplayRect    = vgaPortUpdateDisplayRect;
-    pThis->Port.pfnSetRenderVRAM        = vgaPortSetRenderVRAM;
+    pThis->IBase.pfnQueryInterface      = vgaPortQueryInterface;
+
+    pThis->IPort.pfnUpdateDisplay       = vgaPortUpdateDisplay;
+    pThis->IPort.pfnUpdateDisplayAll    = vgaPortUpdateDisplayAll;
+    pThis->IPort.pfnQueryColorDepth     = vgaPortQueryColorDepth;
+    pThis->IPort.pfnSetRefreshRate      = vgaPortSetRefreshRate;
+    pThis->IPort.pfnTakeScreenshot      = vgaPortTakeScreenshot;
+    pThis->IPort.pfnFreeScreenshot      = vgaPortFreeScreenshot;
+    pThis->IPort.pfnDisplayBlt          = vgaPortDisplayBlt;
+    pThis->IPort.pfnUpdateDisplayRect   = vgaPortUpdateDisplayRect;
+    pThis->IPort.pfnSetRenderVRAM       = vgaPortSetRenderVRAM;
 
 #if defined(VBOX_WITH_HGSMI) && defined(VBOX_WITH_VIDEOHWACCEL)
-    pThis->VBVACallbacks.pfnVHWACommandCompleteAsynch = vbvaVHWACommandCompleteAsynch;
+    pThis->IVBVACallbacks.pfnVHWACommandCompleteAsynch = vbvaVHWACommandCompleteAsynch;
 #endif
 
Index: /trunk/src/VBox/Devices/Graphics/DevVGA.h
===================================================================
--- /trunk/src/VBox/Devices/Graphics/DevVGA.h	(revision 25984)
+++ /trunk/src/VBox/Devices/Graphics/DevVGA.h	(revision 25985)
@@ -304,7 +304,7 @@
 
     /** LUN\#0: The display port base interface. */
-    PDMIBASE                    Base;
+    PDMIBASE                    IBase;
     /** LUN\#0: The display port interface. */
-    PDMIDISPLAYPORT             Port;
+    PDMIDISPLAYPORT             IPort;
 # if HC_ARCH_BITS == 32
     uint32_t                    Padding8;
@@ -312,5 +312,5 @@
 #if defined(VBOX_WITH_HGSMI) && defined(VBOX_WITH_VIDEOHWACCEL)
     /** LUN\#0: VBVA callbacks interface */
-    PDMIDISPLAYVBVACALLBACKS    VBVACallbacks;
+    PDMIDISPLAYVBVACALLBACKS    IVBVACallbacks;
 #else
 # if HC_ARCH_BITS == 32
Index: /trunk/src/VBox/Devices/Graphics/DevVGA_VBVA.cpp
===================================================================
--- /trunk/src/VBox/Devices/Graphics/DevVGA_VBVA.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Graphics/DevVGA_VBVA.cpp	(revision 25985)
@@ -1177,5 +1177,5 @@
 }
 
-#define PPDMIDISPLAYVBVACALLBACKS_2_PVGASTATE(_pcb) ( (PVGASTATE)((uint8_t *)(_pcb) - RT_OFFSETOF(VGASTATE, VBVACallbacks)) )
+#define PPDMIDISPLAYVBVACALLBACKS_2_PVGASTATE(_pcb) ( (PVGASTATE)((uint8_t *)(_pcb) - RT_OFFSETOF(VGASTATE, IVBVACallbacks)) )
 
 int vbvaVHWACommandCompleteAsynch(PPDMIDISPLAYVBVACALLBACKS pInterface, PVBOXVHWACMD pCmd)
Index: /trunk/src/VBox/Devices/Input/DevPS2.cpp
===================================================================
--- /trunk/src/VBox/Devices/Input/DevPS2.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Input/DevPS2.cpp	(revision 25985)
@@ -229,7 +229,7 @@
     {
         /** The base interface for the keyboard port. */
-        PDMIBASE                            Base;
+        PDMIBASE                            IBase;
         /** The keyboard port base interface. */
-        PDMIKEYBOARDPORT                    Port;
+        PDMIKEYBOARDPORT                    IPort;
 
         /** The base interface of the attached keyboard driver. */
@@ -248,7 +248,7 @@
     {
         /** The base interface for the mouse port. */
-        PDMIBASE                            Base;
+        PDMIBASE                            IBase;
         /** The mouse port base interface. */
-        PDMIMOUSEPORT                       Port;
+        PDMIMOUSEPORT                       IPort;
 
         /** The base interface of the attached mouse driver. */
@@ -1360,9 +1360,7 @@
 static DECLCALLBACK(void *)  kbdKeyboardQueryInterface(PPDMIBASE pInterface, const char *pszIID)
 {
-    KBDState *pThis = RT_FROM_MEMBER(pInterface, KBDState, Keyboard.Base);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pThis->Keyboard.Base;
-    if (RTUuidCompare2Strs(pszIID, PDMIKEYBOARDPORT_IID) == 0)
-        return &pThis->Keyboard.Port;
+    KBDState *pThis = RT_FROM_MEMBER(pInterface, KBDState, Keyboard.IBase);
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pThis->Keyboard.IBase);
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIKEYBOARDPORT, &pThis->Keyboard.IPort);
     return NULL;
 }
@@ -1375,10 +1373,10 @@
  *
  * @returns VBox status code.
- * @param   pInterface      Pointer to the keyboard port interface (KBDState::Keyboard.Port).
+ * @param   pInterface      Pointer to the keyboard port interface (KBDState::Keyboard.IPort).
  * @param   u8KeyCode       The keycode.
  */
 static DECLCALLBACK(int) kbdKeyboardPutEvent(PPDMIKEYBOARDPORT pInterface, uint8_t u8KeyCode)
 {
-    KBDState *pThis = RT_FROM_MEMBER(pInterface, KBDState, Keyboard.Port);
+    KBDState *pThis = RT_FROM_MEMBER(pInterface, KBDState, Keyboard.IPort);
     int rc = PDMCritSectEnter(&pThis->CritSect, VERR_SEM_BUSY);
     AssertReleaseRC(rc);
@@ -1398,9 +1396,7 @@
 static DECLCALLBACK(void *)  kbdMouseQueryInterface(PPDMIBASE pInterface, const char *pszIID)
 {
-    KBDState *pThis = RT_FROM_MEMBER(pInterface, KBDState, Mouse.Base);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pThis->Mouse.Base;
-    if (RTUuidCompare2Strs(pszIID, PDMIMOUSEPORT_IID) == 0)
-        return &pThis->Mouse.Port;
+    KBDState *pThis = RT_FROM_MEMBER(pInterface, KBDState, Mouse.IBase);
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pThis->Mouse.IBase);
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIMOUSEPORT, &pThis->Mouse.IPort);
     return NULL;
 }
@@ -1413,5 +1409,5 @@
  *
  * @returns VBox status code.
- * @param   pInterface      Pointer to the mouse port interface (KBDState::Mouse.Port).
+ * @param   pInterface      Pointer to the mouse port interface (KBDState::Mouse.IPort).
  * @param   i32DeltaX       The X delta.
  * @param   i32DeltaY       The Y delta.
@@ -1421,5 +1417,5 @@
 static DECLCALLBACK(int) kbdMousePutEvent(PPDMIMOUSEPORT pInterface, int32_t i32DeltaX, int32_t i32DeltaY, int32_t i32DeltaZ, int32_t i32DeltaW, uint32_t fButtonStates)
 {
-    KBDState *pThis = RT_FROM_MEMBER(pInterface, KBDState, Mouse.Port);
+    KBDState *pThis = RT_FROM_MEMBER(pInterface, KBDState, Mouse.IPort);
     int rc = PDMCritSectEnter(&pThis->CritSect, VERR_SEM_BUSY);
     AssertReleaseRC(rc);
@@ -1464,5 +1460,5 @@
         /* LUN #0: keyboard */
         case 0:
-            rc = PDMDevHlpDriverAttach(pDevIns, iLUN, &pThis->Keyboard.Base, &pThis->Keyboard.pDrvBase, "Keyboard Port");
+            rc = PDMDevHlpDriverAttach(pDevIns, iLUN, &pThis->Keyboard.IBase, &pThis->Keyboard.pDrvBase, "Keyboard Port");
             if (RT_SUCCESS(rc))
             {
@@ -1485,5 +1481,5 @@
         /* LUN #1: aux/mouse */
         case 1:
-            rc = PDMDevHlpDriverAttach(pDevIns, iLUN, &pThis->Mouse.Base, &pThis->Mouse.pDrvBase, "Aux (Mouse) Port");
+            rc = PDMDevHlpDriverAttach(pDevIns, iLUN, &pThis->Mouse.IBase, &pThis->Mouse.pDrvBase, "Aux (Mouse) Port");
             if (RT_SUCCESS(rc))
             {
@@ -1623,9 +1619,9 @@
     pThis->pDevInsR0 = PDMDEVINS_2_R0PTR(pDevIns);
     pThis->pDevInsRC = PDMDEVINS_2_RCPTR(pDevIns);
-    pThis->Keyboard.Base.pfnQueryInterface  = kbdKeyboardQueryInterface;
-    pThis->Keyboard.Port.pfnPutEvent        = kbdKeyboardPutEvent;
-
-    pThis->Mouse.Base.pfnQueryInterface     = kbdMouseQueryInterface;
-    pThis->Mouse.Port.pfnPutEvent           = kbdMousePutEvent;
+    pThis->Keyboard.IBase.pfnQueryInterface = kbdKeyboardQueryInterface;
+    pThis->Keyboard.IPort.pfnPutEvent       = kbdKeyboardPutEvent;
+
+    pThis->Mouse.IBase.pfnQueryInterface    = kbdMouseQueryInterface;
+    pThis->Mouse.IPort.pfnPutEvent          = kbdMousePutEvent;
 
     /*
Index: /trunk/src/VBox/Devices/Input/DrvKeyboardQueue.cpp
===================================================================
--- /trunk/src/VBox/Devices/Input/DrvKeyboardQueue.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Input/DrvKeyboardQueue.cpp	(revision 25985)
@@ -51,7 +51,7 @@
     PPDMIKEYBOARDCONNECTOR      pDownConnector;
     /** Our keyboard connector interface. */
-    PDMIKEYBOARDCONNECTOR       Connector;
+    PDMIKEYBOARDCONNECTOR       IConnector;
     /** Our keyboard port interface. */
-    PDMIKEYBOARDPORT            Port;
+    PDMIKEYBOARDPORT            IPort;
     /** The queue handle. */
     PPDMQUEUE                   pQueue;
@@ -85,10 +85,7 @@
     PDRVKBDQUEUE    pThis   = PDMINS_2_DATA(pDrvIns, PDRVKBDQUEUE);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
-    if (RTUuidCompare2Strs(pszIID, PDMIKEYBOARDCONNECTOR_IID) == 0)
-        return &pThis->Connector;
-    if (RTUuidCompare2Strs(pszIID, PDMIKEYBOARDPORT_IID) == 0)
-        return &pThis->Port;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIKEYBOARDCONNECTOR, &pThis->IConnector);
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIKEYBOARDPORT, &pThis->IPort);
     return NULL;
 }
@@ -97,6 +94,6 @@
 /* -=-=-=-=- IKeyboardPort -=-=-=-=- */
 
-/** Converts a pointer to DRVKBDQUEUE::Port to a DRVKBDQUEUE pointer. */
-#define IKEYBOARDPORT_2_DRVKBDQUEUE(pInterface) ( (PDRVKBDQUEUE)((char *)(pInterface) - RT_OFFSETOF(DRVKBDQUEUE, Port)) )
+/** Converts a pointer to DRVKBDQUEUE::IPort to a DRVKBDQUEUE pointer. */
+#define IKEYBOARDPORT_2_DRVKBDQUEUE(pInterface) ( (PDRVKBDQUEUE)((char *)(pInterface) - RT_OFFSETOF(DRVKBDQUEUE, IPort)) )
 
 
@@ -128,7 +125,7 @@
 
 
-/* -=-=-=-=- Connector -=-=-=-=- */
-
-#define PPDMIKEYBOARDCONNECTOR_2_DRVKBDQUEUE(pInterface) ( (PDRVKBDQUEUE)((char *)(pInterface) - RT_OFFSETOF(DRVKBDQUEUE, Connector)) )
+/* -=-=-=-=- IConnector -=-=-=-=- */
+
+#define PPDMIKEYBOARDCONNECTOR_2_DRVKBDQUEUE(pInterface) ( (PDRVKBDQUEUE)((char *)(pInterface) - RT_OFFSETOF(DRVKBDQUEUE, IConnector)) )
 
 
@@ -255,7 +252,7 @@
     pDrvIns->IBase.pfnQueryInterface        = drvKbdQueueQueryInterface;
     /* IKeyboardConnector. */
-    pDrv->Connector.pfnLedStatusChange      = drvKbdPassThruLedsChange;
+    pDrv->IConnector.pfnLedStatusChange     = drvKbdPassThruLedsChange;
     /* IKeyboardPort. */
-    pDrv->Port.pfnPutEvent                  = drvKbdQueuePutEvent;
+    pDrv->IPort.pfnPutEvent                 = drvKbdQueuePutEvent;
 
     /*
Index: /trunk/src/VBox/Devices/Input/DrvMouseQueue.cpp
===================================================================
--- /trunk/src/VBox/Devices/Input/DrvMouseQueue.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Input/DrvMouseQueue.cpp	(revision 25985)
@@ -51,7 +51,7 @@
     PPDMIMOUSECONNECTOR         pDownConnector;
     /** Our mouse connector interface. */
-    PDMIMOUSECONNECTOR          Connector;
+    PDMIMOUSECONNECTOR          IConnector;
     /** Our mouse port interface. */
-    PDMIMOUSEPORT               Port;
+    PDMIMOUSEPORT               IPort;
     /** The queue handle. */
     PPDMQUEUE                   pQueue;
@@ -87,10 +87,7 @@
     PPDMDRVINS      pDrvIns = PDMIBASE_2_PDMDRV(pInterface);
     PDRVMOUSEQUEUE  pThis   = PDMINS_2_DATA(pDrvIns, PDRVMOUSEQUEUE);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
-    if (RTUuidCompare2Strs(pszIID, PDMIMOUSEPORT_IID) == 0)
-        return &pThis->Port;
-    if (RTUuidCompare2Strs(pszIID, PDMIMOUSECONNECTOR_IID) == 0)
-        return &pThis->Connector;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIMOUSEPORT, &pThis->IPort);
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIMOUSECONNECTOR, &pThis->IConnector);
     return NULL;
 }
@@ -100,5 +97,5 @@
 
 /** Converts a pointer to DRVMOUSEQUEUE::Port to a DRVMOUSEQUEUE pointer. */
-#define IMOUSEPORT_2_DRVMOUSEQUEUE(pInterface) ( (PDRVMOUSEQUEUE)((char *)(pInterface) - RT_OFFSETOF(DRVMOUSEQUEUE, Port)) )
+#define IMOUSEPORT_2_DRVMOUSEQUEUE(pInterface) ( (PDRVMOUSEQUEUE)((char *)(pInterface) - RT_OFFSETOF(DRVMOUSEQUEUE, IPort)) )
 
 
@@ -244,5 +241,5 @@
     pDrvIns->IBase.pfnQueryInterface        = drvMouseQueueQueryInterface;
     /* IMousePort. */
-    pDrv->Port.pfnPutEvent                  = drvMouseQueuePutEvent;
+    pDrv->IPort.pfnPutEvent                 = drvMouseQueuePutEvent;
 
     /*
Index: /trunk/src/VBox/Devices/Network/DevE1000.cpp
===================================================================
--- /trunk/src/VBox/Devices/Network/DevE1000.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Network/DevE1000.cpp	(revision 25985)
@@ -4467,6 +4467,5 @@
     Assert(&pThis->IBase == pInterface);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pThis->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pThis->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMINETWORKPORT, &pThis->INetworkPort);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMINETWORKCONFIG, &pThis->INetworkConfig);
Index: /trunk/src/VBox/Devices/Network/DevINIP.cpp
===================================================================
--- /trunk/src/VBox/Devices/Network/DevINIP.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Network/DevINIP.cpp	(revision 25985)
@@ -397,6 +397,5 @@
 {
     PDEVINTNETIP pThis = RT_FROM_MEMBER(pInterface, DEVINTNETIP, IBase);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pThis->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pThis->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMINETWORKPORT, &pThis->INetworkPort);
     return NULL;
Index: /trunk/src/VBox/Devices/Network/DevPCNet.cpp
===================================================================
--- /trunk/src/VBox/Devices/Network/DevPCNet.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Network/DevPCNet.cpp	(revision 25985)
@@ -4487,6 +4487,5 @@
     PCNetState *pThis = RT_FROM_MEMBER(pInterface, PCNetState, IBase);
     Assert(&pThis->IBase == pInterface);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pThis->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pThis->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMINETWORKPORT, &pThis->INetworkPort);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMINETWORKCONFIG, &pThis->INetworkConfig);
Index: /trunk/src/VBox/Devices/Network/DrvIntNet.cpp
===================================================================
--- /trunk/src/VBox/Devices/Network/DrvIntNet.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Network/DrvIntNet.cpp	(revision 25985)
@@ -586,6 +586,5 @@
     PDRVINTNET pThis   = PDMINS_2_DATA(pDrvIns, PDRVINTNET);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMINETWORKCONNECTOR, &pThis->INetworkConnector);
     return NULL;
Index: /trunk/src/VBox/Devices/Network/DrvNAT.cpp
===================================================================
--- /trunk/src/VBox/Devices/Network/DrvNAT.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Network/DrvNAT.cpp	(revision 25985)
@@ -813,6 +813,5 @@
     PDRVNAT     pThis = PDMINS_2_DATA(pDrvIns, PDRVNAT);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMINETWORKCONNECTOR, &pThis->INetworkConnector);
     return NULL;
Index: /trunk/src/VBox/Devices/Network/DrvNetSniffer.cpp
===================================================================
--- /trunk/src/VBox/Devices/Network/DrvNetSniffer.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Network/DrvNetSniffer.cpp	(revision 25985)
@@ -258,6 +258,5 @@
     PPDMDRVINS      pDrvIns = PDMIBASE_2_PDMDRV(pInterface);
     PDRVNETSNIFFER  pThis   = PDMINS_2_DATA(pDrvIns, PDRVNETSNIFFER);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMINETWORKCONNECTOR, &pThis->INetworkConnector);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMINETWORKPORT, &pThis->INetworkPort);
Index: /trunk/src/VBox/Devices/Network/DrvTAP.cpp
===================================================================
--- /trunk/src/VBox/Devices/Network/DrvTAP.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Network/DrvTAP.cpp	(revision 25985)
@@ -784,6 +784,5 @@
     PDRVTAP     pThis   = PDMINS_2_DATA(pDrvIns, PDRVTAP);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMINETWORKCONNECTOR, &pThis->INetworkConnector);
     return NULL;
Index: /trunk/src/VBox/Devices/PC/DevACPI.cpp
===================================================================
--- /trunk/src/VBox/Devices/PC/DevACPI.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/PC/DevACPI.cpp	(revision 25985)
@@ -1941,6 +1941,5 @@
 {
     ACPIState *pThis = RT_FROM_MEMBER(pInterface, ACPIState, IBase);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pThis->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pThis->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIACPIPORT, &pThis->IACPIPort);
     return NULL;
Index: /trunk/src/VBox/Devices/PC/DrvACPI.cpp
===================================================================
--- /trunk/src/VBox/Devices/PC/DrvACPI.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/PC/DrvACPI.cpp	(revision 25985)
@@ -87,8 +87,7 @@
 {
     PPDMDRVINS pDrvIns = PDMIBASE_2_PDMDRV(pInterface);
-    PDRVACPI pThis = PDMINS_2_DATA(pDrvIns, PDRVACPI);
-
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
+    PDRVACPI   pThis = PDMINS_2_DATA(pDrvIns, PDRVACPI);
+
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIACPICONNECTOR, &pThis->IACPIConnector);
     return NULL;
Index: /trunk/src/VBox/Devices/PC/DrvAcpiCpu.cpp
===================================================================
--- /trunk/src/VBox/Devices/PC/DrvAcpiCpu.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/PC/DrvAcpiCpu.cpp	(revision 25985)
@@ -40,6 +40,5 @@
 {
     PPDMDRVINS pDrvIns = PDMIBASE_2_PDMDRV(pInterface);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
     return NULL;
 }
Index: /trunk/src/VBox/Devices/Parallel/DevParallel.cpp
===================================================================
--- /trunk/src/VBox/Devices/Parallel/DevParallel.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Parallel/DevParallel.cpp	(revision 25985)
@@ -656,6 +656,5 @@
 {
     ParallelState *pThis = PDMIBASE_2_PARALLELSTATE(pInterface);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pThis->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pThis->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIHOSTPARALLELPORT, &pThis->IHostParallelPort);
     return NULL;
Index: /trunk/src/VBox/Devices/Parallel/DrvHostParallel.cpp
===================================================================
--- /trunk/src/VBox/Devices/Parallel/DrvHostParallel.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Parallel/DrvHostParallel.cpp	(revision 25985)
@@ -91,6 +91,5 @@
     PDRVHOSTPARALLEL    pThis   = PDMINS_2_DATA(pDrvIns, PDRVHOSTPARALLEL);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIHOSTPARALLELCONNECTOR, &pThis->IHostParallelConnector);
     return NULL;
Index: /trunk/src/VBox/Devices/Serial/DevSerial.cpp
===================================================================
--- /trunk/src/VBox/Devices/Serial/DevSerial.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Serial/DevSerial.cpp	(revision 25985)
@@ -738,8 +738,6 @@
 {
     SerialState *pThis = PDMIBASE_2_SERIALSTATE(pInterface);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pThis->IBase;
-    if (RTUuidCompare2Strs(pszIID, PDMICHARPORT_IID) == 0)
-        return &pThis->ICharPort;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pThis->IBase);
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMICHARPORT, &pThis->ICharPort);
     return NULL;
 }
Index: /trunk/src/VBox/Devices/Serial/DrvChar.cpp
===================================================================
--- /trunk/src/VBox/Devices/Serial/DrvChar.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Serial/DrvChar.cpp	(revision 25985)
@@ -99,8 +99,6 @@
     PDRVCHAR    pThis = PDMINS_2_DATA(pDrvIns, PDRVCHAR);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
-    if (RTUuidCompare2Strs(pszIID, PDMICHARCONNECTOR_IID) == 0)
-        return &pThis->ICharConnector;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMICHARCONNECTOR, &pThis->ICharConnector);
     return NULL;
 }
Index: /trunk/src/VBox/Devices/Serial/DrvHostSerial.cpp
===================================================================
--- /trunk/src/VBox/Devices/Serial/DrvHostSerial.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Serial/DrvHostSerial.cpp	(revision 25985)
@@ -179,8 +179,6 @@
     PDRVHOSTSERIAL  pThis   = PDMINS_2_DATA(pDrvIns, PDRVHOSTSERIAL);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
-    if (RTUuidCompare2Strs(pszIID, PDMICHARCONNECTOR_IID) == 0)
-        return &pThis->ICharConnector;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMICHARCONNECTOR, &pThis->ICharConnector);
     return NULL;
 }
Index: /trunk/src/VBox/Devices/Serial/DrvNamedPipe.cpp
===================================================================
--- /trunk/src/VBox/Devices/Serial/DrvNamedPipe.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Serial/DrvNamedPipe.cpp	(revision 25985)
@@ -287,6 +287,5 @@
     PPDMDRVINS      pDrvIns = PDMIBASE_2_DRVINS(pInterface);
     PDRVNAMEDPIPE   pThis   = PDMINS_2_DATA(pDrvIns, PDRVNAMEDPIPE);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMISTREAM, &pThis->IStream);
     return NULL;
Index: /trunk/src/VBox/Devices/Serial/DrvRawFile.cpp
===================================================================
--- /trunk/src/VBox/Devices/Serial/DrvRawFile.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Serial/DrvRawFile.cpp	(revision 25985)
@@ -103,6 +103,5 @@
     PDRVRAWFILE pThis   = PDMINS_2_DATA(pDrvIns, PDRVRAWFILE);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMISTREAM, &pThis->IStream);
     return NULL;
Index: /trunk/src/VBox/Devices/Storage/DevAHCI.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/DevAHCI.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Storage/DevAHCI.cpp	(revision 25985)
@@ -2391,6 +2391,5 @@
 {
     PAHCI pThis = PDMIBASE_2_PAHCI(pInterface);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pThis->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pThis->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMILEDPORTS, &pThis->ILeds);
     return NULL;
@@ -2403,6 +2402,5 @@
 {
     PAHCIPort pAhciPort = PDMIBASE_2_PAHCIPORT(pInterface);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pAhciPort->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pAhciPort->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBLOCKPORT, &pAhciPort->IPort);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBLOCKASYNCPORT, &pAhciPort->IPortAsync);
Index: /trunk/src/VBox/Devices/Storage/DevATA.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/DevATA.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Storage/DevATA.cpp	(revision 25985)
@@ -5234,6 +5234,5 @@
 {
     PCIATAState *pThis = PDMIBASE_2_PCIATASTATE(pInterface);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pThis->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pThis->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMILEDPORTS, &pThis->ILeds);
     return NULL;
@@ -5278,6 +5277,5 @@
 {
     ATADevState *pIf = PDMIBASE_2_ATASTATE(pInterface);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pIf->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pIf->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBLOCKPORT, &pIf->IPort);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIMOUNTNOTIFY, &pIf->IMountNotify);
Index: /trunk/src/VBox/Devices/Storage/DevBusLogic.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/DevBusLogic.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Storage/DevBusLogic.cpp	(revision 25985)
@@ -2355,6 +2355,5 @@
 {
     PBUSLOGICDEVICE pDevice = PDMIBASE_2_PBUSLOGICDEVICE(pInterface);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDevice->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDevice->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMISCSIPORT, &pDevice->ISCSIPort);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMILEDPORTS, &pDevice->ILed);
@@ -2388,6 +2387,5 @@
 {
     PBUSLOGIC pThis = PDMIBASE_2_PBUSLOGIC(pInterface);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pThis->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pThis->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMILEDPORTS, &pThis->ILeds);
     return NULL;
Index: /trunk/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp	(revision 25985)
@@ -4201,6 +4201,5 @@
     PLSILOGICDEVICE pDevice = PDMIBASE_2_PLSILOGICDEVICE(pInterface);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDevice->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDevice->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMISCSIPORT, &pDevice->ISCSIPort);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMILEDPORTS, &pDevice->ILed);
@@ -4234,6 +4233,5 @@
 {
     PLSILOGICSCSI pThis = PDMIBASE_2_PLSILOGICSCSI(pInterface);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pThis->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pThis->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMILEDPORTS, &pThis->ILeds);
     return NULL;
Index: /trunk/src/VBox/Devices/Storage/DrvBlock.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/DrvBlock.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Storage/DrvBlock.cpp	(revision 25985)
@@ -658,6 +658,5 @@
     PDRVBLOCK   pThis = PDMINS_2_DATA(pDrvIns, PDRVBLOCK);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBLOCK, &pThis->IBlock);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBLOCKBIOS, pThis->fBiosVisible ? &pThis->IBlockBios : NULL);
Index: /trunk/src/VBox/Devices/Storage/DrvHostBase.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/DrvHostBase.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Storage/DrvHostBase.cpp	(revision 25985)
@@ -571,6 +571,5 @@
     PDRVHOSTBASE pThis   = PDMINS_2_DATA(pDrvIns, PDRVHOSTBASE);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBLOCK, &pThis->IBlock);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBLOCKBIOS, pThis->fBiosVisible ? &pThis->IBlockBios : NULL);
@@ -721,5 +720,5 @@
                         rcDA = -2;
                         DADiskUnmount(pThis->pDADisk, kDADiskUnmountOptionWhole, drvHostBaseDADoneCallback, &rcDA);
-                        SInt32 rc32 = CFRunLoopRunInMode(MY_RUN_LOOP_MODE, 120.0, FALSE);
+                        rc32 = CFRunLoopRunInMode(MY_RUN_LOOP_MODE, 120.0, FALSE);
                         AssertMsg(rc32 == kCFRunLoopRunStopped, ("rc32=%RI32 (%RX32)\n", rc32, rc32));
                         if (    rc32 == kCFRunLoopRunStopped
Index: /trunk/src/VBox/Devices/Storage/DrvMediaISO.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/DrvMediaISO.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Storage/DrvMediaISO.cpp	(revision 25985)
@@ -293,6 +293,5 @@
     PPDMDRVINS pDrvIns = PDMIBASE_2_DRVINS(pInterface);
     PDRVMEDIAISO pThis = PDMINS_2_DATA(pDrvIns, PDRVMEDIAISO);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIMEDIA, &pThis->IMedia);
     return NULL;
Index: /trunk/src/VBox/Devices/Storage/DrvRawImage.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/DrvRawImage.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Storage/DrvRawImage.cpp	(revision 25985)
@@ -344,6 +344,5 @@
     PDRVRAWIMAGE    pThis   = PDMINS_2_DATA(pDrvIns, PDRVRAWIMAGE);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIMEDIA, &pThis->IMedia);
     return NULL;
Index: /trunk/src/VBox/Devices/Storage/DrvSCSI.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/DrvSCSI.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Storage/DrvSCSI.cpp	(revision 25985)
@@ -805,6 +805,5 @@
     PDRVSCSI    pThis   = PDMINS_2_DATA(pDrvIns, PDRVSCSI);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMISCSICONNECTOR, &pThis->ISCSIConnector);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBLOCKPORT, &pThis->IPort);
Index: /trunk/src/VBox/Devices/Storage/DrvSCSIHost.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/DrvSCSIHost.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Storage/DrvSCSIHost.cpp	(revision 25985)
@@ -404,6 +404,5 @@
     PDRVSCSIHOST pThis   = PDMINS_2_DATA(pDrvIns, PDRVSCSIHOST);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMISCSICONNECTOR, &pThis->ISCSIConnector);
     return NULL;
Index: /trunk/src/VBox/Devices/Storage/DrvVD.cpp
===================================================================
--- /trunk/src/VBox/Devices/Storage/DrvVD.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/Storage/DrvVD.cpp	(revision 25985)
@@ -819,6 +819,5 @@
     PVBOXDISK   pThis   = PDMINS_2_DATA(pDrvIns, PVBOXDISK);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIMEDIA, &pThis->IMedia);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIMEDIAASYNC, pThis->fAsyncIOSupported ? &pThis->IMediaAsync : NULL);
Index: /trunk/src/VBox/Devices/Storage/fdc.c
===================================================================
--- /trunk/src/VBox/Devices/Storage/fdc.c	(revision 25984)
+++ /trunk/src/VBox/Devices/Storage/fdc.c	(revision 25985)
@@ -2503,6 +2503,6 @@
 {
     fdrive_t *pDrive = PDMIBASE_2_FDRIVE(pInterface);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrive->IBase;
+
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrive->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBLOCKPORT, &pDrive->IPort);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIMOUNTNOTIFY, &pDrive->IMountNotify);
@@ -2540,6 +2540,5 @@
     fdctrl_t *pThis = RT_FROM_MEMBER (pInterface, fdctrl_t, IBaseStatus);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pThis->IBaseStatus;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pThis->IBaseStatus);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMILEDPORTS, &pThis->ILeds);
     return NULL;
Index: /trunk/src/VBox/Devices/VMMDev/VMMDev.cpp
===================================================================
--- /trunk/src/VBox/Devices/VMMDev/VMMDev.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/VMMDev/VMMDev.cpp	(revision 25985)
@@ -1832,11 +1832,10 @@
 static DECLCALLBACK(void *) vmmdevPortQueryInterface(PPDMIBASE pInterface, const char *pszIID)
 {
-    VMMDevState *pThis = RT_FROM_MEMBER(pInterface, VMMDevState, Base);
-
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pThis->Base;
-    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIVMMDEVPORT, &pThis->Port);
+    VMMDevState *pThis = RT_FROM_MEMBER(pInterface, VMMDevState, IBase);
+
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pThis->IBase);
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIVMMDEVPORT, &pThis->IPort);
 #ifdef VBOX_WITH_HGCM
-    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIHGCMPORT, &pThis->HGCMPort);
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIHGCMPORT, &pThis->IHGCMPort);
 #endif
     /* Currently only for shared folders. */
@@ -1867,5 +1866,5 @@
 
 /** Converts a VMMDev port interface pointer to a VMMDev state pointer. */
-#define IVMMDEVPORT_2_VMMDEVSTATE(pInterface) ( (VMMDevState*)((uintptr_t)pInterface - RT_OFFSETOF(VMMDevState, Port)) )
+#define IVMMDEVPORT_2_VMMDEVSTATE(pInterface) ( (VMMDevState*)((uintptr_t)pInterface - RT_OFFSETOF(VMMDevState, IPort)) )
 
 
@@ -2492,29 +2491,29 @@
      * Interfaces
      */
-    /* Base */
-    pThis->Base.pfnQueryInterface         = vmmdevPortQueryInterface;
+    /* IBase */
+    pThis->IBase.pfnQueryInterface         = vmmdevPortQueryInterface;
 
     /* VMMDev port */
-    pThis->Port.pfnQueryAbsoluteMouse     = vmmdevQueryAbsoluteMouse;
-    pThis->Port.pfnSetAbsoluteMouse       = vmmdevSetAbsoluteMouse;
-    pThis->Port.pfnQueryMouseCapabilities = vmmdevQueryMouseCapabilities;
-    pThis->Port.pfnSetMouseCapabilities   = vmmdevSetMouseCapabilities;
-    pThis->Port.pfnRequestDisplayChange   = vmmdevRequestDisplayChange;
-    pThis->Port.pfnSetCredentials         = vmmdevSetCredentials;
-    pThis->Port.pfnVBVAChange             = vmmdevVBVAChange;
-    pThis->Port.pfnRequestSeamlessChange  = vmmdevRequestSeamlessChange;
-    pThis->Port.pfnSetMemoryBalloon       = vmmdevSetMemoryBalloon;
-    pThis->Port.pfnSetStatisticsInterval  = vmmdevSetStatisticsInterval;
-    pThis->Port.pfnVRDPChange             = vmmdevVRDPChange;
-    pThis->Port.pfnCpuHotUnplug           = vmmdevCpuHotUnplug;
-    pThis->Port.pfnCpuHotPlug             = vmmdevCpuHotPlug;
+    pThis->IPort.pfnQueryAbsoluteMouse     = vmmdevQueryAbsoluteMouse;
+    pThis->IPort.pfnSetAbsoluteMouse       = vmmdevSetAbsoluteMouse;
+    pThis->IPort.pfnQueryMouseCapabilities = vmmdevQueryMouseCapabilities;
+    pThis->IPort.pfnSetMouseCapabilities   = vmmdevSetMouseCapabilities;
+    pThis->IPort.pfnRequestDisplayChange   = vmmdevRequestDisplayChange;
+    pThis->IPort.pfnSetCredentials         = vmmdevSetCredentials;
+    pThis->IPort.pfnVBVAChange             = vmmdevVBVAChange;
+    pThis->IPort.pfnRequestSeamlessChange  = vmmdevRequestSeamlessChange;
+    pThis->IPort.pfnSetMemoryBalloon       = vmmdevSetMemoryBalloon;
+    pThis->IPort.pfnSetStatisticsInterval  = vmmdevSetStatisticsInterval;
+    pThis->IPort.pfnVRDPChange             = vmmdevVRDPChange;
+    pThis->IPort.pfnCpuHotUnplug           = vmmdevCpuHotUnplug;
+    pThis->IPort.pfnCpuHotPlug             = vmmdevCpuHotPlug;
 
     /* Shared folder LED */
-    pThis->SharedFolders.Led.u32Magic     = PDMLED_MAGIC;
+    pThis->SharedFolders.Led.u32Magic      = PDMLED_MAGIC;
     pThis->SharedFolders.ILeds.pfnQueryStatusLed = vmmdevQueryStatusLed;
 
 #ifdef VBOX_WITH_HGCM
     /* HGCM port */
-    pThis->HGCMPort.pfnCompleted          = hgcmCompleted;
+    pThis->IHGCMPort.pfnCompleted          = hgcmCompleted;
 #endif
 
@@ -2584,5 +2583,5 @@
      * Get the corresponding connector interface
      */
-    rc = PDMDevHlpDriverAttach(pDevIns, 0, &pThis->Base, &pThis->pDrvBase, "VMM Driver Port");
+    rc = PDMDevHlpDriverAttach(pDevIns, 0, &pThis->IBase, &pThis->pDrvBase, "VMM Driver Port");
     if (RT_SUCCESS(rc))
     {
@@ -2610,5 +2609,5 @@
      */
     PPDMIBASE pBase;
-    rc = PDMDevHlpDriverAttach(pDevIns, PDM_STATUS_LUN, &pThis->Base, &pBase, "Status Port");
+    rc = PDMDevHlpDriverAttach(pDevIns, PDM_STATUS_LUN, &pThis->IBase, &pBase, "Status Port");
     if (RT_SUCCESS(rc))
         pThis->SharedFolders.pLedsConnector = PDMIBASE_QUERY_INTERFACE(pBase, PDMILEDCONNECTORS);
Index: /trunk/src/VBox/Devices/VMMDev/VMMDevHGCM.cpp
===================================================================
--- /trunk/src/VBox/Devices/VMMDev/VMMDevHGCM.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/VMMDev/VMMDevHGCM.cpp	(revision 25985)
@@ -1737,5 +1737,5 @@
 }
 
-#define PDMIHGCMPORT_2_VMMDEVSTATE(pInterface) ( (VMMDevState *) ((uintptr_t)pInterface - RT_OFFSETOF(VMMDevState, HGCMPort)) )
+#define PDMIHGCMPORT_2_VMMDEVSTATE(pInterface) ( (VMMDevState *) ((uintptr_t)pInterface - RT_OFFSETOF(VMMDevState, IHGCMPort)) )
 
 DECLCALLBACK(void) hgcmCompletedWorker (PPDMIHGCMPORT pInterface, int32_t result, PVBOXHGCMCMD pCmd)
Index: /trunk/src/VBox/Devices/VMMDev/VMMDevState.h
===================================================================
--- /trunk/src/VBox/Devices/VMMDev/VMMDevState.h	(revision 25984)
+++ /trunk/src/VBox/Devices/VMMDev/VMMDevState.h	(revision 25985)
@@ -52,10 +52,10 @@
     PPDMDEVINSR3 pDevIns;
     /** LUN\#0 + Status: VMMDev port base interface. */
-    PDMIBASE Base;
+    PDMIBASE IBase;
     /** LUN\#0: VMMDev port interface. */
-    PDMIVMMDEVPORT Port;
+    PDMIVMMDEVPORT IPort;
 #ifdef VBOX_WITH_HGCM
     /** LUN\#0: HGCM port interface. */
-    PDMIHGCMPORT HGCMPort;
+    PDMIHGCMPORT IHGCMPort;
 #endif
     /** Pointer to base interface of the driver. */
Index: /trunk/src/VBox/Devices/VirtIO/Virtio.cpp
===================================================================
--- /trunk/src/VBox/Devices/VirtIO/Virtio.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/VirtIO/Virtio.cpp	(revision 25985)
@@ -531,6 +531,5 @@
     Assert(&pThis->IBase == pInterface);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pThis->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pThis->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMILEDPORTS, &pThis->ILeds);
     return NULL;
Index: /trunk/src/VBox/Devices/testcase/tstDeviceStructSizeRC.cpp
===================================================================
--- /trunk/src/VBox/Devices/testcase/tstDeviceStructSizeRC.cpp	(revision 25984)
+++ /trunk/src/VBox/Devices/testcase/tstDeviceStructSizeRC.cpp	(revision 25985)
@@ -275,8 +275,8 @@
     GEN_CHECK_OFF(VGASTATE, pDevInsR0);
     GEN_CHECK_OFF(VGASTATE, lock);
-    GEN_CHECK_OFF(VGASTATE, Base);
-    GEN_CHECK_OFF(VGASTATE, Port);
+    GEN_CHECK_OFF(VGASTATE, IBase);
+    GEN_CHECK_OFF(VGASTATE, IPort);
 #if defined(VBOX_WITH_HGSMI) && defined(VBOX_WITH_VIDEOHWACCEL)
-    GEN_CHECK_OFF(VGASTATE, VBVACallbacks);
+    GEN_CHECK_OFF(VGASTATE, IVBVACallbacks);
 #endif
     GEN_CHECK_OFF(VGASTATE, pDrvBase);
@@ -347,10 +347,10 @@
     GEN_CHECK_OFF(KBDState, pDevInsR0);
     GEN_CHECK_OFF(KBDState, pDevInsRC);
-    GEN_CHECK_OFF(KBDState, Keyboard.Base);
-    GEN_CHECK_OFF(KBDState, Keyboard.Port);
+    GEN_CHECK_OFF(KBDState, Keyboard.IBase);
+    GEN_CHECK_OFF(KBDState, Keyboard.IPort);
     GEN_CHECK_OFF(KBDState, Keyboard.pDrvBase);
     GEN_CHECK_OFF(KBDState, Keyboard.pDrv);
-    GEN_CHECK_OFF(KBDState, Mouse.Base);
-    GEN_CHECK_OFF(KBDState, Mouse.Port);
+    GEN_CHECK_OFF(KBDState, Mouse.IBase);
+    GEN_CHECK_OFF(KBDState, Mouse.IPort);
     GEN_CHECK_OFF(KBDState, Mouse.pDrvBase);
     GEN_CHECK_OFF(KBDState, Mouse.pDrv);
Index: /trunk/src/VBox/Main/AudioSnifferInterface.cpp
===================================================================
--- /trunk/src/VBox/Main/AudioSnifferInterface.cpp	(revision 25984)
+++ /trunk/src/VBox/Main/AudioSnifferInterface.cpp	(revision 25985)
@@ -124,6 +124,5 @@
     PPDMDRVINS pDrvIns = PDMIBASE_2_PDMDRV(pInterface);
     PDRVAUDIOSNIFFER pDrv = PDMINS_2_DATA(pDrvIns, PDRVAUDIOSNIFFER);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIAUDIOSNIFFERCONNECTOR, &pDrv->Connector);
     return NULL;
Index: /trunk/src/VBox/Main/ConsoleImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/ConsoleImpl.cpp	(revision 25984)
+++ /trunk/src/VBox/Main/ConsoleImpl.cpp	(revision 25985)
@@ -8130,6 +8130,5 @@
     PPDMDRVINS pDrvIns = PDMIBASE_2_PDMDRV(pInterface);
     PDRVMAINSTATUS pThis = PDMINS_2_DATA(pDrvIns, PDRVMAINSTATUS);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMILEDCONNECTORS, &pThis->ILedConnectors);
     return NULL;
Index: /trunk/src/VBox/Main/DisplayImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/DisplayImpl.cpp	(revision 25984)
+++ /trunk/src/VBox/Main/DisplayImpl.cpp	(revision 25985)
@@ -58,5 +58,5 @@
     PPDMIDISPLAYPORT            pUpPort;
     /** Our display connector interface. */
-    PDMIDISPLAYCONNECTOR        Connector;
+    PDMIDISPLAYCONNECTOR        IConnector;
 #if defined(VBOX_WITH_VIDEOHWACCEL)
     /** VBVA callbacks */
@@ -66,5 +66,5 @@
 
 /** Converts PDMIDISPLAYCONNECTOR pointer to a DRVMAINDISPLAY pointer. */
-#define PDMIDISPLAYCONNECTOR_2_MAINDISPLAY(pInterface)  RT_FROM_MEMBER(pInterface, DRVMAINDISPLAY, Connector)
+#define PDMIDISPLAYCONNECTOR_2_MAINDISPLAY(pInterface)  RT_FROM_MEMBER(pInterface, DRVMAINDISPLAY, IConnector)
 
 #ifdef DEBUG_sunlover
@@ -1001,5 +1001,5 @@
 #ifdef DEBUG_sunlover
     LogFlowFunc (("%d,%d %dx%d (%d,%d)\n",
-                  x, y, w, h, mpDrv->Connector.cx, mpDrv->Connector.cy));
+                  x, y, w, h, mpDrv->IConnector.cx, mpDrv->IConnector.cy));
 #endif /* DEBUG_sunlover */
 
@@ -1019,5 +1019,5 @@
 
     if (uScreenId == VBOX_VIDEO_PRIMARY_SCREEN)
-        checkCoordBounds (&x, &y, &w, &h, mpDrv->Connector.cx, mpDrv->Connector.cy);
+        checkCoordBounds (&x, &y, &w, &h, mpDrv->IConnector.cx, mpDrv->IConnector.cy);
     else
         checkCoordBounds (&x, &y, &w, &h, maFramebuffers[uScreenId].w,
@@ -1947,5 +1947,5 @@
     CHECK_CONSOLE_DRV (mpDrv);
 
-    *width = mpDrv->Connector.cx;
+    *width = mpDrv->IConnector.cx;
 
     return S_OK;
@@ -1969,5 +1969,5 @@
     CHECK_CONSOLE_DRV (mpDrv);
 
-    *height = mpDrv->Connector.cy;
+    *height = mpDrv->IConnector.cy;
 
     return S_OK;
@@ -2083,8 +2083,8 @@
     ULONG width  = aWidth;
     if (!width)
-        width    = mpDrv->Connector.cx;
+        width    = mpDrv->IConnector.cx;
     ULONG height = aHeight;
     if (!height)
-        height   = mpDrv->Connector.cy;
+        height   = mpDrv->IConnector.cy;
     ULONG bpp    = aBitsPerPixel;
     if (!bpp)
@@ -2613,18 +2613,18 @@
         }
 
-        mpDrv->Connector.pu8Data = (uint8_t *) address;
-        mpDrv->Connector.cbScanline = bytesPerLine;
-        mpDrv->Connector.cBits = bitsPerPixel;
-        mpDrv->Connector.cx = width;
-        mpDrv->Connector.cy = height;
+        mpDrv->IConnector.pu8Data = (uint8_t *) address;
+        mpDrv->IConnector.cbScanline = bytesPerLine;
+        mpDrv->IConnector.cBits = bitsPerPixel;
+        mpDrv->IConnector.cx = width;
+        mpDrv->IConnector.cy = height;
     }
     else
     {
         /* black hole */
-        mpDrv->Connector.pu8Data = NULL;
-        mpDrv->Connector.cbScanline = 0;
-        mpDrv->Connector.cBits = 0;
-        mpDrv->Connector.cx = 0;
-        mpDrv->Connector.cy = 0;
+        mpDrv->IConnector.pu8Data = NULL;
+        mpDrv->IConnector.cbScanline = 0;
+        mpDrv->IConnector.cBits = 0;
+        mpDrv->IConnector.cx = 0;
+        mpDrv->IConnector.cy = 0;
     }
 }
@@ -2780,5 +2780,5 @@
                 if (!pFBInfo->pFramebuffer.isNull() && pFBInfo->u32ResizeStatus == ResizeStatus_Void)
                 {
-                    Assert(pDrv->Connector.pu8Data);
+                    Assert(pDrv->IConnector.pu8Data);
                     pDisplay->vbvaLock();
                     pDrv->pUpPort->pfnUpdateDisplay(pDrv->pUpPort);
@@ -2841,5 +2841,5 @@
                 if (!pFBInfo->pFramebuffer.isNull())
                 {
-                    Assert(pDrv->Connector.pu8Data);
+                    Assert(pDrv->IConnector.pu8Data);
                     Assert(pFBInfo->u32ResizeStatus == ResizeStatus_Void);
                     pDrv->pUpPort->pfnUpdateDisplay(pDrv->pUpPort);
@@ -3369,8 +3369,6 @@
     PPDMDRVINS pDrvIns = PDMIBASE_2_PDMDRV(pInterface);
     PDRVMAINDISPLAY pDrv = PDMINS_2_DATA(pDrvIns, PDRVMAINDISPLAY);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
-    if (RTUuidCompare2Strs(pszIID, PDMIDISPLAYCONNECTOR_IID) == 0)
-        return &pDrv->Connector;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIDISPLAYCONNECTOR, &pDrv->IConnector);
     return NULL;
 }
@@ -3423,24 +3421,24 @@
      * Init Interfaces.
      */
-    pDrvIns->IBase.pfnQueryInterface       = Display::drvQueryInterface;
-
-    pData->Connector.pfnResize             = Display::displayResizeCallback;
-    pData->Connector.pfnUpdateRect         = Display::displayUpdateCallback;
-    pData->Connector.pfnRefresh            = Display::displayRefreshCallback;
-    pData->Connector.pfnReset              = Display::displayResetCallback;
-    pData->Connector.pfnLFBModeChange      = Display::displayLFBModeChangeCallback;
-    pData->Connector.pfnProcessAdapterData = Display::displayProcessAdapterDataCallback;
-    pData->Connector.pfnProcessDisplayData = Display::displayProcessDisplayDataCallback;
+    pDrvIns->IBase.pfnQueryInterface        = Display::drvQueryInterface;
+
+    pData->IConnector.pfnResize             = Display::displayResizeCallback;
+    pData->IConnector.pfnUpdateRect         = Display::displayUpdateCallback;
+    pData->IConnector.pfnRefresh            = Display::displayRefreshCallback;
+    pData->IConnector.pfnReset              = Display::displayResetCallback;
+    pData->IConnector.pfnLFBModeChange      = Display::displayLFBModeChangeCallback;
+    pData->IConnector.pfnProcessAdapterData = Display::displayProcessAdapterDataCallback;
+    pData->IConnector.pfnProcessDisplayData = Display::displayProcessDisplayDataCallback;
 #ifdef VBOX_WITH_VIDEOHWACCEL
-    pData->Connector.pfnVHWACommandProcess = Display::displayVHWACommandProcess;
+    pData->IConnector.pfnVHWACommandProcess = Display::displayVHWACommandProcess;
 #endif
 #ifdef VBOX_WITH_HGSMI
-    pData->Connector.pfnVBVAEnable         = Display::displayVBVAEnable;
-    pData->Connector.pfnVBVADisable        = Display::displayVBVADisable;
-    pData->Connector.pfnVBVAUpdateBegin    = Display::displayVBVAUpdateBegin;
-    pData->Connector.pfnVBVAUpdateProcess  = Display::displayVBVAUpdateProcess;
-    pData->Connector.pfnVBVAUpdateEnd      = Display::displayVBVAUpdateEnd;
-    pData->Connector.pfnVBVAResize         = Display::displayVBVAResize;
-    pData->Connector.pfnVBVAMousePointerShape = Display::displayVBVAMousePointerShape;
+    pData->IConnector.pfnVBVAEnable         = Display::displayVBVAEnable;
+    pData->IConnector.pfnVBVADisable        = Display::displayVBVADisable;
+    pData->IConnector.pfnVBVAUpdateBegin    = Display::displayVBVAUpdateBegin;
+    pData->IConnector.pfnVBVAUpdateProcess  = Display::displayVBVAUpdateProcess;
+    pData->IConnector.pfnVBVAUpdateEnd      = Display::displayVBVAUpdateEnd;
+    pData->IConnector.pfnVBVAResize         = Display::displayVBVAResize;
+    pData->IConnector.pfnVBVAMousePointerShape = Display::displayVBVAMousePointerShape;
 #endif
 
Index: /trunk/src/VBox/Main/KeyboardImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/KeyboardImpl.cpp	(revision 25984)
+++ /trunk/src/VBox/Main/KeyboardImpl.cpp	(revision 25985)
@@ -48,9 +48,9 @@
     PPDMIKEYBOARDPORT           pUpPort;
     /** Our mouse connector interface. */
-    PDMIKEYBOARDCONNECTOR       Connector;
+    PDMIKEYBOARDCONNECTOR       IConnector;
 } DRVMAINKEYBOARD, *PDRVMAINKEYBOARD;
 
 /** Converts PDMIVMMDEVCONNECTOR pointer to a DRVMAINVMMDEV pointer. */
-#define PPDMIKEYBOARDCONNECTOR_2_MAINKEYBOARD(pInterface) ( (PDRVMAINKEYBOARD) ((uintptr_t)pInterface - RT_OFFSETOF(DRVMAINKEYBOARD, Connector)) )
+#define PPDMIKEYBOARDCONNECTOR_2_MAINKEYBOARD(pInterface) ( (PDRVMAINKEYBOARD) ((uintptr_t)pInterface - RT_OFFSETOF(DRVMAINKEYBOARD, IConnector)) )
 
 
@@ -225,8 +225,7 @@
     PPDMDRVINS          pDrvIns = PDMIBASE_2_PDMDRV(pInterface);
     PDRVMAINKEYBOARD    pDrv    = PDMINS_2_DATA(pDrvIns, PDRVMAINKEYBOARD);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
-    if (RTUuidCompare2Strs(pszIID, PDMIKEYBOARDCONNECTOR_IID) == 0)
-        return &pDrv->Connector;
+
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIKEYBOARDCONNECTOR, &pDrv->IConnector);
     return NULL;
 }
@@ -283,5 +282,5 @@
     pDrvIns->IBase.pfnQueryInterface        = Keyboard::drvQueryInterface;
 
-    pData->Connector.pfnLedStatusChange     = keyboardLedStatusChange;
+    pData->IConnector.pfnLedStatusChange    = keyboardLedStatusChange;
 
     /*
Index: /trunk/src/VBox/Main/MouseImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/MouseImpl.cpp	(revision 25984)
+++ /trunk/src/VBox/Main/MouseImpl.cpp	(revision 25985)
@@ -43,5 +43,5 @@
     PPDMIMOUSEPORT              pUpPort;
     /** Our mouse connector interface. */
-    PDMIMOUSECONNECTOR          Connector;
+    PDMIMOUSECONNECTOR          IConnector;
 } DRVMAINMOUSE, *PDRVMAINMOUSE;
 
@@ -360,8 +360,7 @@
     PPDMDRVINS      pDrvIns = PDMIBASE_2_PDMDRV(pInterface);
     PDRVMAINMOUSE   pDrv    = PDMINS_2_DATA(pDrvIns, PDRVMAINMOUSE);
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
-    if (RTUuidCompare2Strs(pszIID, PDMIMOUSECONNECTOR_IID) == 0)
-        return &pDrv->Connector;
+
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIMOUSECONNECTOR, &pDrv->IConnector);
     return NULL;
 }
Index: /trunk/src/VBox/Main/VMMDevInterface.cpp
===================================================================
--- /trunk/src/VBox/Main/VMMDevInterface.cpp	(revision 25984)
+++ /trunk/src/VBox/Main/VMMDevInterface.cpp	(revision 25985)
@@ -659,6 +659,5 @@
     PDRVMAINVMMDEV  pDrv    = PDMINS_2_DATA(pDrvIns, PDRVMAINVMMDEV);
 
-    if (RTUuidCompare2Strs(pszIID, PDMIBASE_IID) == 0)
-        return &pDrvIns->IBase;
+    PDMIBASE_RETURN_INTERFACE(pszIID, PDMIBASE, &pDrvIns->IBase);
     PDMIBASE_RETURN_INTERFACE(pszIID, PDMIVMMDEVCONNECTOR, &pDrv->Connector);
 #ifdef VBOX_WITH_HGCM
