Index: trunk/src/VBox/Devices/Bus/DevPCI.cpp
===================================================================
--- trunk/src/VBox/Devices/Bus/DevPCI.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Bus/DevPCI.cpp	(revision 26173)
@@ -1979,5 +1979,5 @@
  * @interface_method_impl{PDMDEVREG,pfnConstruct}
  */
-static DECLCALLBACK(int)   pciConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int)   pciConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     int rc;
@@ -1987,10 +1987,10 @@
      * Validate and read configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "IOAPIC\0" "GCEnabled\0" "R0Enabled\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "IOAPIC\0" "GCEnabled\0" "R0Enabled\0"))
         return VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES;
 
     /* query whether we got an IOAPIC */
     bool fUseIoApic;
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "IOAPIC", &fUseIoApic, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "IOAPIC", &fUseIoApic, false);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -1999,5 +1999,5 @@
     /* check if RC code is enabled. */
     bool fGCEnabled;
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "GCEnabled", &fGCEnabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "GCEnabled", &fGCEnabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -2006,5 +2006,5 @@
     /* check if R0 code is enabled. */
     bool fR0Enabled;
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "R0Enabled", &fR0Enabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "R0Enabled", &fR0Enabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -2369,5 +2369,5 @@
  * @interface_method_impl{PDMDEVREG,pfnConstruct}
  */
-static DECLCALLBACK(int)   pcibridgeConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int)   pcibridgeConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     int rc;
@@ -2376,10 +2376,10 @@
      * Validate and read configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "GCEnabled\0" "R0Enabled\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "GCEnabled\0" "R0Enabled\0"))
         return VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES;
 
     /* check if RC code is enabled. */
     bool fGCEnabled;
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "GCEnabled", &fGCEnabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "GCEnabled", &fGCEnabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -2388,5 +2388,5 @@
     /* check if R0 code is enabled. */
     bool fR0Enabled;
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "R0Enabled", &fR0Enabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "R0Enabled", &fR0Enabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
Index: trunk/src/VBox/Devices/EFI/DevEFI.cpp
===================================================================
--- trunk/src/VBox/Devices/EFI/DevEFI.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/EFI/DevEFI.cpp	(revision 26173)
@@ -710,7 +710,7 @@
  * @returns VBox status.
  * @param   pThis       The device instance data.
- * @param   pCfgHandle  Configuration node handle for the device.
- */
-static int efiLoadRom(PDEVEFI pThis, PCFGMNODE pCfgHandle)
+ * @param   pCfg        Configuration node handle for the device.
+ */
+static int efiLoadRom(PDEVEFI pThis, PCFGMNODE pCfg)
 {
     /*
@@ -791,12 +791,12 @@
  * @returns VBox status code.
  * @param   pThis       The device instance data.
- * @param   pCfgHandle  Configuration node handle for the device.
- */
-static int efiLoadThunk(PDEVEFI pThis, PCFGMNODE pCfgHandle)
+ * @param   pCfg        Configuration node handle for the device.
+ */
+static int efiLoadThunk(PDEVEFI pThis, PCFGMNODE pCfg)
 {
     uint8_t f64BitEntry = 0;
     int rc;
 
-    rc = CFGMR3QueryU8Def(pCfgHandle, "64BitEntry", &f64BitEntry, 0);
+    rc = CFGMR3QueryU8Def(pCfg, "64BitEntry", &f64BitEntry, 0);
     if (RT_FAILURE (rc))
         return PDMDEV_SET_ERROR(pThis->pDevIns, rc,
@@ -864,5 +864,5 @@
  * @interface_method_impl{PDMDEVREG,pfnConstruct}
  */
-static DECLCALLBACK(int)  efiConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int)  efiConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     PDEVEFI     pThis = PDMINS_2_DATA(pDevIns, PDEVEFI);
@@ -876,5 +876,5 @@
      * Validate and read the configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle,
+    if (!CFGMR3AreValuesValid(pCfg,
                               "EfiRom\0"
                               "RamSize\0"
@@ -911,8 +911,8 @@
 
     /* CPU count (optional). */
-    rc = CFGMR3QueryU32Def(pCfgHandle, "NumCPUs", &pThis->cCpus, 1);
+    rc = CFGMR3QueryU32Def(pCfg, "NumCPUs", &pThis->cCpus, 1);
     AssertLogRelRCReturn(rc, rc);
 
-    rc = CFGMR3QueryU8Def(pCfgHandle, "IOAPIC", &pThis->u8IOAPIC, 1);
+    rc = CFGMR3QueryU8Def(pCfg, "IOAPIC", &pThis->u8IOAPIC, 1);
     if (RT_FAILURE (rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -923,5 +923,5 @@
      */
     RTUUID  uuid;
-    rc = CFGMR3QueryBytes(pCfgHandle, "UUID", &uuid, sizeof(uuid));
+    rc = CFGMR3QueryBytes(pCfg, "UUID", &uuid, sizeof(uuid));
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -936,7 +936,7 @@
 
     /* RAM sizes */
-    rc = CFGMR3QueryU64(pCfgHandle, "RamSize", &pThis->cbRam);
+    rc = CFGMR3QueryU64(pCfg, "RamSize", &pThis->cbRam);
     AssertLogRelRCReturn(rc, rc);
-    rc = CFGMR3QueryU64(pCfgHandle, "RamHoleSize", &pThis->cbRamHole);
+    rc = CFGMR3QueryU64(pCfg, "RamHoleSize", &pThis->cbRamHole);
     AssertLogRelRCReturn(rc, rc);
     pThis->cbBelow4GB = RT_MIN(pThis->cbRam, _4G - pThis->cbRamHole);
@@ -947,5 +947,5 @@
      * Get the system EFI ROM file name.
      */
-    rc = CFGMR3QueryStringAlloc(pCfgHandle, "EfiRom", &pThis->pszEfiRomFile);
+    rc = CFGMR3QueryStringAlloc(pCfg, "EfiRom", &pThis->pszEfiRomFile);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
     {
@@ -973,5 +973,5 @@
      * Get boot args.
      */
-    rc = CFGMR3QueryString(pCfgHandle, "BootArgs",
+    rc = CFGMR3QueryString(pCfg, "BootArgs",
                            pThis->pszBootArgs, sizeof pThis->pszBootArgs);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
@@ -996,9 +996,9 @@
      * Load firmware volume and thunk ROM.
      */
-    rc = efiLoadRom(pThis, pCfgHandle);
+    rc = efiLoadRom(pThis, pCfg);
     if (RT_FAILURE(rc))
         return rc;
 
-    rc = efiLoadThunk(pThis, pCfgHandle);
+    rc = efiLoadThunk(pThis, pCfg);
     if (RT_FAILURE(rc))
         return rc;
Index: trunk/src/VBox/Devices/Graphics/DevVGA.cpp
===================================================================
--- trunk/src/VBox/Devices/Graphics/DevVGA.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Graphics/DevVGA.cpp	(revision 26173)
@@ -5845,5 +5845,5 @@
  * @interface_method_impl{PDMDEVREG,pfnConstruct}
  */
-static DECLCALLBACK(int)   vgaR3Construct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int)   vgaR3Construct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
 
@@ -5877,5 +5877,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "VRamSize\0"
+    if (!CFGMR3AreValuesValid(pCfg, "VRamSize\0"
                                           "MonitorCount\0"
                                           "GCEnabled\0"
@@ -5910,5 +5910,5 @@
      * Init state data.
      */
-    rc = CFGMR3QueryU32Def(pCfgHandle, "VRamSize", &pThis->vram_size, VGA_VRAM_DEFAULT);
+    rc = CFGMR3QueryU32Def(pCfg, "VRamSize", &pThis->vram_size, VGA_VRAM_DEFAULT);
     AssertLogRelRCReturn(rc, rc);
     if (pThis->vram_size > VGA_VRAM_MAX)
@@ -5919,11 +5919,11 @@
                                    "VRamSize is too small, %#x, max %#x", pThis->vram_size, VGA_VRAM_MIN);
 
-    rc = CFGMR3QueryU32Def(pCfgHandle, "MonitorCount", &pThis->cMonitors, 1);
+    rc = CFGMR3QueryU32Def(pCfg, "MonitorCount", &pThis->cMonitors, 1);
     AssertLogRelRCReturn(rc, rc);
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "GCEnabled", &pThis->fGCEnabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "GCEnabled", &pThis->fGCEnabled, true);
     AssertLogRelRCReturn(rc, rc);
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "R0Enabled", &pThis->fR0Enabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "R0Enabled", &pThis->fR0Enabled, true);
     AssertLogRelRCReturn(rc, rc);
     Log(("VGA: VRamSize=%#x fGCenabled=%RTbool fR0Enabled=%RTbool\n", pThis->vram_size, pThis->fGCEnabled, pThis->fR0Enabled));
@@ -6210,5 +6210,5 @@
     cb = sizeof(mode_info_list) + sizeof(ModeInfoListItem);
 
-    rc = CFGMR3QueryU32(pCfgHandle, "HeightReduction", &cyReduction);
+    rc = CFGMR3QueryU32(pCfg, "HeightReduction", &cyReduction);
     if (RT_SUCCESS(rc) && cyReduction)
         cb *= 2;                            /* Default mode list will be twice long */
@@ -6216,5 +6216,5 @@
         cyReduction = 0;
 
-    rc = CFGMR3QueryU32(pCfgHandle, "CustomVideoModes", &cCustomModes);
+    rc = CFGMR3QueryU32(pCfg, "CustomVideoModes", &cCustomModes);
     if (RT_SUCCESS(rc) && cCustomModes)
         cb += sizeof(ModeInfoListItem) * cCustomModes;
@@ -6304,5 +6304,5 @@
             /* query and decode the custom mode string. */
             RTStrPrintf(szExtraDataKey, sizeof(szExtraDataKey), "CustomVideoMode%d", i);
-            rc = CFGMR3QueryStringAlloc(pCfgHandle, szExtraDataKey, &pszExtraData);
+            rc = CFGMR3QueryStringAlloc(pCfg, szExtraDataKey, &pszExtraData);
             if (RT_SUCCESS(rc))
             {
@@ -6426,5 +6426,5 @@
     LOGOHDR LogoHdr = { LOGO_HDR_MAGIC, 0, 0, 0, 0, 0, 0 };
 
-    rc = CFGMR3QueryU8(pCfgHandle, "FadeIn", &LogoHdr.fu8FadeIn);
+    rc = CFGMR3QueryU8(pCfg, "FadeIn", &LogoHdr.fu8FadeIn);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         LogoHdr.fu8FadeIn = 1;
@@ -6433,5 +6433,5 @@
                                 N_("Configuration error: Querying \"FadeIn\" as integer failed"));
 
-    rc = CFGMR3QueryU8(pCfgHandle, "FadeOut", &LogoHdr.fu8FadeOut);
+    rc = CFGMR3QueryU8(pCfg, "FadeOut", &LogoHdr.fu8FadeOut);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         LogoHdr.fu8FadeOut = 1;
@@ -6440,5 +6440,5 @@
                                 N_("Configuration error: Querying \"FadeOut\" as integer failed"));
 
-    rc = CFGMR3QueryU16(pCfgHandle, "LogoTime", &LogoHdr.u16LogoMillies);
+    rc = CFGMR3QueryU16(pCfg, "LogoTime", &LogoHdr.u16LogoMillies);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         LogoHdr.u16LogoMillies = 0;
@@ -6451,5 +6451,5 @@
         LogoHdr.u16LogoMillies = RT_MAX(LogoHdr.u16LogoMillies, LOGO_DELAY_TIME);
 
-    rc = CFGMR3QueryU8(pCfgHandle, "ShowBootMenu", &LogoHdr.fu8ShowBootMenu);
+    rc = CFGMR3QueryU8(pCfg, "ShowBootMenu", &LogoHdr.fu8ShowBootMenu);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         LogoHdr.fu8ShowBootMenu = 0;
@@ -6461,5 +6461,5 @@
      * Get the Logo file name.
      */
-    rc = CFGMR3QueryStringAlloc(pCfgHandle, "LogoFile", &pThis->pszLogoFile);
+    rc = CFGMR3QueryStringAlloc(pCfg, "LogoFile", &pThis->pszLogoFile);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         pThis->pszLogoFile = NULL;
Index: trunk/src/VBox/Devices/Input/DevPS2.cpp
===================================================================
--- trunk/src/VBox/Devices/Input/DevPS2.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Input/DevPS2.cpp	(revision 26173)
@@ -1583,5 +1583,5 @@
  * @interface_method_impl{PDMDEVREG,pfnConstruct}
  */
-static DECLCALLBACK(int) kbdConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int) kbdConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     KBDState   *pThis = PDMINS_2_DATA(pDevIns, KBDState *);
@@ -1596,10 +1596,10 @@
      * Validate and read the configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "GCEnabled\0R0Enabled\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "GCEnabled\0R0Enabled\0"))
         return VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES;
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "GCEnabled", &fGCEnabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "GCEnabled", &fGCEnabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc, N_("Failed to query \"GCEnabled\" from the config"));
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "R0Enabled", &fR0Enabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "R0Enabled", &fR0Enabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc, N_("Failed to query \"R0Enabled\" from the config"));
Index: trunk/src/VBox/Devices/Input/DrvKeyboardQueue.cpp
===================================================================
--- trunk/src/VBox/Devices/Input/DrvKeyboardQueue.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Input/DrvKeyboardQueue.cpp	(revision 26173)
@@ -234,5 +234,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-static DECLCALLBACK(int) drvKbdQueueConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+static DECLCALLBACK(int) drvKbdQueueConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVKBDQUEUE pDrv = PDMINS_2_DATA(pDrvIns, PDRVKBDQUEUE);
@@ -243,5 +243,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "QueueSize\0Interval\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "QueueSize\0Interval\0"))
         return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
 
@@ -288,5 +288,5 @@
      */
     uint32_t cMilliesInterval = 0;
-    rc = CFGMR3QueryU32(pCfgHandle, "Interval", &cMilliesInterval);
+    rc = CFGMR3QueryU32(pCfg, "Interval", &cMilliesInterval);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         cMilliesInterval = 0;
@@ -298,5 +298,5 @@
 
     uint32_t cItems = 0;
-    rc = CFGMR3QueryU32(pCfgHandle, "QueueSize", &cItems);
+    rc = CFGMR3QueryU32(pCfg, "QueueSize", &cItems);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         cItems = 128;
Index: trunk/src/VBox/Devices/Input/DrvMouseQueue.cpp
===================================================================
--- trunk/src/VBox/Devices/Input/DrvMouseQueue.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Input/DrvMouseQueue.cpp	(revision 26173)
@@ -223,5 +223,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-static DECLCALLBACK(int) drvMouseQueueConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+static DECLCALLBACK(int) drvMouseQueueConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVMOUSEQUEUE pDrv = PDMINS_2_DATA(pDrvIns, PDRVMOUSEQUEUE);
@@ -232,5 +232,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "QueueSize\0Interval\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "QueueSize\0Interval\0"))
         return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
 
@@ -275,5 +275,5 @@
      */
     uint32_t cMilliesInterval = 0;
-    rc = CFGMR3QueryU32(pCfgHandle, "Interval", &cMilliesInterval);
+    rc = CFGMR3QueryU32(pCfg, "Interval", &cMilliesInterval);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         cMilliesInterval = 0;
@@ -285,5 +285,5 @@
 
     uint32_t cItems = 0;
-    rc = CFGMR3QueryU32(pCfgHandle, "QueueSize", &cItems);
+    rc = CFGMR3QueryU32(pCfg, "QueueSize", &cItems);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         cItems = 128;
Index: trunk/src/VBox/Devices/Network/DevE1000.cpp
===================================================================
--- trunk/src/VBox/Devices/Network/DevE1000.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Network/DevE1000.cpp	(revision 26173)
@@ -5025,5 +5025,5 @@
  * @interface_method_impl{PDMDEVREG,pfnConstruct}
  */
-static DECLCALLBACK(int) e1kConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int) e1kConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     E1KSTATE* pState = PDMINS_2_DATA(pDevIns, E1KSTATE*);
@@ -5040,5 +5040,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "MAC\0" "CableConnected\0" "AdapterType\0" "LineSpeed\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "MAC\0" "CableConnected\0" "AdapterType\0" "LineSpeed\0"))
         return PDMDEV_SET_ERROR(pDevIns, VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES,
                                 N_("Invalid configuration for E1000 device"));
@@ -5047,14 +5047,14 @@
 
     /* Get config params */
-    rc = CFGMR3QueryBytes(pCfgHandle, "MAC", pState->macConfigured.au8,
+    rc = CFGMR3QueryBytes(pCfg, "MAC", pState->macConfigured.au8,
                           sizeof(pState->macConfigured.au8));
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed to get MAC address"));
-    rc = CFGMR3QueryBool(pCfgHandle, "CableConnected", &pState->fCableConnected);
+    rc = CFGMR3QueryBool(pCfg, "CableConnected", &pState->fCableConnected);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed to get the value of 'CableConnected'"));
-    rc = CFGMR3QueryU32(pCfgHandle, "AdapterType", (uint32_t*)&pState->eChip);
+    rc = CFGMR3QueryU32(pCfg, "AdapterType", (uint32_t*)&pState->eChip);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
Index: trunk/src/VBox/Devices/Network/DevINIP.cpp
===================================================================
--- trunk/src/VBox/Devices/Network/DevINIP.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Network/DevINIP.cpp	(revision 26173)
@@ -446,10 +446,10 @@
  */
 static DECLCALLBACK(int) devINIPConstruct(PPDMDEVINS pDevIns, int iInstance,
-                                          PCFGMNODE pCfgHandle)
+                                          PCFGMNODE pCfg)
 {
     PDEVINTNETIP pThis = PDMINS_2_DATA(pDevIns, PDEVINTNETIP);
     int rc = VINF_SUCCESS;
-    LogFlow(("%s: pDevIns=%p iInstance=%d pCfgHandle=%p\n", __FUNCTION__,
-             pDevIns, iInstance, pCfgHandle));
+    LogFlow(("%s: pDevIns=%p iInstance=%d pCfg=%p\n", __FUNCTION__,
+             pDevIns, iInstance, pCfg));
 
     Assert(iInstance == 0);
@@ -459,5 +459,5 @@
      * Validate the config.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "MAC\0IP\0Netmask\0Gateway\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "MAC\0IP\0Netmask\0Gateway\0"))
     {
         rc = PDMDEV_SET_ERROR(pDevIns, VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES,
@@ -483,9 +483,9 @@
      * Get the configuration settings.
      */
-    rc = CFGMR3QueryBytes(pCfgHandle, "MAC", &pThis->MAC, sizeof(pThis->MAC));
+    rc = CFGMR3QueryBytes(pCfg, "MAC", &pThis->MAC, sizeof(pThis->MAC));
     if (rc == VERR_CFGM_NOT_BYTES)
     {
         char szMAC[64];
-        rc = CFGMR3QueryString(pCfgHandle, "MAC", &szMAC[0], sizeof(szMAC));
+        rc = CFGMR3QueryString(pCfg, "MAC", &szMAC[0], sizeof(szMAC));
         if (RT_SUCCESS(rc))
         {
@@ -520,5 +520,5 @@
         goto out;
     }
-    rc = CFGMR3QueryStringAlloc(pCfgHandle, "IP", &pThis->pszIP);
+    rc = CFGMR3QueryStringAlloc(pCfg, "IP", &pThis->pszIP);
     if (RT_FAILURE(rc))
     {
@@ -527,5 +527,5 @@
         goto out;
     }
-    rc = CFGMR3QueryStringAlloc(pCfgHandle, "Netmask", &pThis->pszNetmask);
+    rc = CFGMR3QueryStringAlloc(pCfg, "Netmask", &pThis->pszNetmask);
     if (RT_FAILURE(rc))
     {
@@ -534,5 +534,5 @@
         goto out;
     }
-    rc = CFGMR3QueryStringAlloc(pCfgHandle, "Gateway", &pThis->pszGateway);
+    rc = CFGMR3QueryStringAlloc(pCfg, "Gateway", &pThis->pszGateway);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         rc = VINF_SUCCESS;
Index: trunk/src/VBox/Devices/Network/DevPCNet.cpp
===================================================================
--- trunk/src/VBox/Devices/Network/DevPCNet.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Network/DevPCNet.cpp	(revision 26173)
@@ -4933,5 +4933,5 @@
  * @interface_method_impl{PDMDEVREG,pfnConstruct}
  */
-static DECLCALLBACK(int) pcnetConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int) pcnetConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     PCNetState     *pThis = PDMINS_2_DATA(pDevIns, PCNetState *);
@@ -4957,5 +4957,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "MAC\0" "CableConnected\0" "Am79C973\0" "LineSpeed\0" "GCEnabled\0" "R0Enabled\0" "PrivIfEnabled\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "MAC\0" "CableConnected\0" "Am79C973\0" "LineSpeed\0" "GCEnabled\0" "R0Enabled\0" "PrivIfEnabled\0"))
         return PDMDEV_SET_ERROR(pDevIns, VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES,
                                 N_("Invalid configuration for pcnet device"));
@@ -4964,19 +4964,19 @@
      * Read the configuration.
      */
-    rc = CFGMR3QueryBytes(pCfgHandle, "MAC", &pThis->MacConfigured, sizeof(pThis->MacConfigured));
+    rc = CFGMR3QueryBytes(pCfg, "MAC", &pThis->MacConfigured, sizeof(pThis->MacConfigured));
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed to get the \"MAC\" value"));
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "CableConnected", &pThis->fLinkUp, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "CableConnected", &pThis->fLinkUp, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed to get the \"CableConnected\" value"));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "Am79C973", &pThis->fAm79C973, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "Am79C973", &pThis->fAm79C973, false);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed to get the \"Am79C973\" value"));
 
