Index: /trunk/include/VBox/vmm/pdmaudioifs.h
===================================================================
--- /trunk/include/VBox/vmm/pdmaudioifs.h	(revision 88533)
+++ /trunk/include/VBox/vmm/pdmaudioifs.h	(revision 88534)
@@ -437,8 +437,8 @@
     /** The backend's friendly name. */
     char            szName[32];
-    /** Size (in bytes) of the host backend's audio output stream structure. */
-    size_t          cbStreamOut;
-    /** Size (in bytes) of the host backend's audio input stream structure. */
-    size_t          cbStreamIn;
+    /** The size of the backend specific stream data (in bytes). */
+    uint32_t        cbStream;
+    /** Flags, MBZ. */
+    uint32_t        fFlags;
     /** Number of concurrent output (playback) streams supported on the host.
      *  UINT32_MAX for unlimited concurrent streams, 0 if no concurrent input streams are supported. */
@@ -1202,5 +1202,5 @@
 
 /** PDMIAUDIOCONNECTOR interface ID. */
-#define PDMIAUDIOCONNECTOR_IID                  "122511ca-deb3-4630-ad31-ade9f3177df4"
+#define PDMIAUDIOCONNECTOR_IID                  "473a3a3c-cda9-454c-90f9-63751320e62a"
 
 
@@ -1362,5 +1362,5 @@
 
 /** PDMIHOSTAUDIO interface ID. */
-#define PDMIHOSTAUDIO_IID                           "cf04d235-2af6-4921-8323-a0f85c5cf96b"
+#define PDMIHOSTAUDIO_IID                           "71b1dcc3-46d7-4c27-a76a-63cd229adb74"
 
 
Index: /trunk/src/VBox/Devices/Audio/DrvAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvAudio.cpp	(revision 88533)
+++ /trunk/src/VBox/Devices/Audio/DrvAudio.cpp	(revision 88534)
@@ -3000,5 +3000,4 @@
      */
     uint32_t *pcFreeStreams;
-    size_t    cbHstStrm;
     if (pCfgHost->enmDir == PDMAUDIODIR_IN)
     {
@@ -3009,5 +3008,4 @@
         }
         pcFreeStreams = &pThis->In.cStreamsFree;
-        cbHstStrm     = pThis->BackendCfg.cbStreamIn;
     }
     else /* Out */
@@ -3019,6 +3017,6 @@
         }
         pcFreeStreams = &pThis->Out.cStreamsFree;
-        cbHstStrm     = pThis->BackendCfg.cbStreamOut;
-    }
+    }
+    size_t const cbHstStrm = pThis->BackendCfg.cbStream;
     AssertStmt(cbHstStrm < _16M, rc = VERR_OUT_OF_RANGE);
     if (RT_SUCCESS(rc))
Index: /trunk/src/VBox/Devices/Audio/DrvHostAudioAlsa.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostAudioAlsa.cpp	(revision 88533)
+++ /trunk/src/VBox/Devices/Audio/DrvHostAudioAlsa.cpp	(revision 88534)
@@ -240,6 +240,6 @@
      */
     RTStrCopy(pBackendCfg->szName, sizeof(pBackendCfg->szName), "ALSA");
-    pBackendCfg->cbStreamIn     = sizeof(ALSAAUDIOSTREAM);
-    pBackendCfg->cbStreamOut    = sizeof(ALSAAUDIOSTREAM);
+    pBackendCfg->cbStream       = sizeof(ALSAAUDIOSTREAM);
+    pBackendCfg->fFlags         = 0;
     /* ALSA allows exactly one input and one output used at a time for the selected device(s). */
     pBackendCfg->cMaxStreamsIn  = 1;