-    rc = CFGMR3QueryU32Def(pCfgHandle, "LineSpeed", &pThis->u32LinkSpeed, 1000000); /* 1GBit/s (in kbps units)*/
+    rc = CFGMR3QueryU32Def(pCfg, "LineSpeed", &pThis->u32LinkSpeed, 1000000); /* 1GBit/s (in kbps units)*/
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -4984,10 +4984,10 @@
 
 #ifdef PCNET_GC_ENABLED
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "GCEnabled", &pThis->fGCEnabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "GCEnabled", &pThis->fGCEnabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed to get the \"GCEnabled\" value"));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "R0Enabled", &pThis->fR0Enabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "R0Enabled", &pThis->fR0Enabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -5066,5 +5066,5 @@
 
     bool fPrivIfEnabled;
-    rc = CFGMR3QueryBool(pCfgHandle, "PrivIfEnabled", &fPrivIfEnabled);
+    rc = CFGMR3QueryBool(pCfg, "PrivIfEnabled", &fPrivIfEnabled);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         fPrivIfEnabled = true;
Index: trunk/src/VBox/Devices/Network/DevVirtioNet.cpp
===================================================================
--- trunk/src/VBox/Devices/Network/DevVirtioNet.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Network/DevVirtioNet.cpp	(revision 26173)
@@ -1621,5 +1621,5 @@
  * @interface_method_impl{PDMDEVREG,pfnConstruct}
  */
-static DECLCALLBACK(int) vnetConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int) vnetConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     VNETSTATE* pState = PDMINS_2_DATA(pDevIns, VNETSTATE*);
@@ -1643,15 +1643,15 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "MAC\0" "CableConnected\0" "LineSpeed\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "MAC\0" "CableConnected\0" "LineSpeed\0"))
                     return PDMDEV_SET_ERROR(pDevIns, VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES,
                                             N_("Invalid configuration for VirtioNet device"));
 
     /* Get config params */
-    rc = CFGMR3QueryBytes(pCfgHandle, "MAC", pState->macConfigured.au8,
+    rc = CFGMR3QueryBytes(pCfg, "MAC", pState->macConfigured.au8,
                           sizeof(pState->macConfigured));
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed to get MAC address"));
-    rc = CFGMR3QueryBool(pCfgHandle, "CableConnected", &pState->fCableConnected);
+    rc = CFGMR3QueryBool(pCfg, "CableConnected", &pState->fCableConnected);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
Index: trunk/src/VBox/Devices/Network/DrvIntNet.cpp
===================================================================
--- trunk/src/VBox/Devices/Network/DrvIntNet.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Network/DrvIntNet.cpp	(revision 26173)
@@ -808,5 +808,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-static DECLCALLBACK(int) drvR3IntNetConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+static DECLCALLBACK(int) drvR3IntNetConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVINTNET pThis = PDMINS_2_DATA(pDrvIns, PDRVINTNET);
@@ -835,5 +835,5 @@
      * Validate the config.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle,
+    if (!CFGMR3AreValuesValid(pCfg,
                               "Network\0"
                               "Trunk\0"
@@ -884,5 +884,5 @@
      * The name of the internal network to connect to.
      */
-    int rc = CFGMR3QueryString(pCfgHandle, "Network", OpenReq.szNetwork, sizeof(OpenReq.szNetwork));
+    int rc = CFGMR3QueryString(pCfg, "Network", OpenReq.szNetwork, sizeof(OpenReq.szNetwork));
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc,
@@ -894,5 +894,5 @@
      */
     uint32_t u32TrunkType;
-    rc = CFGMR3QueryU32(pCfgHandle, "TrunkType", &u32TrunkType);
+    rc = CFGMR3QueryU32(pCfg, "TrunkType", &u32TrunkType);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         u32TrunkType = kIntNetTrunkType_None;
@@ -905,5 +905,5 @@
      * The name of the trunk connection.
      */
-    rc = CFGMR3QueryString(pCfgHandle, "Trunk", OpenReq.szTrunk, sizeof(OpenReq.szTrunk));
+    rc = CFGMR3QueryString(pCfg, "Trunk", OpenReq.szTrunk, sizeof(OpenReq.szTrunk));
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         OpenReq.szTrunk[0] = '\0';
@@ -917,5 +917,5 @@
      */
     bool fRestrictAccess;
-    rc = CFGMR3QueryBool(pCfgHandle, "RestrictAccess", &fRestrictAccess);
+    rc = CFGMR3QueryBool(pCfg, "RestrictAccess", &fRestrictAccess);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         fRestrictAccess = true;
@@ -928,5 +928,5 @@
      * When set all request for operating any interface or trunk in promiscuous
      * mode will be ignored. */
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "IgnoreAllPromisc", &f, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "IgnoreAllPromisc", &f, false);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc,
@@ -939,5 +939,5 @@
      * mode will be ignored.  This differs from IgnoreAllPromisc in that clients
      * won't get VERR_INTNET_INCOMPATIBLE_FLAGS. */
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "QuietlyIgnoreAllPromisc", &f, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "QuietlyIgnoreAllPromisc", &f, false);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc,
@@ -949,5 +949,5 @@
      * When set all request for operating any non-trunk interface in promiscuous
      * mode will be ignored. */
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "IgnoreClientPromisc", &f, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "IgnoreClientPromisc", &f, false);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc,
@@ -960,5 +960,5 @@
      * will be ignored.  This differs from IgnoreClientPromisc in that clients won't
      * get VERR_INTNET_INCOMPATIBLE_FLAGS. */
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "QuietlyIgnoreClientPromisc", &f, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "QuietlyIgnoreClientPromisc", &f, false);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc,
@@ -970,5 +970,5 @@
      * When set all request for operating the trunk-wire connection in promiscuous
      * mode will be ignored. */
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "IgnoreTrunkWirePromisc", &f, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "IgnoreTrunkWirePromisc", &f, false);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc,
@@ -981,5 +981,5 @@
      * will be ignored.  This differs from IgnoreTrunkWirePromisc in that clients
      * won't get VERR_INTNET_INCOMPATIBLE_FLAGS. */
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "QuietlyIgnoreTrunkWirePromisc", &f, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "QuietlyIgnoreTrunkWirePromisc", &f, false);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc,
@@ -991,5 +991,5 @@
      * When set all request for operating the trunk-host connection in promiscuous
      * mode will be ignored. */
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "IgnoreTrunkHostPromisc", &f, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "IgnoreTrunkHostPromisc", &f, false);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc,
@@ -1002,5 +1002,5 @@
      * will be ignored.  This differs from IgnoreTrunkHostPromisc in that clients
      * won't get VERR_INTNET_INCOMPATIBLE_FLAGS. */
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "QuietlyIgnoreTrunkHostPromisc", &f, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "QuietlyIgnoreTrunkHostPromisc", &f, false);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc,
@@ -1018,5 +1018,5 @@
      */
     bool fSharedMacOnWire;
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "SharedMacOnWire", &fSharedMacOnWire, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "SharedMacOnWire", &fSharedMacOnWire, false);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc,
@@ -1028,5 +1028,5 @@
      * The size of the receive buffer.
      */
-    rc = CFGMR3QueryU32(pCfgHandle, "ReceiveBufferSize", &OpenReq.cbRecv);
+    rc = CFGMR3QueryU32(pCfg, "ReceiveBufferSize", &OpenReq.cbRecv);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         OpenReq.cbRecv = 218 * _1K ;
@@ -1043,5 +1043,5 @@
      * side of it and the code will get very upset about it all.
      */
-    rc = CFGMR3QueryU32(pCfgHandle, "SendBufferSize", &OpenReq.cbSend);
+    rc = CFGMR3QueryU32(pCfg, "SendBufferSize", &OpenReq.cbSend);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         OpenReq.cbSend = 36*_1K;
@@ -1059,5 +1059,5 @@
      * a service such as LWIP/iSCSI it shouldn't suspend immediately like for a NIC.
      */
-    rc = CFGMR3QueryBool(pCfgHandle, "IsService", &pThis->fActivateEarlyDeactivateLate);
+    rc = CFGMR3QueryBool(pCfg, "IsService", &pThis->fActivateEarlyDeactivateLate);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         pThis->fActivateEarlyDeactivateLate = false;
Index: trunk/src/VBox/Devices/Network/DrvNAT.cpp
===================================================================
--- trunk/src/VBox/Devices/Network/DrvNAT.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Network/DrvNAT.cpp	(revision 26173)
@@ -863,7 +863,7 @@
  *
  * @returns VBox status code.
- * @param   pCfgHandle      The drivers configuration handle.
- */
-static int drvNATConstructRedir(unsigned iInstance, PDRVNAT pThis, PCFGMNODE pCfgHandle, RTIPV4ADDR Network)
+ * @param   pCfg            The configuration handle.
+ */
+static int drvNATConstructRedir(unsigned iInstance, PDRVNAT pThis, PCFGMNODE pCfg, RTIPV4ADDR Network)
 {
      RTMAC Mac;
@@ -872,5 +872,5 @@
      * Enumerate redirections.
      */
-    for (PCFGMNODE pNode = CFGMR3GetFirstChild(pCfgHandle); pNode; pNode = CFGMR3GetNextChild(pNode))
+    for (PCFGMNODE pNode = CFGMR3GetFirstChild(pCfg); pNode; pNode = CFGMR3GetNextChild(pNode))
     {
         /*
@@ -966,5 +966,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-static DECLCALLBACK(int) drvNATConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+static DECLCALLBACK(int) drvNATConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVNAT pThis = PDMINS_2_DATA(pDrvIns, PDRVNAT);
@@ -975,5 +975,5 @@
      * Validate the config.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle,
+    if (!CFGMR3AreValuesValid(pCfg,
                               "PassDomain\0TFTPPrefix\0BootFile\0Network"
                               "\0NextServer\0DNSProxy\0BindIP\0UseHostResolver\0"
@@ -1006,17 +1006,17 @@
     int rc;
     bool fPassDomain = true;
-    GET_BOOL(rc, pThis, pCfgHandle, "PassDomain", fPassDomain);
-
-    GET_STRING_ALLOC(rc, pThis, pCfgHandle, "TFTPPrefix", pThis->pszTFTPPrefix);
-    GET_STRING_ALLOC(rc, pThis, pCfgHandle, "BootFile", pThis->pszBootFile);
-    GET_STRING_ALLOC(rc, pThis, pCfgHandle, "NextServer", pThis->pszNextServer);
+    GET_BOOL(rc, pThis, pCfg, "PassDomain", fPassDomain);
+
+    GET_STRING_ALLOC(rc, pThis, pCfg, "TFTPPrefix", pThis->pszTFTPPrefix);
+    GET_STRING_ALLOC(rc, pThis, pCfg, "BootFile", pThis->pszBootFile);
+    GET_STRING_ALLOC(rc, pThis, pCfg, "NextServer", pThis->pszNextServer);
 
     int fDNSProxy = 0;
-    GET_S32(rc, pThis, pCfgHandle, "DNSProxy", fDNSProxy);
+    GET_S32(rc, pThis, pCfg, "DNSProxy", fDNSProxy);
     int fUseHostResolver = 0;
-    GET_S32(rc, pThis, pCfgHandle, "UseHostResolver", fUseHostResolver);
+    GET_S32(rc, pThis, pCfg, "UseHostResolver", fUseHostResolver);
 #ifdef VBOX_WITH_SLIRP_BSD_MBUF
     int MTU = 1500;
-    GET_S32(rc, pThis, pCfgHandle, "SlirpMTU", MTU);
+    GET_S32(rc, pThis, pCfg, "SlirpMTU", MTU);
 #endif
 
@@ -1037,5 +1037,5 @@
     /* Generate a network address for this network card. */
     char szNetwork[32]; /* xxx.xxx.xxx.xxx/yy */
-    GET_STRING(rc, pThis, pCfgHandle, "Network", szNetwork[0], sizeof(szNetwork));
+    GET_STRING(rc, pThis, pCfg, "Network", szNetwork[0], sizeof(szNetwork));
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         RTStrPrintf(szNetwork, sizeof(szNetwork), "10.0.%d.0/24", pDrvIns->iInstance + 2);
@@ -1068,5 +1068,5 @@
 #endif
         char *pszBindIP = NULL;
-        GET_STRING_ALLOC(rc, pThis, pCfgHandle, "BindIP", pszBindIP);
+        GET_STRING_ALLOC(rc, pThis, pCfg, "BindIP", pszBindIP);
         rc = slirp_set_binding_address(pThis->pNATState, pszBindIP);
         if (rc != 0)
@@ -1079,5 +1079,5 @@
             {                                                   \
                 int len = 0;                                    \
-                rc = CFGMR3QueryS32(pCfgHandle, name, &len);    \
+                rc = CFGMR3QueryS32(pCfg, name, &len);    \
                 if (RT_SUCCESS(rc))                             \
                     setter(pThis->pNATState, len);              \
@@ -1096,5 +1096,5 @@
 #endif
 
-        int rc2 = drvNATConstructRedir(pDrvIns->iInstance, pThis, pCfgHandle, Network);
+        int rc2 = drvNATConstructRedir(pDrvIns->iInstance, pThis, pCfg, Network);
         if (RT_SUCCESS(rc2))
         {
Index: trunk/src/VBox/Devices/Network/DrvNetSniffer.cpp
===================================================================
--- trunk/src/VBox/Devices/Network/DrvNetSniffer.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Network/DrvNetSniffer.cpp	(revision 26173)
@@ -350,5 +350,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-static DECLCALLBACK(int) drvNetSnifferConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+static DECLCALLBACK(int) drvNetSnifferConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVNETSNIFFER pThis = PDMINS_2_DATA(pDrvIns, PDRVNETSNIFFER);
@@ -359,8 +359,8 @@
      * Validate the config.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "File\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "File\0"))
         return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
 
-    if (CFGMR3GetFirstChild(pCfgHandle))
+    if (CFGMR3GetFirstChild(pCfg))
         LogRel(("NetSniffer: Found child config entries -- are you trying to redirect ports?\n"));
 
@@ -389,5 +389,5 @@
      * Get the filename.
      */
-    int rc = CFGMR3QueryString(pCfgHandle, "File", pThis->szFilename, sizeof(pThis->szFilename));
+    int rc = CFGMR3QueryString(pCfg, "File", pThis->szFilename, sizeof(pThis->szFilename));
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
     {
Index: trunk/src/VBox/Devices/Network/DrvTAP.cpp
===================================================================
--- trunk/src/VBox/Devices/Network/DrvTAP.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Network/DrvTAP.cpp	(revision 26173)
@@ -879,5 +879,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-static DECLCALLBACK(int) drvTAPConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+static DECLCALLBACK(int) drvTAPConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVTAP pThis = PDMINS_2_DATA(pDrvIns, PDRVTAP);
@@ -911,5 +911,5 @@
      * Validate the config.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "Device\0InitProg\0TermProg\0FileHandle\0TAPSetupApplication\0TAPTerminateApplication\0MAC"))
+    if (!CFGMR3AreValuesValid(pCfg, "Device\0InitProg\0TermProg\0FileHandle\0TAPSetupApplication\0TAPTerminateApplication\0MAC"))
         return PDMDRV_SET_ERROR(pDrvIns, VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES, "");
 
@@ -934,5 +934,5 @@
     int rc;
 #if defined(RT_OS_SOLARIS)   /** @todo Other platforms' TAP code should be moved here from ConsoleImpl & VBoxBFE. */
-    rc = CFGMR3QueryStringAlloc(pCfgHandle, "TAPSetupApplication", &pThis->pszSetupApplication);
+    rc = CFGMR3QueryStringAlloc(pCfg, "TAPSetupApplication", &pThis->pszSetupApplication);
     if (RT_SUCCESS(rc))
     {
@@ -944,5 +944,5 @@
         return PDMDRV_SET_ERROR(pDrvIns, rc, N_("Configuration error: failed to query \"TAPTerminateApplication\""));
 
-    rc = CFGMR3QueryStringAlloc(pCfgHandle, "TAPTerminateApplication", &pThis->pszTerminateApplication);
+    rc = CFGMR3QueryStringAlloc(pCfg, "TAPTerminateApplication", &pThis->pszTerminateApplication);
     if (RT_SUCCESS(rc))
     {
@@ -955,10 +955,10 @@
 
 # ifdef VBOX_WITH_CROSSBOW
-    rc = CFGMR3QueryBytes(pCfgHandle, "MAC", &pThis->MacAddress, sizeof(pThis->MacAddress));
+    rc = CFGMR3QueryBytes(pCfg, "MAC", &pThis->MacAddress, sizeof(pThis->MacAddress));
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc, N_("Configuration error: Failed to query \"MAC\""));
 # endif
 
-    rc = CFGMR3QueryStringAlloc(pCfgHandle, "Device", &pThis->pszDeviceName);
+    rc = CFGMR3QueryStringAlloc(pCfg, "Device", &pThis->pszDeviceName);
     if (RT_FAILURE(rc))
         pThis->fStatic = false;
@@ -992,5 +992,5 @@
 
     int32_t iFile;
-    rc = CFGMR3QueryS32(pCfgHandle, "FileHandle", &iFile);
+    rc = CFGMR3QueryS32(pCfg, "FileHandle", &iFile);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc,
Index: trunk/src/VBox/Devices/PC/DevACPI.cpp
===================================================================
--- trunk/src/VBox/Devices/PC/DevACPI.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/PC/DevACPI.cpp	(revision 26173)
@@ -2228,5 +2228,5 @@
  * @interface_method_impl{PDMDEVREG,pfnConstruct}
  */
-static DECLCALLBACK(int) acpiConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int) acpiConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     ACPIState *s   = PDMINS_2_DATA(pDevIns, ACPIState *);
@@ -2235,5 +2235,5 @@
 
     /* Validate and read the configuration. */
-    if (!CFGMR3AreValuesValid(pCfgHandle,
+    if (!CFGMR3AreValuesValid(pCfg,
                               "RamSize\0"
                               "RamHoleSize\0"
@@ -2256,10 +2256,10 @@
 
     /* query whether we are supposed to present an IOAPIC */
-    int rc = CFGMR3QueryU8Def(pCfgHandle, "IOAPIC", &s->u8UseIOApic, 1);
+    int rc = CFGMR3QueryU8Def(pCfg, "IOAPIC", &s->u8UseIOApic, 1);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed to read \"IOAPIC\""));
 
-    rc = CFGMR3QueryU16Def(pCfgHandle, "NumCPUs", &s->cCpus, 1);
+    rc = CFGMR3QueryU16Def(pCfg, "NumCPUs", &s->cCpus, 1);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -2267,5 +2267,5 @@
 
     /* query whether we are supposed to present an FDC controller */
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "FdcEnabled", &s->fUseFdc, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "FdcEnabled", &s->fUseFdc, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -2273,10 +2273,10 @@
 
     /* query whether we are supposed to present HPET */
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "HpetEnabled", &s->fUseHpet, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "HpetEnabled", &s->fUseHpet, false);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed to read \"HpetEnabled\""));
     /* query whether we are supposed to present SMC */
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "SmcEnabled", &s->fUseSmc, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "SmcEnabled", &s->fUseSmc, false);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -2284,5 +2284,5 @@
 
     /* query whether we are supposed to present RTC object */
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "ShowRtc", &s->fShowRtc, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "ShowRtc", &s->fShowRtc, false);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -2290,5 +2290,5 @@
 
     /* query whether we are supposed to present CPU objects */
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "ShowCpu", &s->fShowCpu, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "ShowCpu", &s->fShowCpu, false);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -2296,10 +2296,10 @@
 
     /* query whether we are allow CPU hot plugging */
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "CpuHotPlug", &s->fCpuHotPlug, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "CpuHotPlug", &s->fCpuHotPlug, false);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed to read \"CpuHotPlug\""));
 
-    rc = CFGMR3QueryBool(pCfgHandle, "GCEnabled", &s->fGCEnabled);
+    rc = CFGMR3QueryBool(pCfg, "GCEnabled", &s->fGCEnabled);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         s->fGCEnabled = true;
@@ -2308,5 +2308,5 @@
                                 N_("Configuration error: Failed to read \"GCEnabled\""));
 
-    rc = CFGMR3QueryBool(pCfgHandle, "R0Enabled", &s->fR0Enabled);
+    rc = CFGMR3QueryBool(pCfg, "R0Enabled", &s->fR0Enabled);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         s->fR0Enabled = true;
Index: trunk/src/VBox/Devices/PC/DevAPIC.cpp
===================================================================
--- trunk/src/VBox/Devices/PC/DevAPIC.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/PC/DevAPIC.cpp	(revision 26173)
@@ -2738,5 +2738,5 @@
  * @copydoc FNPDMDEVCONSTRUCT
  */
-static DECLCALLBACK(int) apicConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int) apicConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     PDMAPICREG      ApicReg;
@@ -2757,5 +2757,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle,
+    if (!CFGMR3AreValuesValid(pCfg,
                               "IOAPIC\0"
                               "GCEnabled\0"
@@ -2764,20 +2764,20 @@
         return VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES;
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "IOAPIC", &fIoApic, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "IOAPIC", &fIoApic, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed to read \"IOAPIC\""));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "GCEnabled", &fGCEnabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "GCEnabled", &fGCEnabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed to query boolean value \"GCEnabled\""));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "R0Enabled", &fR0Enabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "R0Enabled", &fR0Enabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed to query boolean value \"R0Enabled\""));
 
-    rc = CFGMR3QueryU32Def(pCfgHandle, "NumCPUs", &cCpus, 1);
+    rc = CFGMR3QueryU32Def(pCfg, "NumCPUs", &cCpus, 1);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -3207,5 +3207,5 @@
  * @copydoc FNPDMDEVCONSTRUCT
  */
-static DECLCALLBACK(int) ioapicConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int) ioapicConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     IOAPICState *s = PDMINS_2_DATA(pDevIns, IOAPICState *);
@@ -3220,13 +3220,13 @@
      * Validate and read the configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "GCEnabled\0" "R0Enabled\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "GCEnabled\0" "R0Enabled\0"))
         return VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES;
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "GCEnabled", &fGCEnabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "GCEnabled", &fGCEnabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed to query boolean value \"GCEnabled\""));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "R0Enabled", &fR0Enabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "R0Enabled", &fR0Enabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
Index: trunk/src/VBox/Devices/PC/DevDMA.cpp
===================================================================
--- trunk/src/VBox/Devices/PC/DevDMA.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/PC/DevDMA.cpp	(revision 26173)
@@ -879,5 +879,5 @@
 static DECLCALLBACK(int) dmaConstruct(PPDMDEVINS pDevIns,
                                       int iInstance,
-                                      PCFGMNODE pCfgHandle)
+                                      PCFGMNODE pCfg)
 {
     DMAState *s = PDMINS_2_DATA (pDevIns, DMAState *);
@@ -891,9 +891,9 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "\0")) /* "HighPageEnable\0")) */
+    if (!CFGMR3AreValuesValid(pCfg, "\0")) /* "HighPageEnable\0")) */
         return VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES;
 
 #if 0