Index: /trunk/src/VBox/Devices/Audio/DrvHostAudioCoreAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostAudioCoreAudio.cpp	(revision 88533)
+++ /trunk/src/VBox/Devices/Audio/DrvHostAudioCoreAudio.cpp	(revision 88534)
@@ -2162,16 +2162,13 @@
 static DECLCALLBACK(int) drvHostCoreAudioHA_GetConfig(PPDMIHOSTAUDIO pInterface, PPDMAUDIOBACKENDCFG pBackendCfg)
 {
-    AssertPtrReturn(pInterface,  VERR_INVALID_POINTER);
+    PDRVHOSTCOREAUDIO pThis = PDMIHOSTAUDIO_2_DRVHOSTCOREAUDIO(pInterface);
     AssertPtrReturn(pBackendCfg, VERR_INVALID_POINTER);
 
-    PDRVHOSTCOREAUDIO pThis = PDMIHOSTAUDIO_2_DRVHOSTCOREAUDIO(pInterface);
-
-    RT_BZERO(pBackendCfg, sizeof(PDMAUDIOBACKENDCFG));
-
-    RTStrPrintf2(pBackendCfg->szName, sizeof(pBackendCfg->szName), "Core Audio");
-
-    pBackendCfg->cbStreamIn  = sizeof(COREAUDIOSTREAM);
-    pBackendCfg->cbStreamOut = sizeof(COREAUDIOSTREAM);
-
+    /*
+     * Fill in the config structure.
+     */
+    RTStrCopy(pBackendCfg->szName, sizeof(pBackendCfg->szName), "Core Audio");
+    pBackendCfg->cbStream       = sizeof(COREAUDIOSTREAM);
+    pBackendCfg->fFlags         = 0;
     /* For Core Audio we provide one stream per device for now. */
     pBackendCfg->cMaxStreamsIn  = PDMAudioHostEnumCountMatching(&pThis->Devices, PDMAUDIODIR_IN);
Index: /trunk/src/VBox/Devices/Audio/DrvHostAudioDSound.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostAudioDSound.cpp	(revision 88533)
+++ /trunk/src/VBox/Devices/Audio/DrvHostAudioDSound.cpp	(revision 88534)
@@ -685,11 +685,11 @@
     AssertPtrReturn(pBackendCfg, VERR_INVALID_POINTER);
 
-    RT_BZERO(pBackendCfg, sizeof(PPDMAUDIOBACKENDCFG));
-
-    pBackendCfg->cbStreamOut = sizeof(DSOUNDSTREAM);
-    pBackendCfg->cbStreamIn  = sizeof(DSOUNDSTREAM);
-
-    RTStrPrintf2(pBackendCfg->szName, sizeof(pBackendCfg->szName), "DirectSound");
-
+
+    /*
+     * Fill in the config structure.
+     */
+    RTStrCopy(pBackendCfg->szName, sizeof(pBackendCfg->szName), "DirectSound");
+    pBackendCfg->cbStream       = sizeof(DSOUNDSTREAM);
+    pBackendCfg->fFlags         = 0;
     pBackendCfg->cMaxStreamsIn  = UINT32_MAX;
     pBackendCfg->cMaxStreamsOut = UINT32_MAX;
Index: /trunk/src/VBox/Devices/Audio/DrvHostAudioDebug.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostAudioDebug.cpp	(revision 88533)
+++ /trunk/src/VBox/Devices/Audio/DrvHostAudioDebug.cpp	(revision 88534)
@@ -106,9 +106,10 @@
     AssertPtrReturn(pBackendCfg, VERR_INVALID_POINTER);
 
+    /*
+     * Fill in the config structure.
+     */
     RTStrCopy(pBackendCfg->szName, sizeof(pBackendCfg->szName), "DebugAudio");
-
-    pBackendCfg->cbStreamOut    = sizeof(DEBUGAUDIOSTREAM);
-    pBackendCfg->cbStreamIn     = sizeof(DEBUGAUDIOSTREAM);
-
+    pBackendCfg->cbStream       = sizeof(DEBUGAUDIOSTREAM);
+    pBackendCfg->fFlags         = 0;
     pBackendCfg->cMaxStreamsOut = 1; /* Output; writing to a file. */
     pBackendCfg->cMaxStreamsIn  = 1; /* Input; generates a sine wave. */
Index: /trunk/src/VBox/Devices/Audio/DrvHostAudioNull.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostAudioNull.cpp	(revision 88533)
+++ /trunk/src/VBox/Devices/Audio/DrvHostAudioNull.cpp	(revision 88534)
@@ -69,9 +69,10 @@
     AssertPtrReturn(pBackendCfg, VERR_INVALID_POINTER);
 
+    /*
+     * Fill in the config structure.
+     */
     RTStrCopy(pBackendCfg->szName, sizeof(pBackendCfg->szName), "NULL audio");
-
-    pBackendCfg->cbStreamOut    = sizeof(NULLAUDIOSTREAM);
-    pBackendCfg->cbStreamIn     = sizeof(NULLAUDIOSTREAM);
-
+    pBackendCfg->cbStream       = sizeof(NULLAUDIOSTREAM);
+    pBackendCfg->fFlags         = 0;
     pBackendCfg->cMaxStreamsOut = 1; /* Output */
     pBackendCfg->cMaxStreamsIn  = 2; /* Line input + microphone input. */
Index: /trunk/src/VBox/Devices/Audio/DrvHostAudioOss.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostAudioOss.cpp	(revision 88533)
+++ /trunk/src/VBox/Devices/Audio/DrvHostAudioOss.cpp	(revision 88534)
@@ -181,8 +181,12 @@
     RT_NOREF(pInterface);
 
+    /*
+     * Fill in the config structure.
+     */
     RTStrCopy(pBackendCfg->szName, sizeof(pBackendCfg->szName), "OSS");
-
-    pBackendCfg->cbStreamIn  = sizeof(OSSAUDIOSTREAM);
-    pBackendCfg->cbStreamOut = sizeof(OSSAUDIOSTREAM);
+    pBackendCfg->cbStream       = sizeof(OSSAUDIOSTREAM);
+    pBackendCfg->fFlags         = 0;
+    pBackendCfg->cMaxStreamsIn  = 0;
+    pBackendCfg->cMaxStreamsOut = 0;
 
     int hFile = open("/dev/dsp", O_WRONLY | O_NONBLOCK, 0);
Index: /trunk/src/VBox/Devices/Audio/DrvHostAudioPulseAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostAudioPulseAudio.cpp	(revision 88533)
+++ /trunk/src/VBox/Devices/Audio/DrvHostAudioPulseAudio.cpp	(revision 88534)
@@ -646,6 +646,6 @@
      */
     RTStrCopy(pBackendCfg->szName, sizeof(pBackendCfg->szName), "PulseAudio");
-    pBackendCfg->cbStreamOut    = sizeof(PULSEAUDIOSTREAM);
-    pBackendCfg->cbStreamIn     = sizeof(PULSEAUDIOSTREAM);
+    pBackendCfg->cbStream       = sizeof(PULSEAUDIOSTREAM);
+    pBackendCfg->fFlags         = 0;
     pBackendCfg->cMaxStreamsOut = UINT32_MAX;
     pBackendCfg->cMaxStreamsIn  = UINT32_MAX;
Index: /trunk/src/VBox/Devices/Audio/DrvHostAudioValidationKit.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostAudioValidationKit.cpp	(revision 88533)
+++ /trunk/src/VBox/Devices/Audio/DrvHostAudioValidationKit.cpp	(revision 88534)
@@ -96,9 +96,10 @@
     AssertPtrReturn(pBackendCfg, VERR_INVALID_POINTER);
 
-    RTStrPrintf2(pBackendCfg->szName, sizeof(pBackendCfg->szName), "Validation Kit");
-
-    pBackendCfg->cbStreamOut    = sizeof(VAKITAUDIOSTREAM);
-    pBackendCfg->cbStreamIn     = sizeof(VAKITAUDIOSTREAM);
-
+    /*
+     * Fill in the config structure.
+     */
+    RTStrCopy(pBackendCfg->szName, sizeof(pBackendCfg->szName), "Validation Kit");
+    pBackendCfg->cbStream       = sizeof(VAKITAUDIOSTREAM);
+    pBackendCfg->fFlags         = 0;
     pBackendCfg->cMaxStreamsOut = 1; /* Output */
     pBackendCfg->cMaxStreamsIn  = 0; /* No input supported yet. */
Index: /trunk/src/VBox/Main/src-client/DrvAudioRec.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/DrvAudioRec.cpp	(revision 88533)
+++ /trunk/src/VBox/Main/src-client/DrvAudioRec.cpp	(revision 88534)
@@ -365,8 +365,10 @@
     AssertPtrReturn(pBackendCfg, VERR_INVALID_POINTER);
 
-    RTStrPrintf2(pBackendCfg->szName, sizeof(pBackendCfg->szName), "VideoRec");
-
-    pBackendCfg->cbStreamOut    = sizeof(AVRECSTREAM);
-    pBackendCfg->cbStreamIn     = 0;
+    /*
+     * Fill in the config structure.
+     */
+    RTStrCopy(pBackendCfg->szName, sizeof(pBackendCfg->szName), "VideoRec");
+    pBackendCfg->cbStream       = sizeof(AVRECSTREAM);
+    pBackendCfg->fFlags         = 0;
     pBackendCfg->cMaxStreamsIn  = 0;
     pBackendCfg->cMaxStreamsOut = UINT32_MAX;
Index: /trunk/src/VBox/Main/src-client/DrvAudioVRDE.cpp
===================================================================
--- /trunk/src/VBox/Main/src-client/DrvAudioVRDE.cpp	(revision 88533)
+++ /trunk/src/VBox/Main/src-client/DrvAudioVRDE.cpp	(revision 88534)
@@ -232,6 +232,6 @@
 
     RTStrCopy(pBackendCfg->szName, sizeof(pBackendCfg->szName), "VRDE");
-    pBackendCfg->cbStreamOut    = sizeof(VRDESTREAM);
-    pBackendCfg->cbStreamIn     = sizeof(VRDESTREAM);
+    pBackendCfg->cbStream       = sizeof(VRDESTREAM);
+    pBackendCfg->fFlags         = 0;
     pBackendCfg->cMaxStreamsIn  = UINT32_MAX;
     pBackendCfg->cMaxStreamsOut = UINT32_MAX;