-    rc = CFGMR3QueryBool (pCfgHandle, "HighPageEnable", &high_page_enable);
+    rc = CFGMR3QueryBool (pCfg, "HighPageEnable", &high_page_enable);
     if (RT_FAILURE (rc)) {
         return rc;
Index: trunk/src/VBox/Devices/PC/DevFwCommon.cpp
===================================================================
--- trunk/src/VBox/Devices/PC/DevFwCommon.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/PC/DevFwCommon.cpp	(revision 26173)
@@ -314,8 +314,8 @@
  * @param   pUuid               Pointer to the UUID to use if the DmiUuid
  *                              configuration string isn't present.
- * @param   pCfgHandle          The handle to our config node.
+ * @param   pCfg                The handle to our config node.
  * @param   fPutSmbiosHeaders   Plant SMBIOS headers if true.
  */
-int FwCommonPlantDMITable(PPDMDEVINS pDevIns, uint8_t *pTable, unsigned cbMax, PCRTUUID pUuid, PCFGMNODE pCfgHandle, bool fPutSmbiosHeaders)
+int FwCommonPlantDMITable(PPDMDEVINS pDevIns, uint8_t *pTable, unsigned cbMax, PCRTUUID pUuid, PCFGMNODE pCfg, bool fPutSmbiosHeaders)
 {
 #define CHECKSIZE(cbWant) \
@@ -340,5 +340,5 @@
         else \
         { \
-            rc = CFGMR3QueryStringDef(pCfgHandle, name, szBuf, sizeof(szBuf), default_value); \
+            rc = CFGMR3QueryStringDef(pCfg, name, szBuf, sizeof(szBuf), default_value); \
             if (RT_FAILURE(rc)) \
             { \
@@ -377,5 +377,5 @@
         else \
         { \
-            rc = CFGMR3QueryS32Def(pCfgHandle, # name, & variable, s_iDef ## name); \
+            rc = CFGMR3QueryS32Def(pCfg, # name, & variable, s_iDef ## name); \
             if (RT_FAILURE(rc)) \
             { \
@@ -421,5 +421,5 @@
         else
         {
-            rc = CFGMR3QueryString(pCfgHandle, "DmiSystemUuid", szDmiSystemUuid, sizeof(szDmiSystemUuid));
+            rc = CFGMR3QueryString(pCfg, "DmiSystemUuid", szDmiSystemUuid, sizeof(szDmiSystemUuid));
             if (rc == VERR_CFGM_VALUE_NOT_FOUND)
                 pszDmiSystemUuid = NULL;
Index: trunk/src/VBox/Devices/PC/DevFwCommon.h
===================================================================
--- trunk/src/VBox/Devices/PC/DevFwCommon.h	(revision 26172)
+++ trunk/src/VBox/Devices/PC/DevFwCommon.h	(revision 26173)
@@ -32,5 +32,5 @@
 
 /* Plant DMI table */
-int FwCommonPlantDMITable(PPDMDEVINS pDevIns, uint8_t *pTable, unsigned cbMax, PCRTUUID pUuid, PCFGMNODE pCfgHandle, bool fPutSmbiosHeaders);
+int FwCommonPlantDMITable(PPDMDEVINS pDevIns, uint8_t *pTable, unsigned cbMax, PCRTUUID pUuid, PCFGMNODE pCfg, bool fPutSmbiosHeaders);
 
 /* Plant MPS table */
Index: trunk/src/VBox/Devices/PC/DevPIC.cpp
===================================================================
--- trunk/src/VBox/Devices/PC/DevPIC.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/PC/DevPIC.cpp	(revision 26173)
@@ -899,5 +899,5 @@
  * @copydoc FNPDMDEVCONSTRUCT
  */
-static DECLCALLBACK(int)  picConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int)  picConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     PDEVPIC         pThis = PDMINS_2_DATA(pDevIns, PDEVPIC);
@@ -911,13 +911,13 @@
      * Validate and read configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "GCEnabled\0" "R0Enabled\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "GCEnabled\0" "R0Enabled\0"))
         return VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES;
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "GCEnabled", &fGCEnabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "GCEnabled", &fGCEnabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: failed to read GCEnabled as boolean"));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "R0Enabled", &fR0Enabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "R0Enabled", &fR0Enabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
Index: trunk/src/VBox/Devices/PC/DevPcArch.c
===================================================================
--- trunk/src/VBox/Devices/PC/DevPcArch.c	(revision 26172)
+++ trunk/src/VBox/Devices/PC/DevPcArch.c	(revision 26173)
@@ -217,5 +217,5 @@
  * @interface_method_impl{PDMDEVREG,pfnConstruct}
  */
-static DECLCALLBACK(int)  pcarchConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int)  pcarchConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     PDEVPCARCH  pThis = PDMINS_2_DATA(pDevIns, PDEVPCARCH);
@@ -226,5 +226,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "\0"))
         return VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES;
 
Index: trunk/src/VBox/Devices/PC/DevPcBios.cpp
===================================================================
--- trunk/src/VBox/Devices/PC/DevPcBios.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/PC/DevPcBios.cpp	(revision 26173)
@@ -834,12 +834,12 @@
  *
  * @returns VBox status code.
- * @param   pCfgHandle      Configuration handle.
+ * @param   pCfg            Configuration handle.
  * @param   pszParam        The name of the value to read.
  * @param   penmBoot        Where to store the boot method.
  */
-static int pcbiosBootFromCfg(PPDMDEVINS pDevIns, PCFGMNODE pCfgHandle, const char *pszParam, DEVPCBIOSBOOT *penmBoot)
+static int pcbiosBootFromCfg(PPDMDEVINS pDevIns, PCFGMNODE pCfg, const char *pszParam, DEVPCBIOSBOOT *penmBoot)
 {
     char *psz;
-    int rc = CFGMR3QueryStringAlloc(pCfgHandle, pszParam, &psz);
+    int rc = CFGMR3QueryStringAlloc(pCfg, pszParam, &psz);
     if (RT_FAILURE(rc))
         return PDMDevHlpVMSetError(pDevIns, rc, RT_SRC_POS,
@@ -870,5 +870,5 @@
  * @interface_method_impl{PDMDEVREG,pfnConstruct}
  */
-static DECLCALLBACK(int)  pcbiosConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int)  pcbiosConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     unsigned    i;
@@ -883,5 +883,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle,
+    if (!CFGMR3AreValuesValid(pCfg,
                               "BootDevice0\0"
                               "BootDevice1\0"
@@ -932,15 +932,15 @@
      * Init the data.
      */
-    rc = CFGMR3QueryU64(pCfgHandle, "RamSize", &pThis->cbRam);
+    rc = CFGMR3QueryU64(pCfg, "RamSize", &pThis->cbRam);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Querying \"RamSize\" as integer failed"));
 
-    rc = CFGMR3QueryU32Def(pCfgHandle, "RamHoleSize", &pThis->cbRamHole, MM_RAM_HOLE_SIZE_DEFAULT);
+    rc = CFGMR3QueryU32Def(pCfg, "RamHoleSize", &pThis->cbRamHole, MM_RAM_HOLE_SIZE_DEFAULT);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Querying \"RamHoleSize\" as integer failed"));
 
-    rc = CFGMR3QueryU16Def(pCfgHandle, "NumCPUs", &pThis->cCpus, 1);
+    rc = CFGMR3QueryU16Def(pCfg, "NumCPUs", &pThis->cCpus, 1);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -949,5 +949,5 @@
     LogRel(("[SMP] BIOS with %u CPUs\n", pThis->cCpus));
 
-    rc = CFGMR3QueryU8Def(pCfgHandle, "IOAPIC", &pThis->u8IOAPIC, 1);
+    rc = CFGMR3QueryU8Def(pCfg, "IOAPIC", &pThis->u8IOAPIC, 1);
     if (RT_FAILURE (rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -958,20 +958,20 @@
     for (i = 0; i < RT_ELEMENTS(pThis->aenmBootDevice); i++)
     {
-        rc = pcbiosBootFromCfg(pDevIns, pCfgHandle, s_apszBootDevices[i], &pThis->aenmBootDevice[i]);
+        rc = pcbiosBootFromCfg(pDevIns, pCfg, s_apszBootDevices[i], &pThis->aenmBootDevice[i]);
         if (RT_FAILURE(rc))
             return rc;
     }
 
-    rc = CFGMR3QueryStringAlloc(pCfgHandle, "HardDiskDevice", &pThis->pszHDDevice);
+    rc = CFGMR3QueryStringAlloc(pCfg, "HardDiskDevice", &pThis->pszHDDevice);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Querying \"HardDiskDevice\" as a string failed"));
 
-    rc = CFGMR3QueryStringAlloc(pCfgHandle, "FloppyDevice", &pThis->pszFDDevice);
+    rc = CFGMR3QueryStringAlloc(pCfg, "FloppyDevice", &pThis->pszFDDevice);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Querying \"FloppyDevice\" as a string failed"));
 
-    rc = CFGMR3QueryStringAlloc(pCfgHandle, "SataHardDiskDevice", &pThis->pszSataDevice);
+    rc = CFGMR3QueryStringAlloc(pCfg, "SataHardDiskDevice", &pThis->pszSataDevice);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         pThis->pszSataDevice = NULL;
@@ -987,5 +987,5 @@
         for (i = 0; i < RT_ELEMENTS(pThis->iSataHDLUN); i++)
         {
-            rc = CFGMR3QueryU32(pCfgHandle, s_apszSataDisks[i], &pThis->iSataHDLUN[i]);
+            rc = CFGMR3QueryU32(pCfg, s_apszSataDisks[i], &pThis->iSataHDLUN[i]);
             if (rc == VERR_CFGM_VALUE_NOT_FOUND)
                 pThis->iSataHDLUN[i] = i;
@@ -1011,5 +1011,5 @@
      */
     RTUUID  uuid;
-    rc = CFGMR3QueryBytes(pCfgHandle, "UUID", &uuid, sizeof(uuid));
+    rc = CFGMR3QueryBytes(pCfg, "UUID", &uuid, sizeof(uuid));
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -1021,5 +1021,5 @@
     uuid.Gen.u16TimeMid = RT_H2BE_U16(uuid.Gen.u16TimeMid);
     uuid.Gen.u16TimeHiAndVersion = RT_H2BE_U16(uuid.Gen.u16TimeHiAndVersion);
-    rc = FwCommonPlantDMITable(pDevIns, pThis->au8DMIPage, VBOX_DMI_TABLE_SIZE, &uuid, pCfgHandle, false /*fPutSmbiosHeaders*/);
+    rc = FwCommonPlantDMITable(pDevIns, pThis->au8DMIPage, VBOX_DMI_TABLE_SIZE, &uuid, pCfg, false /*fPutSmbiosHeaders*/);
     if (RT_FAILURE(rc))
         return rc;
@@ -1035,5 +1035,5 @@
      * Read the PXE debug logging option.
      */
-    rc = CFGMR3QueryU8Def(pCfgHandle, "PXEDebug", &pThis->u8PXEDebug, false);
+    rc = CFGMR3QueryU8Def(pCfg, "PXEDebug", &pThis->u8PXEDebug, false);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -1043,5 +1043,5 @@
      * Get the system BIOS ROM file name.
      */
-    rc = CFGMR3QueryStringAlloc(pCfgHandle, "BiosRom", &pThis->pszPcBiosFile);
+    rc = CFGMR3QueryStringAlloc(pCfg, "BiosRom", &pThis->pszPcBiosFile);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
     {
@@ -1177,5 +1177,5 @@
      * Get the LAN boot ROM file name.
      */
-    rc = CFGMR3QueryStringAlloc(pCfgHandle, "LanBootRom", &pThis->pszLanBootFile);
+    rc = CFGMR3QueryStringAlloc(pCfg, "LanBootRom", &pThis->pszLanBootFile);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
     {
@@ -1291,5 +1291,5 @@
     }
 
-    rc = CFGMR3QueryU8Def(pCfgHandle, "DelayBoot", &pThis->uBootDelay, 0);
+    rc = CFGMR3QueryU8Def(pCfg, "DelayBoot", &pThis->uBootDelay, 0);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
Index: trunk/src/VBox/Devices/PC/DevPit-i8254.cpp
===================================================================
--- trunk/src/VBox/Devices/PC/DevPit-i8254.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/PC/DevPit-i8254.cpp	(revision 26173)
@@ -969,5 +969,5 @@
  * @interface_method_impl{PDMDEVREG,pfnConstruct}
  */
-static DECLCALLBACK(int)  pitConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int)  pitConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     PITState   *pThis = PDMINS_2_DATA(pDevIns, PITState *);
@@ -984,5 +984,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "Irq\0" "Base\0" "SpeakerEnabled\0" "GCEnabled\0" "R0Enabled\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "Irq\0" "Base\0" "SpeakerEnabled\0" "GCEnabled\0" "R0Enabled\0"))
         return VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES;
 
@@ -990,25 +990,25 @@
      * Init the data.
      */
-    rc = CFGMR3QueryU8Def(pCfgHandle, "Irq", &u8Irq, 0);
+    rc = CFGMR3QueryU8Def(pCfg, "Irq", &u8Irq, 0);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Querying \"Irq\" as a uint8_t failed"));
 
-    rc = CFGMR3QueryU16Def(pCfgHandle, "Base", &u16Base, 0x40);
+    rc = CFGMR3QueryU16Def(pCfg, "Base", &u16Base, 0x40);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Querying \"Base\" as a uint16_t failed"));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "SpeakerEnabled", &fSpeaker, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "SpeakerEnabled", &fSpeaker, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Querying \"SpeakerEnabled\" as a bool failed"));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "GCEnabled", &fGCEnabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "GCEnabled", &fGCEnabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Querying \"GCEnabled\" as a bool failed"));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "R0Enabled", &fR0Enabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "R0Enabled", &fR0Enabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
Index: trunk/src/VBox/Devices/PC/DevRTC.cpp
===================================================================
--- trunk/src/VBox/Devices/PC/DevRTC.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/PC/DevRTC.cpp	(revision 26173)
@@ -850,5 +850,5 @@
  * @interface_method_impl{PDMDEVREG,pfnConstruct}
  */
-static DECLCALLBACK(int)  rtcConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int)  rtcConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     RTCState   *pThis = PDMINS_2_DATA(pDevIns, RTCState *);
@@ -859,5 +859,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle,
+    if (!CFGMR3AreValuesValid(pCfg,
                               "Irq\0"
                               "Base\0"
@@ -871,5 +871,5 @@
      */
     uint8_t u8Irq;
-    rc = CFGMR3QueryU8Def(pCfgHandle, "Irq", &u8Irq, 8);
+    rc = CFGMR3QueryU8Def(pCfg, "Irq", &u8Irq, 8);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -877,10 +877,10 @@
     pThis->irq = u8Irq;
 
-    rc = CFGMR3QueryPortDef(pCfgHandle, "Base", &pThis->IOPortBase, 0x70);
+    rc = CFGMR3QueryPortDef(pCfg, "Base", &pThis->IOPortBase, 0x70);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Querying \"Base\" as a RTIOPORT failed"));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "UseUTC", &pThis->fUTC, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "UseUTC", &pThis->fUTC, false);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -888,5 +888,5 @@
 
     bool fGCEnabled;
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "GCEnabled", &fGCEnabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "GCEnabled", &fGCEnabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -894,5 +894,5 @@
 
     bool fR0Enabled;
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "R0Enabled", &fR0Enabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "R0Enabled", &fR0Enabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
Index: trunk/src/VBox/Devices/PC/DrvACPI.cpp
===================================================================
--- trunk/src/VBox/Devices/PC/DrvACPI.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/PC/DrvACPI.cpp	(revision 26173)
@@ -720,5 +720,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-static DECLCALLBACK(int) drvACPIConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+static DECLCALLBACK(int) drvACPIConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVACPI pThis = PDMINS_2_DATA(pDrvIns, PDRVACPI);
@@ -738,5 +738,5 @@
      * Validate the config.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "\0"))
         return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
 
Index: trunk/src/VBox/Devices/PC/DrvAcpiCpu.cpp
===================================================================
--- trunk/src/VBox/Devices/PC/DrvAcpiCpu.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/PC/DrvAcpiCpu.cpp	(revision 26173)
@@ -63,5 +63,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-static DECLCALLBACK(int) drvACPICpuConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+static DECLCALLBACK(int) drvACPICpuConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDMDRV_CHECK_VERSIONS_RETURN(pDrvIns);
@@ -76,5 +76,5 @@
      * Validate the config.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "\0"))
         return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
 
Index: trunk/src/VBox/Devices/Parallel/DevParallel.cpp
===================================================================
--- trunk/src/VBox/Devices/Parallel/DevParallel.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Parallel/DevParallel.cpp	(revision 26173)
@@ -687,5 +687,5 @@
 static DECLCALLBACK(int) parallelConstruct(PPDMDEVINS pDevIns,
                                            int iInstance,
-                                           PCFGMNODE pCfgHandle)
+                                           PCFGMNODE pCfg)
 {
     int            rc;
@@ -718,14 +718,14 @@
      * Validate and read the configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "IRQ\0" "IOBase\0" "GCEnabled\0" "R0Enabled\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "IRQ\0" "IOBase\0" "GCEnabled\0" "R0Enabled\0"))
         return PDMDEV_SET_ERROR(pDevIns, VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES,
                                 N_("Configuration error: Unknown config key"));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "GCEnabled", &pThis->fGCEnabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "GCEnabled", &pThis->fGCEnabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed to get the \"GCEnabled\" value"));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "R0Enabled", &pThis->fR0Enabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "R0Enabled", &pThis->fR0Enabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -733,5 +733,5 @@
 
     uint8_t irq_lvl;
-    rc = CFGMR3QueryU8Def(pCfgHandle, "IRQ", &irq_lvl, 7);
+    rc = CFGMR3QueryU8Def(pCfg, "IRQ", &irq_lvl, 7);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -739,5 +739,5 @@
 
     uint16_t io_base;
-    rc = CFGMR3QueryU16Def(pCfgHandle, "IOBase", &io_base, 0x378);
+    rc = CFGMR3QueryU16Def(pCfg, "IOBase", &io_base, 0x378);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
Index: trunk/src/VBox/Devices/Parallel/DrvHostParallel.cpp
===================================================================
--- trunk/src/VBox/Devices/Parallel/DrvHostParallel.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Parallel/DrvHostParallel.cpp	(revision 26173)
@@ -289,5 +289,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-static DECLCALLBACK(int) drvHostParallelConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+static DECLCALLBACK(int) drvHostParallelConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVHOSTPARALLEL pThis = PDMINS_2_DATA(pDrvIns, PDRVHOSTPARALLEL);
@@ -298,5 +298,5 @@
      * Validate the config.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "DevicePath\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "DevicePath\0"))
         return PDMDRV_SET_ERROR(pDrvIns, VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES,
                                 N_("Unknown host parallel configuration option, only supports DevicePath"));
@@ -320,5 +320,5 @@
      */
     /* Device */
-    int rc = CFGMR3QueryStringAlloc(pCfgHandle, "DevicePath", &pThis->pszDevicePath);
+    int rc = CFGMR3QueryStringAlloc(pCfg, "DevicePath", &pThis->pszDevicePath);
     if (RT_FAILURE(rc))
     {
Index: trunk/src/VBox/Devices/Samples/VBoxSampleDevice.cpp
===================================================================
--- trunk/src/VBox/Devices/Samples/VBoxSampleDevice.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Samples/VBoxSampleDevice.cpp	(revision 26173)
@@ -64,5 +64,5 @@
 
 
-static DECLCALLBACK(int) devSampleConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int) devSampleConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     /*
@@ -81,5 +81,5 @@
      * Validate and read the configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle,
+    if (!CFGMR3AreValuesValid(pCfg,
                               "Whatever1\0"
                               "Whatever2\0"))
Index: trunk/src/VBox/Devices/Serial/DevSerial.cpp
===================================================================
--- trunk/src/VBox/Devices/Serial/DevSerial.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Serial/DevSerial.cpp	(revision 26173)
@@ -770,5 +770,5 @@
 static DECLCALLBACK(int) serialConstruct(PPDMDEVINS pDevIns,
                                          int iInstance,
-                                         PCFGMNODE pCfgHandle)
+                                         PCFGMNODE pCfg)
 {
     int            rc;
@@ -818,5 +818,5 @@
      * Validate and read the configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "IRQ\0" "IOBase\0" "GCEnabled\0" "R0Enabled\0" "YieldOnLSRRead\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "IRQ\0" "IOBase\0" "GCEnabled\0" "R0Enabled\0" "YieldOnLSRRead\0"))
     {
         AssertMsgFailed(("serialConstruct Invalid configuration values\n"));
@@ -824,20 +824,20 @@
     }
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "GCEnabled", &pThis->fGCEnabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "GCEnabled", &pThis->fGCEnabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed to get the \"GCEnabled\" value"));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "R0Enabled", &pThis->fR0Enabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "R0Enabled", &pThis->fR0Enabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed to get the \"R0Enabled\" value"));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "YieldOnLSRRead", &pThis->fYieldOnLSRRead, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "YieldOnLSRRead", &pThis->fYieldOnLSRRead, false);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed to get the \"YieldOnLSRRead\" value"));
 
-    rc = CFGMR3QueryU8(pCfgHandle, "IRQ", &irq_lvl);
+    rc = CFGMR3QueryU8(pCfg, "IRQ", &irq_lvl);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
     {
@@ -854,5 +854,5 @@
                                 N_("Configuration error: Failed to get the \"IRQ\" value"));
 
-    rc = CFGMR3QueryU16(pCfgHandle, "IOBase", &io_base);
+    rc = CFGMR3QueryU16(pCfg, "IOBase", &io_base);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
     {
Index: trunk/src/VBox/Devices/Serial/DrvChar.cpp
===================================================================
--- trunk/src/VBox/Devices/Serial/DrvChar.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Serial/DrvChar.cpp	(revision 26173)
@@ -341,5 +341,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-static DECLCALLBACK(int) drvCharConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+static DECLCALLBACK(int) drvCharConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVCHAR pThis = PDMINS_2_DATA(pDrvIns, PDRVCHAR);
Index: trunk/src/VBox/Devices/Serial/DrvHostSerial.cpp
===================================================================
--- trunk/src/VBox/Devices/Serial/DrvHostSerial.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Serial/DrvHostSerial.cpp	(revision 26173)
@@ -1269,5 +1269,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-static DECLCALLBACK(int) drvHostSerialConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+static DECLCALLBACK(int) drvHostSerialConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVHOSTSERIAL pThis = PDMINS_2_DATA(pDrvIns, PDRVHOSTSERIAL);
@@ -1300,5 +1300,5 @@
      */
     /* Device */
-    int rc = CFGMR3QueryStringAlloc(pCfgHandle, "DevicePath", &pThis->pszDevicePath);
+    int rc = CFGMR3QueryStringAlloc(pCfg, "DevicePath", &pThis->pszDevicePath);
     if (RT_FAILURE(rc))
     {
Index: trunk/src/VBox/Devices/Serial/DrvNamedPipe.cpp
===================================================================
--- trunk/src/VBox/Devices/Serial/DrvNamedPipe.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Serial/DrvNamedPipe.cpp	(revision 26173)
@@ -466,5 +466,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-static DECLCALLBACK(int) drvNamedPipeConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+static DECLCALLBACK(int) drvNamedPipeConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     int rc;
@@ -496,5 +496,5 @@
      * Read the configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "Location\0IsServer\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "Location\0IsServer\0"))
     {
         rc = VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
@@ -502,5 +502,5 @@
     }
 
-    rc = CFGMR3QueryStringAlloc(pCfgHandle, "Location", &pszLocation);
+    rc = CFGMR3QueryStringAlloc(pCfg, "Location", &pszLocation);
     if (RT_FAILURE(rc))
     {
@@ -511,5 +511,5 @@
 
     bool fIsServer;
-    rc = CFGMR3QueryBool(pCfgHandle, "IsServer", &fIsServer);
+    rc = CFGMR3QueryBool(pCfg, "IsServer", &fIsServer);
     if (RT_FAILURE(rc))
     {
Index: trunk/src/VBox/Devices/Serial/DrvRawFile.cpp
===================================================================
--- trunk/src/VBox/Devices/Serial/DrvRawFile.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Serial/DrvRawFile.cpp	(revision 26173)
@@ -163,5 +163,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-static DECLCALLBACK(int) drvRawFileConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+static DECLCALLBACK(int) drvRawFileConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVRAWFILE pThis = PDMINS_2_DATA(pDrvIns, PDRVRAWFILE);
@@ -182,8 +182,8 @@
      * Read the configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "Location\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "Location\0"))
         AssertFailedReturn(VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES);
 
-    int rc = CFGMR3QueryStringAlloc(pCfgHandle, "Location", &pThis->pszLocation);
+    int rc = CFGMR3QueryStringAlloc(pCfg, "Location", &pThis->pszLocation);
     if (RT_FAILURE(rc))
         AssertMsgFailedReturn(("Configuration error: query \"Location\" resulted in %Rrc.\n", rc), rc);
Index: trunk/src/VBox/Devices/Storage/DevAHCI.cpp
===================================================================
--- trunk/src/VBox/Devices/Storage/DevAHCI.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Storage/DevAHCI.cpp	(revision 26173)
@@ -6461,5 +6461,5 @@
  * @interface_method_impl{PDMDEVREG,pfnConstruct}
  */
-static DECLCALLBACK(int) ahciR3Construct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int) ahciR3Construct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     PAHCI      pThis = PDMINS_2_DATA(pDevIns, PAHCI);
@@ -6475,5 +6475,5 @@
      * Validate and read configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "GCEnabled\0"
+    if (!CFGMR3AreValuesValid(pCfg, "GCEnabled\0"
                                           "R0Enabled\0"
                                           "PrimaryMaster\0"
@@ -6488,5 +6488,5 @@
                                 N_("AHCI configuration error: unknown option specified"));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "GCEnabled", &fGCEnabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "GCEnabled", &fGCEnabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -6494,5 +6494,5 @@
     Log(("%s: fGCEnabled=%d\n", __FUNCTION__, fGCEnabled));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "R0Enabled", &fR0Enabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "R0Enabled", &fR0Enabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -6500,5 +6500,5 @@
     Log(("%s: fR0Enabled=%d\n", __FUNCTION__, fR0Enabled));
 
-    rc = CFGMR3QueryU32Def(pCfgHandle, "PortCount", &pThis->cPortsImpl, AHCI_MAX_NR_PORTS_IMPL);
+    rc = CFGMR3QueryU32Def(pCfg, "PortCount", &pThis->cPortsImpl, AHCI_MAX_NR_PORTS_IMPL);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -6514,13 +6514,13 @@
                                    pThis->cPortsImpl);
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "UseAsyncInterfaceIfAvailable", &pThis->fUseAsyncInterfaceIfAvailable, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "UseAsyncInterfaceIfAvailable", &pThis->fUseAsyncInterfaceIfAvailable, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("AHCI configuration error: failed to read UseAsyncInterfaceIfAvailable as boolean"));
-    rc = CFGMR3QueryU32Def(pCfgHandle, "HighIOThreshold", &pThis->cHighIOThreshold, ~0);
+    rc = CFGMR3QueryU32Def(pCfg, "HighIOThreshold", &pThis->cHighIOThreshold, ~0);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("AHCI configuration error: failed to read HighIOThreshold as integer"));
-    rc = CFGMR3QueryU32Def(pCfgHandle, "MillisToSleep", &pThis->cMillisToSleep, 0);
+    rc = CFGMR3QueryU32Def(pCfg, "MillisToSleep", &pThis->cMillisToSleep, 0);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -6732,5 +6732,5 @@
 
             /* Get user config if present using defaults otherwise. */
-            PCFGMNODE pCfgNode = CFGMR3GetChild(pCfgHandle, szName);
+            PCFGMNODE pCfgNode = CFGMR3GetChild(pCfg, szName);
             rc = CFGMR3QueryStringDef(pCfgNode, "SerialNumber", pAhciPort->szSerialNumber, sizeof(pAhciPort->szSerialNumber),
                                       szSerial);
@@ -6886,10 +6886,10 @@
         };
 
-        rc = CFGMR3QueryU32Def(pCfgHandle, s_apszDescs[i][0], &iPortMaster, 2 * i);
+        rc = CFGMR3QueryU32Def(pCfg, s_apszDescs[i][0], &iPortMaster, 2 * i);
         if (RT_FAILURE(rc))
             return PDMDevHlpVMSetError(pDevIns, rc, RT_SRC_POS,
                                        N_("AHCI configuration error: failed to read %s as U32"), s_apszDescs[i][0]);
 
-        rc = CFGMR3QueryU32Def(pCfgHandle, s_apszDescs[i][1], &iPortSlave, 2 * i + 1);
+        rc = CFGMR3QueryU32Def(pCfg, s_apszDescs[i][1], &iPortSlave, 2 * i + 1);
         if (RT_FAILURE(rc))
             return PDMDevHlpVMSetError(pDevIns, rc, RT_SRC_POS,
Index: trunk/src/VBox/Devices/Storage/DevATA.cpp
===================================================================
--- trunk/src/VBox/Devices/Storage/DevATA.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Storage/DevATA.cpp	(revision 26173)
@@ -6475,12 +6475,12 @@
  * @returns VBox status code.
  * @param   pDevIns     The device instance data.
- * @param   pCfgHandle  Configuration handle.
+ * @param   pCfg        Configuration handle.
  * @param   penmChipset Where to store the chipset type.
  */
-static int ataControllerFromCfg(PPDMDEVINS pDevIns, PCFGMNODE pCfgHandle, CHIPSET *penmChipset)
+static int ataControllerFromCfg(PPDMDEVINS pDevIns, PCFGMNODE pCfg, CHIPSET *penmChipset)
 {
     char szType[20];
 
-    int rc = CFGMR3QueryStringDef(pCfgHandle, "Type", &szType[0], sizeof(szType), "PIIX4");
+    int rc = CFGMR3QueryStringDef(pCfg, "Type", &szType[0], sizeof(szType), "PIIX4");
     if (RT_FAILURE(rc))
         return PDMDevHlpVMSetError(pDevIns, rc, RT_SRC_POS,
@@ -6506,5 +6506,5 @@
  * @interface_method_impl{PDMDEVREG,pfnConstruct}
  */
-static DECLCALLBACK(int)   ataR3Construct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int)   ataR3Construct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     PCIATAState    *pThis = PDMINS_2_DATA(pDevIns, PCIATAState *);
@@ -6532,5 +6532,5 @@
      * Validate and read configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle,
+    if (!CFGMR3AreValuesValid(pCfg,
                               "GCEnabled\0"
                               "R0Enabled\0"
@@ -6541,5 +6541,5 @@
                                 N_("PIIX3 configuration error: unknown option specified"));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "GCEnabled", &fGCEnabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "GCEnabled", &fGCEnabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -6547,5 +6547,5 @@
     Log(("%s: fGCEnabled=%d\n", __FUNCTION__, fGCEnabled));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "R0Enabled", &fR0Enabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "R0Enabled", &fR0Enabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -6553,5 +6553,5 @@
     Log(("%s: fR0Enabled=%d\n", __FUNCTION__, fR0Enabled));
 
-    rc = CFGMR3QueryU32Def(pCfgHandle, "IRQDelay", &DelayIRQMillies, 0);
+    rc = CFGMR3QueryU32Def(pCfg, "IRQDelay", &DelayIRQMillies, 0);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -6561,5 +6561,5 @@
 
     CHIPSET enmChipset = CHIPSET_PIIX3;
-    rc = ataControllerFromCfg(pDevIns, pCfgHandle, &enmChipset);
+    rc = ataControllerFromCfg(pDevIns, pCfg, &enmChipset);
     if (RT_FAILURE(rc))
         return rc;
@@ -6862,5 +6862,5 @@
 
                     /* Get user config if present using defaults otherwise. */
-                    PCFGMNODE pCfgNode = CFGMR3GetChild(pCfgHandle, s_apszCFGMKeys[i][j]);
+                    PCFGMNODE pCfgNode = CFGMR3GetChild(pCfg, s_apszCFGMKeys[i][j]);
                     rc = CFGMR3QueryStringDef(pCfgNode, "SerialNumber", pIf->szSerialNumber, sizeof(pIf->szSerialNumber),
                                               szSerial);
Index: trunk/src/VBox/Devices/Storage/DevBusLogic.cpp
===================================================================
--- trunk/src/VBox/Devices/Storage/DevBusLogic.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Storage/DevBusLogic.cpp	(revision 26173)
@@ -2520,5 +2520,5 @@
  * @interface_method_impl{PDMDEVREG,pfnConstruct}
  */
-static DECLCALLBACK(int) buslogicConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int) buslogicConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     PBUSLOGIC  pThis = PDMINS_2_DATA(pDevIns, PBUSLOGIC);
@@ -2529,5 +2529,5 @@
      * Validate and read configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle,
+    if (!CFGMR3AreValuesValid(pCfg,
                               "GCEnabled\0"
                               "R0Enabled\0"))
@@ -2535,5 +2535,5 @@
                                 N_("BusLogic configuration error: unknown option specified"));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "GCEnabled", &pThis->fGCEnabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "GCEnabled", &pThis->fGCEnabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -2541,5 +2541,5 @@
     Log(("%s: fGCEnabled=%d\n", __FUNCTION__, pThis->fGCEnabled));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "R0Enabled", &pThis->fR0Enabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "R0Enabled", &pThis->fR0Enabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
Index: trunk/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp
===================================================================
--- trunk/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Storage/DevLsiLogicSCSI.cpp	(revision 26173)
@@ -4375,5 +4375,5 @@
  * @copydoc FNPDMDEVCONSTRUCT
  */
-static DECLCALLBACK(int) lsilogicConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int) lsilogicConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     PLSILOGICSCSI pThis = PDMINS_2_DATA(pDevIns, PLSILOGICSCSI);
@@ -4386,5 +4386,5 @@
      * Validate and read configuration.
      */
-    rc = CFGMR3AreValuesValid(pCfgHandle, "GCEnabled\0"
+    rc = CFGMR3AreValuesValid(pCfg, "GCEnabled\0"
                                           "R0Enabled\0"
                                           "ReplyQueueDepth\0"
@@ -4395,5 +4395,5 @@
         return PDMDEV_SET_ERROR(pDevIns, VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES,
                                 N_("LsiLogic configuration error: unknown option specified"));
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "GCEnabled", &pThis->fGCEnabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "GCEnabled", &pThis->fGCEnabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -4401,5 +4401,5 @@
     Log(("%s: fGCEnabled=%d\n", __FUNCTION__, pThis->fGCEnabled));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "R0Enabled", &pThis->fR0Enabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "R0Enabled", &pThis->fR0Enabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
@@ -4407,5 +4407,5 @@
     Log(("%s: fR0Enabled=%d\n", __FUNCTION__, pThis->fR0Enabled));
 
-    rc = CFGMR3QueryU32Def(pCfgHandle, "ReplyQueueDepth",
+    rc = CFGMR3QueryU32Def(pCfg, "ReplyQueueDepth",
                            &pThis->cReplyQueueEntries,
                            LSILOGICSCSI_REPLY_QUEUE_DEPTH_DEFAULT);
@@ -4415,5 +4415,5 @@
     Log(("%s: ReplyQueueDepth=%u\n", __FUNCTION__, pThis->cReplyQueueEntries));
 
-    rc = CFGMR3QueryU32Def(pCfgHandle, "RequestQueueDepth",
+    rc = CFGMR3QueryU32Def(pCfg, "RequestQueueDepth",
                            &pThis->cRequestQueueEntries,
                            LSILOGICSCSI_REQUEST_QUEUE_DEPTH_DEFAULT);
@@ -4423,5 +4423,5 @@
     Log(("%s: RequestQueueDepth=%u\n", __FUNCTION__, pThis->cRequestQueueEntries));
 
-    rc = CFGMR3QueryStringAllocDef(pCfgHandle, "ControllerType",
+    rc = CFGMR3QueryStringAllocDef(pCfg, "ControllerType",
                                    &pszCtrlType, LSILOGICSCSI_PCI_SPI_CTRLNAME);
     if (RT_FAILURE(rc))
@@ -4437,5 +4437,5 @@
                                 N_("LsiLogic configuration error: failed to determine controller type from string"));
 
-    rc = CFGMR3QueryU8(pCfgHandle, "NumPorts",
+    rc = CFGMR3QueryU8(pCfg, "NumPorts",
                        &pThis->cPorts);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
Index: trunk/src/VBox/Devices/Storage/DrvBlock.cpp
===================================================================
--- trunk/src/VBox/Devices/Storage/DrvBlock.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Storage/DrvBlock.cpp	(revision 26173)
@@ -697,5 +697,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-static DECLCALLBACK(int) drvblockConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+static DECLCALLBACK(int) drvblockConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVBLOCK pThis = PDMINS_2_DATA(pDrvIns, PDRVBLOCK);
@@ -707,7 +707,7 @@
      */
 #if defined(VBOX_PERIODIC_FLUSH) || defined(VBOX_IGNORE_FLUSH)
-    if (!CFGMR3AreValuesValid(pCfgHandle, "Type\0Locked\0BIOSVisible\0AttachFailError\0Cylinders\0Heads\0Sectors\0Mountable\0FlushInterval\0IgnoreFlush\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "Type\0Locked\0BIOSVisible\0AttachFailError\0Cylinders\0Heads\0Sectors\0Mountable\0FlushInterval\0IgnoreFlush\0"))
 #else /* !(VBOX_PERIODIC_FLUSH || VBOX_IGNORE_FLUSH) */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "Type\0Locked\0BIOSVisible\0AttachFailError\0Cylinders\0Heads\0Sectors\0Mountable\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "Type\0Locked\0BIOSVisible\0AttachFailError\0Cylinders\0Heads\0Sectors\0Mountable\0"))
 #endif /* !(VBOX_PERIODIC_FLUSH || VBOX_IGNORE_FLUSH) */
         return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
@@ -770,5 +770,5 @@
     /* type */
     char *psz;
-    int rc = CFGMR3QueryStringAlloc(pCfgHandle, "Type", &psz);
+    int rc = CFGMR3QueryStringAlloc(pCfg, "Type", &psz);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, VERR_PDM_BLOCK_NO_TYPE, N_("Failed to obtain the type"));
@@ -800,15 +800,15 @@
 
     /* Mountable */
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "Mountable", &pThis->fMountable, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "Mountable", &pThis->fMountable, false);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc, N_("Failed to query \"Mountable\" from the config"));
 
     /* Locked */
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "Locked", &pThis->fLocked, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "Locked", &pThis->fLocked, false);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc, N_("Failed to query \"Locked\" from the config"));
 
     /* BIOS visible */
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "BIOSVisible", &pThis->fBiosVisible, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "BIOSVisible", &pThis->fBiosVisible, true);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc, N_("Failed to query \"BIOSVisible\" from the config"));
@@ -817,20 +817,20 @@
 
     /* Cylinders */
-    rc = CFGMR3QueryU32Def(pCfgHandle, "Cylinders", &pThis->LCHSGeometry.cCylinders, 0);
+    rc = CFGMR3QueryU32Def(pCfg, "Cylinders", &pThis->LCHSGeometry.cCylinders, 0);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc, N_("Failed to query \"Cylinders\" from the config"));
 
     /* Heads */
-    rc = CFGMR3QueryU32Def(pCfgHandle, "Heads", &pThis->LCHSGeometry.cHeads, 0);
+    rc = CFGMR3QueryU32Def(pCfg, "Heads", &pThis->LCHSGeometry.cHeads, 0);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc, N_("Failed to query \"Heads\" from the config"));
 
     /* Sectors */
-    rc = CFGMR3QueryU32Def(pCfgHandle, "Sectors", &pThis->LCHSGeometry.cSectors, 0);
+    rc = CFGMR3QueryU32Def(pCfg, "Sectors", &pThis->LCHSGeometry.cSectors, 0);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc, N_("Failed to query \"Sectors\" from the config"));
 
     /* Uuid */
-    rc = CFGMR3QueryStringAlloc(pCfgHandle, "Uuid", &psz);
+    rc = CFGMR3QueryStringAlloc(pCfg, "Uuid", &psz);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         RTUuidClear(&pThis->Uuid);
@@ -851,5 +851,5 @@
 
 #ifdef VBOX_PERIODIC_FLUSH
-    rc = CFGMR3QueryU32Def(pCfgHandle, "FlushInterval", &pThis->cbFlushInterval, 0);
+    rc = CFGMR3QueryU32Def(pCfg, "FlushInterval", &pThis->cbFlushInterval, 0);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc, N_("Failed to query \"FlushInterval\" from the config"));
@@ -857,5 +857,5 @@
 
 #ifdef VBOX_IGNORE_FLUSH
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "IgnoreFlush", &pThis->fIgnoreFlush, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "IgnoreFlush", &pThis->fIgnoreFlush, true);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc, N_("Failed to query \"IgnoreFlush\" from the config"));
Index: trunk/src/VBox/Devices/Storage/DrvHostBase.cpp
===================================================================
--- trunk/src/VBox/Devices/Storage/DrvHostBase.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Storage/DrvHostBase.cpp	(revision 26173)
@@ -1844,8 +1844,8 @@
  * @returns VBox status code.
  * @param   pDrvIns         Driver instance.
- * @param   pCfgHandle      Configuration handle.
+ * @param   pCfg            Configuration handle.
  * @param   enmType         Device type.
  */
-int DRVHostBaseInitData(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, PDMBLOCKTYPE enmType)
+int DRVHostBaseInitData(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, PDMBLOCKTYPE enmType)
 {
     PDRVHOSTBASE pThis = PDMINS_2_DATA(pDrvIns, PDRVHOSTBASE);
@@ -1919,5 +1919,5 @@
      */
     /* Device */
-    int rc = CFGMR3QueryStringAlloc(pCfgHandle, "Path", &pThis->pszDevice);
+    int rc = CFGMR3QueryStringAlloc(pCfg, "Path", &pThis->pszDevice);
     if (RT_FAILURE(rc))
     {
@@ -1928,5 +1928,5 @@
     /* Mountable */
     uint32_t u32;
-    rc = CFGMR3QueryU32(pCfgHandle, "Interval", &u32);
+    rc = CFGMR3QueryU32(pCfg, "Interval", &u32);
     if (RT_SUCCESS(rc))
         pThis->cMilliesPoller = u32;
@@ -1940,5 +1940,5 @@
 
     /* ReadOnly */
-    rc = CFGMR3QueryBool(pCfgHandle, "ReadOnly", &pThis->fReadOnlyConfig);
+    rc = CFGMR3QueryBool(pCfg, "ReadOnly", &pThis->fReadOnlyConfig);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         pThis->fReadOnlyConfig = enmType == PDMBLOCKTYPE_DVD || enmType == PDMBLOCKTYPE_CDROM ? true : false;
@@ -1950,5 +1950,5 @@
 
     /* Locked */
-    rc = CFGMR3QueryBool(pCfgHandle, "Locked", &pThis->fLocked);
+    rc = CFGMR3QueryBool(pCfg, "Locked", &pThis->fLocked);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         pThis->fLocked = false;
@@ -1960,5 +1960,5 @@
 
     /* BIOS visible */
-    rc = CFGMR3QueryBool(pCfgHandle, "BIOSVisible", &pThis->fBiosVisible);
+    rc = CFGMR3QueryBool(pCfg, "BIOSVisible", &pThis->fBiosVisible);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         pThis->fBiosVisible = true;
@@ -1971,5 +1971,5 @@
     /* Uuid */
     char *psz;
-    rc = CFGMR3QueryStringAlloc(pCfgHandle, "Uuid", &psz);
+    rc = CFGMR3QueryStringAlloc(pCfg, "Uuid", &psz);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         RTUuidClear(&pThis->Uuid);
@@ -1993,5 +1993,5 @@
     /* Define whether attach failure is an error (default) or not. */
     bool fAttachFailError;
-    rc = CFGMR3QueryBool(pCfgHandle, "AttachFailError", &fAttachFailError);
+    rc = CFGMR3QueryBool(pCfg, "AttachFailError", &fAttachFailError);
     if (RT_FAILURE(rc))
         fAttachFailError = true;
Index: trunk/src/VBox/Devices/Storage/DrvHostBase.h
===================================================================
--- trunk/src/VBox/Devices/Storage/DrvHostBase.h	(revision 26172)
+++ trunk/src/VBox/Devices/Storage/DrvHostBase.h	(revision 26173)
@@ -185,5 +185,5 @@
 
 
-int DRVHostBaseInitData(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, PDMBLOCKTYPE enmType);
+int DRVHostBaseInitData(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, PDMBLOCKTYPE enmType);
 int DRVHostBaseInitFinish(PDRVHOSTBASE pThis);
 int DRVHostBaseMediaPresent(PDRVHOSTBASE pThis);
Index: trunk/src/VBox/Devices/Storage/DrvHostDVD.cpp
===================================================================
--- trunk/src/VBox/Devices/Storage/DrvHostDVD.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Storage/DrvHostDVD.cpp	(revision 26173)
@@ -740,5 +740,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-static DECLCALLBACK(int) drvHostDvdConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+static DECLCALLBACK(int) drvHostDvdConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVHOSTBASE pThis = PDMINS_2_DATA(pDrvIns, PDRVHOSTBASE);
@@ -748,5 +748,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "Path\0Interval\0Locked\0BIOSVisible\0AttachFailError\0Passthrough\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "Path\0Interval\0Locked\0BIOSVisible\0AttachFailError\0Passthrough\0"))
         return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
 
@@ -755,5 +755,5 @@
      * Init instance data.
      */
-    int rc = DRVHostBaseInitData(pDrvIns, pCfgHandle, PDMBLOCKTYPE_DVD);
+    int rc = DRVHostBaseInitData(pDrvIns, pCfg, PDMBLOCKTYPE_DVD);
     if (RT_SUCCESS(rc))
     {
@@ -769,5 +769,5 @@
 #ifndef RT_OS_L4 /* Passthrough is not supported on L4 yet */
         bool fPassthrough;
-        rc = CFGMR3QueryBool(pCfgHandle, "Passthrough", &fPassthrough);
+        rc = CFGMR3QueryBool(pCfg, "Passthrough", &fPassthrough);
         if (RT_SUCCESS(rc) && fPassthrough)
         {
Index: trunk/src/VBox/Devices/Storage/DrvHostFloppy.cpp
===================================================================
--- trunk/src/VBox/Devices/Storage/DrvHostFloppy.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Storage/DrvHostFloppy.cpp	(revision 26173)
@@ -147,5 +147,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-static DECLCALLBACK(int) drvHostFloppyConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+static DECLCALLBACK(int) drvHostFloppyConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVHOSTFLOPPY pThis = PDMINS_2_DATA(pDrvIns, PDRVHOSTFLOPPY);
@@ -155,5 +155,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "Path\0ReadOnly\0Interval\0Locked\0BIOSVisible\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "Path\0ReadOnly\0Interval\0Locked\0BIOSVisible\0"))
         return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
 
@@ -161,5 +161,5 @@
      * Init instance data.
      */
-    int rc = DRVHostBaseInitData(pDrvIns, pCfgHandle, PDMBLOCKTYPE_FLOPPY_1_44);
+    int rc = DRVHostBaseInitData(pDrvIns, pCfg, PDMBLOCKTYPE_FLOPPY_1_44);
     if (RT_SUCCESS(rc))
     {
Index: trunk/src/VBox/Devices/Storage/DrvMediaISO.cpp
===================================================================
--- trunk/src/VBox/Devices/Storage/DrvMediaISO.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Storage/DrvMediaISO.cpp	(revision 26173)
@@ -231,5 +231,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-static DECLCALLBACK(int) drvMediaISOConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+static DECLCALLBACK(int) drvMediaISOConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVMEDIAISO pThis = PDMINS_2_DATA(pDrvIns, PDRVMEDIAISO);
@@ -258,9 +258,9 @@
      * Read the configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "Path\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "Path\0"))
         return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
 
     char *pszName;
-    int rc = CFGMR3QueryStringAlloc(pCfgHandle, "Path", &pszName);
+    int rc = CFGMR3QueryStringAlloc(pCfg, "Path", &pszName);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc, N_("Failed to query \"Path\" from the config"));
Index: trunk/src/VBox/Devices/Storage/DrvRawImage.cpp
===================================================================
--- trunk/src/VBox/Devices/Storage/DrvRawImage.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Storage/DrvRawImage.cpp	(revision 26173)
@@ -268,5 +268,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-static DECLCALLBACK(int) drvRawImageConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+static DECLCALLBACK(int) drvRawImageConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVRAWIMAGE pThis = PDMINS_2_DATA(pDrvIns, PDRVRAWIMAGE);
@@ -295,9 +295,9 @@
      * Read the configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "Path\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "Path\0"))
         return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
 
     char *pszName;
-    int rc = CFGMR3QueryStringAlloc(pCfgHandle, "Path", &pszName);
+    int rc = CFGMR3QueryStringAlloc(pCfg, "Path", &pszName);
     if (RT_FAILURE(rc))
     {
Index: trunk/src/VBox/Devices/Storage/DrvSCSI.cpp
===================================================================
--- trunk/src/VBox/Devices/Storage/DrvSCSI.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Storage/DrvSCSI.cpp	(revision 26173)
@@ -932,8 +932,8 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-static DECLCALLBACK(int) drvscsiConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+static DECLCALLBACK(int) drvscsiConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVSCSI pThis = PDMINS_2_DATA(pDrvIns, PDRVSCSI);
-    LogFlowFunc(("pDrvIns=%#p pCfgHandle=%#p\n", pDrvIns, pCfgHandle));
+    LogFlowFunc(("pDrvIns=%#p pCfg=%#p\n", pDrvIns, pCfg));
     PDMDRV_CHECK_VERSIONS_RETURN(pDrvIns);
 
Index: trunk/src/VBox/Devices/Storage/DrvSCSIHost.cpp
===================================================================
--- trunk/src/VBox/Devices/Storage/DrvSCSIHost.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Storage/DrvSCSIHost.cpp	(revision 26173)
@@ -443,8 +443,8 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-static DECLCALLBACK(int) drvscsihostConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+static DECLCALLBACK(int) drvscsihostConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVSCSIHOST pThis = PDMINS_2_DATA(pDrvIns, PDRVSCSIHOST);
-    LogFlowFunc(("pDrvIns=%#p pCfgHandle=%#p\n", pDrvIns, pCfgHandle));
+    LogFlowFunc(("pDrvIns=%#p pCfg=%#p\n", pDrvIns, pCfg));
     PDMDRV_CHECK_VERSIONS_RETURN(pDrvIns);
 
@@ -452,5 +452,5 @@
      * Read the configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "DevicePath\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "DevicePath\0"))
         return PDMDRV_SET_ERROR(pDrvIns, VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES,
                                 N_("Invalid configuration for host scsi access driver"));
@@ -473,5 +473,5 @@
 
     /* Open the device. */
-    rc = CFGMR3QueryStringAlloc(pCfgHandle, "DevicePath", &pThis->pszDevicePath);
+    rc = CFGMR3QueryStringAlloc(pCfg, "DevicePath", &pThis->pszDevicePath);
     if (RT_FAILURE(rc))
         return PDMDRV_SET_ERROR(pDrvIns, rc,
Index: trunk/src/VBox/Devices/Storage/DrvVD.cpp
===================================================================
--- trunk/src/VBox/Devices/Storage/DrvVD.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/Storage/DrvVD.cpp	(revision 26173)
@@ -982,5 +982,5 @@
  */
 static DECLCALLBACK(int) drvvdConstruct(PPDMDRVINS pDrvIns,
-                                        PCFGMNODE pCfgHandle,
+                                        PCFGMNODE pCfg,
                                         uint32_t fFlags)
 {
@@ -1052,5 +1052,5 @@
     bool        fUseNewIo = false;
     unsigned    iLevel = 0;
-    PCFGMNODE   pCurNode = pCfgHandle;
+    PCFGMNODE   pCurNode = pCfg;
 
     for (;;)
@@ -1058,5 +1058,5 @@
         bool fValid;
 
-        if (pCurNode == pCfgHandle)
+        if (pCurNode == pCfg)
         {
             /* Toplevel configuration additionally contains the global image
@@ -1080,5 +1080,5 @@
         }
 
-        if (pCurNode == pCfgHandle)
+        if (pCurNode == pCfg)
         {
             rc = CFGMR3QueryBoolDef(pCurNode, "HostIPStack", &fHostIP, true);
Index: trunk/src/VBox/Devices/Storage/fdc.c
===================================================================
--- trunk/src/VBox/Devices/Storage/fdc.c	(revision 26172)
+++ trunk/src/VBox/Devices/Storage/fdc.c	(revision 26173)
@@ -2743,5 +2743,5 @@
 static DECLCALLBACK(int) fdcConstruct (PPDMDEVINS pDevIns,
                                        int iInstance,
-                                       PCFGMNODE pCfgHandle)
+                                       PCFGMNODE pCfg)
 {
     int            rc;
@@ -2759,5 +2759,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "IRQ\0DMA\0MemMapped\0IOBase\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "IRQ\0DMA\0MemMapped\0IOBase\0"))
         return VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES;
 
@@ -2765,5 +2765,5 @@
      * Read the configuration.
      */
-    rc = CFGMR3QueryU8 (pCfgHandle, "IRQ", &irq_lvl);
+    rc = CFGMR3QueryU8 (pCfg, "IRQ", &irq_lvl);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         irq_lvl = 6;
@@ -2773,5 +2773,5 @@
     }
 
-    rc = CFGMR3QueryU8 (pCfgHandle, "DMA", &dma_chann);
+    rc = CFGMR3QueryU8 (pCfg, "DMA", &dma_chann);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         dma_chann = 2;
@@ -2781,5 +2781,5 @@
     }
 
-    rc = CFGMR3QueryU16 (pCfgHandle, "IOBase", &io_base);
+    rc = CFGMR3QueryU16 (pCfg, "IOBase", &io_base);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         io_base = 0x3f0;
@@ -2789,5 +2789,5 @@
     }
 
-    rc = CFGMR3QueryBool (pCfgHandle, "MemMapped", &mem_mapped);
+    rc = CFGMR3QueryBool (pCfg, "MemMapped", &mem_mapped);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         mem_mapped = false;
Index: trunk/src/VBox/Devices/VMMDev/VMMDev.cpp
===================================================================
--- trunk/src/VBox/Devices/VMMDev/VMMDev.cpp	(revision 26172)
+++ trunk/src/VBox/Devices/VMMDev/VMMDev.cpp	(revision 26173)
@@ -2516,5 +2516,5 @@
  * @interface_method_impl{PDMDEVREG,pfnConstruct}
  */
-static DECLCALLBACK(int) vmmdevConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfgHandle)
+static DECLCALLBACK(int) vmmdevConstruct(PPDMDEVINS pDevIns, int iInstance, PCFGMNODE pCfg)
 {
     int rc;
@@ -2527,5 +2527,5 @@
      * Validate and read the configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle,
+    if (!CFGMR3AreValuesValid(pCfg,
                               "GetHostTimeDisabled\0"
                               "BackdoorLogDisabled\0"
@@ -2535,20 +2535,20 @@
         return VERR_PDM_DEVINS_UNKNOWN_CFG_VALUES;
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "GetHostTimeDisabled", &pThis->fGetHostTimeDisabled, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "GetHostTimeDisabled", &pThis->fGetHostTimeDisabled, false);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed querying \"GetHostTimeDisabled\" as a boolean"));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "BackdoorLogDisabled", &pThis->fBackdoorLogDisabled, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "BackdoorLogDisabled", &pThis->fBackdoorLogDisabled, false);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed querying \"BackdoorLogDisabled\" as a boolean"));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "KeepCredentials", &pThis->fKeepCredentials, false);
+    rc = CFGMR3QueryBoolDef(pCfg, "KeepCredentials", &pThis->fKeepCredentials, false);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
                                 N_("Configuration error: Failed querying \"KeepCredentials\" as a boolean"));
 
-    rc = CFGMR3QueryBoolDef(pCfgHandle, "HeapEnabled", &pThis->fHeapEnabled, true);
+    rc = CFGMR3QueryBoolDef(pCfg, "HeapEnabled", &pThis->fHeapEnabled, true);
     if (RT_FAILURE(rc))
         return PDMDEV_SET_ERROR(pDevIns, rc,
Index: trunk/src/VBox/Frontends/VBoxBFE/DisplayImpl.cpp
===================================================================
--- trunk/src/VBox/Frontends/VBoxBFE/DisplayImpl.cpp	(revision 26172)
+++ trunk/src/VBox/Frontends/VBoxBFE/DisplayImpl.cpp	(revision 26173)
@@ -1167,5 +1167,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-DECLCALLBACK(int) VMDisplay::drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+DECLCALLBACK(int) VMDisplay::drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVMAINDISPLAY pData = PDMINS_2_DATA(pDrvIns, PDRVMAINDISPLAY);
@@ -1176,5 +1176,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "Object\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "Object\0"))
         return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
     AssertMsgReturn(PDMDrvHlpNoAttach(pDrvIns) == VERR_PDM_NO_ATTACHED_DRIVER,
@@ -1209,5 +1209,5 @@
      */
     void *pv;
-    int rc = CFGMR3QueryPtr(pCfgHandle, "Object", &pv);
+    int rc = CFGMR3QueryPtr(pCfg, "Object", &pv);
     if (RT_FAILURE(rc))
     {
Index: trunk/src/VBox/Frontends/VBoxBFE/DisplayImpl.h
===================================================================
--- trunk/src/VBox/Frontends/VBoxBFE/DisplayImpl.h	(revision 26172)
+++ trunk/src/VBox/Frontends/VBoxBFE/DisplayImpl.h	(revision 26173)
@@ -69,5 +69,5 @@
 
     static DECLCALLBACK(void*) drvQueryInterface(PPDMIBASE pInterface, const char *pszIID);
-    static DECLCALLBACK(int)   drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags);
+    static DECLCALLBACK(int)   drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags);
     static DECLCALLBACK(int)   displayResizeCallback(PPDMIDISPLAYCONNECTOR pInterface, uint32_t bpp, void *pvVRAM, uint32_t cbLine, uint32_t cx, uint32_t cy);
     static DECLCALLBACK(void)  displayUpdateCallback(PPDMIDISPLAYCONNECTOR pInterface,
Index: trunk/src/VBox/Frontends/VBoxBFE/KeyboardImpl.cpp
===================================================================
--- trunk/src/VBox/Frontends/VBoxBFE/KeyboardImpl.cpp	(revision 26172)
+++ trunk/src/VBox/Frontends/VBoxBFE/KeyboardImpl.cpp	(revision 26173)
@@ -202,5 +202,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-DECLCALLBACK(int) Keyboard::drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+DECLCALLBACK(int) Keyboard::drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVMAINKEYBOARD pData = PDMINS_2_DATA(pDrvIns, PDRVMAINKEYBOARD);
@@ -210,5 +210,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "Object\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "Object\0"))
         return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
     AssertMsgReturn(PDMDrvHlpNoAttach(pDrvIns) == VERR_PDM_NO_ATTACHED_DRIVER,
@@ -237,5 +237,5 @@
      */
     void *pv;
-    int rc = CFGMR3QueryPtr(pCfgHandle, "Object", &pv);
+    int rc = CFGMR3QueryPtr(pCfg, "Object", &pv);
     if (RT_FAILURE(rc))
     {
Index: trunk/src/VBox/Frontends/VBoxBFE/KeyboardImpl.h
===================================================================
--- trunk/src/VBox/Frontends/VBoxBFE/KeyboardImpl.h	(revision 26172)
+++ trunk/src/VBox/Frontends/VBoxBFE/KeyboardImpl.h	(revision 26173)
@@ -57,5 +57,5 @@
 
     static DECLCALLBACK(void *) drvQueryInterface(PPDMIBASE pInterface, const char *pszIID);
-    static DECLCALLBACK(int)    drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags);
+    static DECLCALLBACK(int)    drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags);
     static DECLCALLBACK(void)   drvDestruct(PPDMDRVINS pDrvIns);
 
Index: trunk/src/VBox/Frontends/VBoxBFE/MouseImpl.cpp
===================================================================
--- trunk/src/VBox/Frontends/VBoxBFE/MouseImpl.cpp	(revision 26172)
+++ trunk/src/VBox/Frontends/VBoxBFE/MouseImpl.cpp	(revision 26173)
@@ -208,5 +208,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-DECLCALLBACK(int) Mouse::drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+DECLCALLBACK(int) Mouse::drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVMAINMOUSE pData = PDMINS_2_DATA(pDrvIns, PDRVMAINMOUSE);
@@ -216,5 +216,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "Object\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "Object\0"))
         return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
     AssertMsgReturn(PDMDrvHlpNoAttach(pDrvIns) == VERR_PDM_NO_ATTACHED_DRIVER,
@@ -241,5 +241,5 @@
      */
     void *pv;
-    int rc = CFGMR3QueryPtr(pCfgHandle, "Object", &pv);
+    int rc = CFGMR3QueryPtr(pCfg, "Object", &pv);
     if (RT_FAILURE(rc))
     {
Index: trunk/src/VBox/Frontends/VBoxBFE/MouseImpl.h
===================================================================
--- trunk/src/VBox/Frontends/VBoxBFE/MouseImpl.h	(revision 26172)
+++ trunk/src/VBox/Frontends/VBoxBFE/MouseImpl.h	(revision 26173)
@@ -69,5 +69,5 @@
 
     static DECLCALLBACK(void *) drvQueryInterface(PPDMIBASE pInterface, const char *pszIID);
-    static DECLCALLBACK(int)    drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags);
+    static DECLCALLBACK(int)    drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags);
     static DECLCALLBACK(void)   drvDestruct(PPDMDRVINS pDrvIns);
 
Index: trunk/src/VBox/Frontends/VBoxBFE/StatusImpl.cpp
===================================================================
--- trunk/src/VBox/Frontends/VBoxBFE/StatusImpl.cpp	(revision 26172)
+++ trunk/src/VBox/Frontends/VBoxBFE/StatusImpl.cpp	(revision 26173)
@@ -122,5 +122,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-DECLCALLBACK(int) VMStatus::drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+DECLCALLBACK(int) VMStatus::drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVMAINSTATUS pData = PDMINS_2_DATA(pDrvIns, PDRVMAINSTATUS);
@@ -130,5 +130,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "papLeds\0First\0Last\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "papLeds\0First\0Last\0"))
         return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
     AssertMsgReturn(PDMDrvHlpNoAttach(pDrvIns) == VERR_PDM_NO_ATTACHED_DRIVER,
@@ -145,5 +145,5 @@
      * Read config.
      */
-    int rc = CFGMR3QueryPtr(pCfgHandle, "papLeds", (void **)&pData->papLeds);
+    int rc = CFGMR3QueryPtr(pCfg, "papLeds", (void **)&pData->papLeds);
     if (RT_FAILURE(rc))
     {
@@ -152,5 +152,5 @@
     }
 
-    rc = CFGMR3QueryU32(pCfgHandle, "First", &pData->iFirstLUN);
+    rc = CFGMR3QueryU32(pCfg, "First", &pData->iFirstLUN);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         pData->iFirstLUN = 0;
@@ -161,5 +161,5 @@
     }
 
-    rc = CFGMR3QueryU32(pCfgHandle, "Last", &pData->iLastLUN);
+    rc = CFGMR3QueryU32(pCfg, "Last", &pData->iLastLUN);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         pData->iLastLUN = 0;
Index: trunk/src/VBox/Frontends/VBoxBFE/StatusImpl.h
===================================================================
--- trunk/src/VBox/Frontends/VBoxBFE/StatusImpl.h	(revision 26172)
+++ trunk/src/VBox/Frontends/VBoxBFE/StatusImpl.h	(revision 26173)
@@ -36,5 +36,5 @@
     static DECLCALLBACK(void)   drvUnitChanged(PPDMILEDCONNECTORS pInterface, unsigned iLUN);
     static DECLCALLBACK(void *) drvQueryInterface(PPDMIBASE pInterface, const char *pszIID);
-    static DECLCALLBACK(int)    drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags);
+    static DECLCALLBACK(int)    drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags);
     static DECLCALLBACK(void)   drvDestruct(PPDMDRVINS pDrvIns);
 };
Index: trunk/src/VBox/Frontends/VBoxBFE/VMMDevInterface.cpp
===================================================================
--- trunk/src/VBox/Frontends/VBoxBFE/VMMDevInterface.cpp	(revision 26172)
+++ trunk/src/VBox/Frontends/VBoxBFE/VMMDevInterface.cpp	(revision 26173)
@@ -378,5 +378,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-DECLCALLBACK(int) VMMDev::drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+DECLCALLBACK(int) VMMDev::drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVMAINVMMDEV pData = PDMINS_2_DATA(pDrvIns, PDRVMAINVMMDEV);
@@ -386,5 +386,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "Object\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "Object\0"))
         return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
     AssertMsgReturn(PDMDrvHlpNoAttach(pDrvIns) == VERR_PDM_NO_ATTACHED_DRIVER,
@@ -435,5 +435,5 @@
      */
     void *pv;
-    int rc = CFGMR3QueryPtr(pCfgHandle, "Object", &pv);
+    int rc = CFGMR3QueryPtr(pCfg, "Object", &pv);
     if (RT_FAILURE(rc))
     {
Index: trunk/src/VBox/Frontends/VBoxBFE/VMMDevInterface.h
===================================================================
--- trunk/src/VBox/Frontends/VBoxBFE/VMMDevInterface.h	(revision 26172)
+++ trunk/src/VBox/Frontends/VBoxBFE/VMMDevInterface.h	(revision 26173)
@@ -64,5 +64,5 @@
 
     static DECLCALLBACK(void *) drvQueryInterface(PPDMIBASE pInterface, const char *pszIID);
-    static DECLCALLBACK(int)    drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags);
+    static DECLCALLBACK(int)    drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags);
     static DECLCALLBACK(void)   drvDestruct(PPDMDRVINS pDrvIns);
 };
Index: trunk/src/VBox/Main/AudioSnifferInterface.cpp
===================================================================
--- trunk/src/VBox/Main/AudioSnifferInterface.cpp	(revision 26172)
+++ trunk/src/VBox/Main/AudioSnifferInterface.cpp	(revision 26173)
@@ -154,5 +154,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-DECLCALLBACK(int) AudioSniffer::drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+DECLCALLBACK(int) AudioSniffer::drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVAUDIOSNIFFER pThis = PDMINS_2_DATA(pDrvIns, PDRVAUDIOSNIFFER);
@@ -164,5 +164,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "Object\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "Object\0"))
         return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
     AssertMsgReturn(PDMDrvHlpNoAttach(pDrvIns) == VERR_PDM_NO_ATTACHED_DRIVER,
@@ -193,5 +193,5 @@
      */
     void *pv;
-    int rc = CFGMR3QueryPtr(pCfgHandle, "Object", &pv);
+    int rc = CFGMR3QueryPtr(pCfg, "Object", &pv);
     if (RT_FAILURE(rc))
     {
Index: trunk/src/VBox/Main/ConsoleImpl.cpp
===================================================================
--- trunk/src/VBox/Main/ConsoleImpl.cpp	(revision 26172)
+++ trunk/src/VBox/Main/ConsoleImpl.cpp	(revision 26173)
@@ -8162,5 +8162,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-DECLCALLBACK(int) Console::drvStatus_Construct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+DECLCALLBACK(int) Console::drvStatus_Construct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVMAINSTATUS pData = PDMINS_2_DATA(pDrvIns, PDRVMAINSTATUS);
@@ -8171,5 +8171,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "papLeds\0First\0Last\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "papLeds\0First\0Last\0"))
         return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
     AssertMsgReturn(PDMDrvHlpNoAttach(pDrvIns) == VERR_PDM_NO_ATTACHED_DRIVER,
@@ -8186,5 +8186,5 @@
      * Read config.
      */
-    int rc = CFGMR3QueryPtr(pCfgHandle, "papLeds", (void **)&pData->papLeds);
+    int rc = CFGMR3QueryPtr(pCfg, "papLeds", (void **)&pData->papLeds);
     if (RT_FAILURE(rc))
     {
@@ -8193,5 +8193,5 @@
     }
 
-    rc = CFGMR3QueryU32(pCfgHandle, "First", &pData->iFirstLUN);
+    rc = CFGMR3QueryU32(pCfg, "First", &pData->iFirstLUN);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         pData->iFirstLUN = 0;
@@ -8202,5 +8202,5 @@
     }
 
-    rc = CFGMR3QueryU32(pCfgHandle, "Last", &pData->iLastLUN);
+    rc = CFGMR3QueryU32(pCfg, "Last", &pData->iLastLUN);
     if (rc == VERR_CFGM_VALUE_NOT_FOUND)
         pData->iLastLUN = 0;
Index: trunk/src/VBox/Main/DisplayImpl.cpp
===================================================================
--- trunk/src/VBox/Main/DisplayImpl.cpp	(revision 26172)
+++ trunk/src/VBox/Main/DisplayImpl.cpp	(revision 26173)
@@ -3407,5 +3407,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-DECLCALLBACK(int) Display::drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+DECLCALLBACK(int) Display::drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVMAINDISPLAY pData = PDMINS_2_DATA(pDrvIns, PDRVMAINDISPLAY);
@@ -3416,5 +3416,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "Object\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "Object\0"))
         return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
     AssertMsgReturn(PDMDrvHlpNoAttach(pDrvIns) == VERR_PDM_NO_ATTACHED_DRIVER,
@@ -3469,5 +3469,5 @@
      */
     void *pv;
-    int rc = CFGMR3QueryPtr(pCfgHandle, "Object", &pv);
+    int rc = CFGMR3QueryPtr(pCfg, "Object", &pv);
     if (RT_FAILURE(rc))
     {
Index: trunk/src/VBox/Main/KeyboardImpl.cpp
===================================================================
--- trunk/src/VBox/Main/KeyboardImpl.cpp	(revision 26172)
+++ trunk/src/VBox/Main/KeyboardImpl.cpp	(revision 26173)
@@ -265,5 +265,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-DECLCALLBACK(int) Keyboard::drvConstruct (PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+DECLCALLBACK(int) Keyboard::drvConstruct (PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVMAINKEYBOARD pData = PDMINS_2_DATA (pDrvIns, PDRVMAINKEYBOARD);
@@ -274,5 +274,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid (pCfgHandle, "Object\0"))
+    if (!CFGMR3AreValuesValid (pCfg, "Object\0"))
         return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
     AssertMsgReturn(PDMDrvHlpNoAttach(pDrvIns) == VERR_PDM_NO_ATTACHED_DRIVER,
@@ -301,5 +301,5 @@
      */
     void *pv;
-    int rc = CFGMR3QueryPtr (pCfgHandle, "Object", &pv);
+    int rc = CFGMR3QueryPtr (pCfg, "Object", &pv);
     if (RT_FAILURE(rc))
     {
Index: trunk/src/VBox/Main/MouseImpl.cpp
===================================================================
--- trunk/src/VBox/Main/MouseImpl.cpp	(revision 26172)
+++ trunk/src/VBox/Main/MouseImpl.cpp	(revision 26173)
@@ -392,5 +392,5 @@
  * @copydoc FNPDMDRVCONSTRUCT
  */
-DECLCALLBACK(int) Mouse::drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags)
+DECLCALLBACK(int) Mouse::drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags)
 {
     PDRVMAINMOUSE pData = PDMINS_2_DATA(pDrvIns, PDRVMAINMOUSE);
@@ -401,5 +401,5 @@
      * Validate configuration.
      */
-    if (!CFGMR3AreValuesValid(pCfgHandle, "Object\0"))
+    if (!CFGMR3AreValuesValid(pCfg, "Object\0"))
         return VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES;
     AssertMsgReturn(PDMDrvHlpNoAttach(pDrvIns) == VERR_PDM_NO_ATTACHED_DRIVER,
@@ -426,5 +426,5 @@
      */
     void *pv;
-    int rc = CFGMR3QueryPtr(pCfgHandle, "Object", &pv);
+    int rc = CFGMR3QueryPtr(pCfg, "Object", &pv);
     if (RT_FAILURE(rc))
     {
Index: trunk/src/VBox/Main/include/AudioSnifferInterface.h
===================================================================
--- trunk/src/VBox/Main/include/AudioSnifferInterface.h	(revision 26172)
+++ trunk/src/VBox/Main/include/AudioSnifferInterface.h	(revision 26173)
@@ -44,5 +44,5 @@
 private:
     static DECLCALLBACK(void *) drvQueryInterface(PPDMIBASE pInterface, const char *pszIID);
-    static DECLCALLBACK(int)    drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags);
+    static DECLCALLBACK(int)    drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags);
     static DECLCALLBACK(void)   drvDestruct(PPDMDRVINS pDrvIns);
 
Index: trunk/src/VBox/Main/include/ConsoleImpl.h
===================================================================
--- trunk/src/VBox/Main/include/ConsoleImpl.h	(revision 26172)
+++ trunk/src/VBox/Main/include/ConsoleImpl.h	(revision 26173)
@@ -494,5 +494,5 @@
     static DECLCALLBACK(void)   drvStatus_UnitChanged(PPDMILEDCONNECTORS pInterface, unsigned iLUN);
     static DECLCALLBACK(void)   drvStatus_Destruct(PPDMDRVINS pDrvIns);
-    static DECLCALLBACK(int)    drvStatus_Construct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags);
+    static DECLCALLBACK(int)    drvStatus_Construct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags);
 
     int mcAudioRefs;
Index: trunk/src/VBox/Main/include/DisplayImpl.h
===================================================================
--- trunk/src/VBox/Main/include/DisplayImpl.h	(revision 26172)
+++ trunk/src/VBox/Main/include/DisplayImpl.h	(revision 26173)
@@ -273,5 +273,5 @@
 
     static DECLCALLBACK(void*) drvQueryInterface(PPDMIBASE pInterface, const char *pszIID);
-    static DECLCALLBACK(int)   drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags);
+    static DECLCALLBACK(int)   drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags);
     static DECLCALLBACK(void)  drvDestruct(PPDMDRVINS pDrvIns);
     static DECLCALLBACK(int)   displayResizeCallback(PPDMIDISPLAYCONNECTOR pInterface, uint32_t bpp, void *pvVRAM, uint32_t cbLine, uint32_t cx, uint32_t cy);
Index: trunk/src/VBox/Main/include/KeyboardImpl.h
===================================================================
--- trunk/src/VBox/Main/include/KeyboardImpl.h	(revision 26172)
+++ trunk/src/VBox/Main/include/KeyboardImpl.h	(revision 26173)
@@ -93,5 +93,5 @@
 
     static DECLCALLBACK(void *) drvQueryInterface(PPDMIBASE pInterface, const char *pszIID);
-    static DECLCALLBACK(int)    drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags);
+    static DECLCALLBACK(int)    drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags);
     static DECLCALLBACK(void)   drvDestruct(PPDMDRVINS pDrvIns);
 
Index: trunk/src/VBox/Main/include/MouseImpl.h
===================================================================
--- trunk/src/VBox/Main/include/MouseImpl.h	(revision 26172)
+++ trunk/src/VBox/Main/include/MouseImpl.h	(revision 26173)
@@ -93,5 +93,5 @@
 
     static DECLCALLBACK(void *) drvQueryInterface(PPDMIBASE pInterface, const char *pszIID);
-    static DECLCALLBACK(int)    drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags);
+    static DECLCALLBACK(int)    drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags);
     static DECLCALLBACK(void)   drvDestruct(PPDMDRVINS pDrvIns);
 
Index: trunk/src/VBox/Main/include/VMMDev.h
===================================================================
--- trunk/src/VBox/Main/include/VMMDev.h	(revision 26172)
+++ trunk/src/VBox/Main/include/VMMDev.h	(revision 26173)
@@ -60,5 +60,5 @@
 private:
     static DECLCALLBACK(void *) drvQueryInterface(PPDMIBASE pInterface, const char *pszIID);
-    static DECLCALLBACK(int)    drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfgHandle, uint32_t fFlags);
+    static DECLCALLBACK(int)    drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags);
     static DECLCALLBACK(void)   drvDestruct(PPDMDRVINS pDrvIns);
     static DECLCALLBACK(void)   drvReset(PPDMDRVINS pDrvIns);
